質問編集履歴

3

データ取得はできたが、読みとけない箇所がある為

2020/11/20 12:52

投稿

Yuppon
Yuppon

スコア5

test CHANGED
@@ -1 +1 @@
1
- YouTube APIで閲覧回数の検索結果collaboratelyで読み込みたい
1
+ YouTube APIで特定キーワードの閲覧回数を収集する
test CHANGED
@@ -1,90 +1,104 @@
1
- YouTubeの閲覧回数の検索結果を取得し、スプレッドシートに出力をしたいです。
2
-
3
- 環境はGoogle colaborately使用
1
+ Python学習しております
4
2
 
5
3
 
6
4
 
5
+ YouTube APIで特定キーワードの閲覧回数を収集しましたが、以下の箇所がどうしてもなんとなくしか読み解けません。
6
+
7
+
8
+
9
+ i = 0
10
+
11
+ while search_request and i < next:
12
+
13
+ search_response = search_request.execute()
14
+
15
+
16
+
17
+
18
+
19
+ 実行コードは以下です。
20
+
7
21
  ```ここに言語を入力
8
22
 
9
- import os
10
-
11
- import logging
23
+ from googleapiclient.discovery import build
12
-
13
- import csv
14
24
 
15
25
  import pandas as pd
16
26
 
17
27
 
18
28
 
19
- from apiclient.discovery import build
29
+ def get_video_info(query, maxResults, next):
20
30
 
31
+
32
+
33
+ # Call the search.list method to retrieve results matching the specified
34
+
35
+ # query term.
36
+
37
+ search_request = youtube.search().list(
38
+
39
+ part='id',
40
+
41
+ q=query,
42
+
43
+ type='video',
44
+
45
+ maxResults=maxResults,
46
+
47
+ )
48
+
49
+
50
+
51
+ i = 0
52
+
53
+ #変数iに0を代入
54
+
55
+ while search_request and i < next:
56
+
21
- from apiclient.errors import HttpError
57
+ search_response = search_request.execute()
22
58
 
23
59
 
24
60
 
25
- from apiclient.discovery import build # pip install google-api-python-cliet
61
+ video_ids = [item['id']['videoId'] for item in search_response['items']]
62
+
63
+ videos_response = youtube.videos().list(
64
+
65
+ part='snippet,statistics',
66
+
67
+ id=','.join(video_ids)
68
+
69
+ ).execute()
26
70
 
27
71
 
28
72
 
29
- YOUTUBE_API_KEY = '*****'
73
+ yield videos_response['items']
74
+
75
+ # list_nextメソッドで次の検索へ進む
76
+
77
+ search_request = youtube.search().list_next(search_request, search_response)
78
+
79
+ i += 1
30
80
 
31
81
 
32
82
 
33
- def search_videos(query: str, max_pages: int=5):
83
+ return search_request
34
84
 
85
+
35
86
 
87
+ YOUTUBE_API_KEY = '*****'
36
88
 
37
- youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)
89
+ youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)
38
90
 
91
+ query = 'アニメ'
39
92
 
93
+ dict = get_video_info(
40
94
 
41
- search_response = youtube.search().list(
95
+ query,
42
96
 
43
- part='snippet',
97
+ 50, #1回あたりの検索数。
44
98
 
45
- q='釣り',
99
+ 3, #取得回数
46
100
 
47
- order='viewCount',
48
-
49
- type='video',
50
-
51
- maxResults=10,
52
-
53
- ).execute()
54
-
55
-
56
-
57
- search_response
58
-
59
-
60
-
61
- ```
101
+ )
62
-
63
-
64
-
65
- ここまでで、データは出力されました。
66
-
67
- この後、スプレッドシートに表示させたいのですが、以下のようなコードを試しましたが表示されません。
68
-
69
-
70
-
71
- ```ここに言語を入力
72
-
73
- output_sheet_name = 'test_sheet'
74
-
75
- sh = gc.create(output_sheet_name)
76
-
77
- worksheet = gc.open(output_sheet_name).sheet1
78
-
79
-
80
-
81
- cell_list = worksheet.range('A1:Z10')
82
-
83
-
84
-
85
- # シートにデータ出力
86
-
87
- worksheet.update_cells(cell_list)
88
102
 
89
103
  ```
90
104
 
@@ -92,4 +106,4 @@
92
106
 
93
107
 
94
108
 
95
- なかなか表示させることできので、有識者の方いらっしゃいましたら、ご教示いただきたくお願いいたします。
109
+ リファレンス、ガイドを確認しています、お手上げ状態なので、有識者の方いらっしゃいましたら、ご教示いただきたくお願いいたします。

2

apiキーを****に変更します。

2020/11/20 12:52

投稿

Yuppon
Yuppon

スコア5

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- YOUTUBE_API_KEY = 'AIzaSyAGOwbqz3-qVNNh6FbfWgKdT0VB2Z_DGq4'
29
+ YOUTUBE_API_KEY = '*****'
30
30
 
31
31
 
32
32
 

1

スプレッドシート への出力を追記します。

2020/11/18 12:30

投稿

Yuppon
Yuppon

スコア5

test CHANGED
File without changes
test CHANGED
@@ -1,56 +1,54 @@
1
- YouTubeの閲覧回数の検索結果を取得したく以下のような物作っております。
1
+ YouTubeの閲覧回数の検索結果を取得し、スプレッドシートに出力したいです。
2
2
 
3
3
  環境はGoogle colaboratelyを使用。
4
4
 
5
5
 
6
6
 
7
+ ```ここに言語を入力
8
+
9
+ import os
10
+
11
+ import logging
12
+
13
+ import csv
14
+
7
- 出力されたデータを見やすく、スプレッドシートかデータフレームワークに表示させたいのですが、うまくいきません。
15
+ import pandas as pd
8
16
 
9
17
 
10
-
11
- できないような記事も拝見したため、有識者の方いらっしゃいましたら、そもそもこのようなことが可能がご教示いただきたくお願いいたします。
12
-
13
-
14
-
15
-
16
-
17
- ```ここに言語を入力
18
18
 
19
19
  from apiclient.discovery import build
20
20
 
21
21
  from apiclient.errors import HttpError
22
22
 
23
+
24
+
23
- import pandas as pd
25
+ from apiclient.discovery import build # pip install google-api-python-cliet
24
26
 
25
27
 
26
28
 
27
- DEVELOPER_KEY = '**********'
29
+ YOUTUBE_API_KEY = 'AIzaSyAGOwbqz3-qVNNh6FbfWgKdT0VB2Z_DGq4'
28
-
29
- youtube = build('youtube', 'v3', developerKey=API_KEY)
30
30
 
31
31
 
32
32
 
33
- def youtube_search(options):
33
+ def search_videos(query: str, max_pages: int=5):
34
34
 
35
- #def get_video_info(query, maxResults, next):
36
35
 
37
- search_request = youtube.search().list(
38
36
 
39
- part='id',
40
-
41
- q=query,
42
-
43
- type='video',
37
+ youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)
44
-
45
- )
46
38
 
47
39
 
48
40
 
49
41
  search_response = youtube.search().list(
50
42
 
51
- q='プログラミング',
43
+ part='snippet',
52
44
 
45
+ q='釣り',
46
+
47
+ order='viewCount',
48
+
53
- part='id,snippet',
49
+ type='video',
50
+
51
+ maxResults=10,
54
52
 
55
53
  ).execute()
56
54
 
@@ -58,4 +56,40 @@
58
56
 
59
57
  search_response
60
58
 
59
+
60
+
61
61
  ```
62
+
63
+
64
+
65
+ ここまでで、データは出力されました。
66
+
67
+ この後、スプレッドシートに表示させたいのですが、以下のようなコードを試しましたが表示されません。
68
+
69
+
70
+
71
+ ```ここに言語を入力
72
+
73
+ output_sheet_name = 'test_sheet'
74
+
75
+ sh = gc.create(output_sheet_name)
76
+
77
+ worksheet = gc.open(output_sheet_name).sheet1
78
+
79
+
80
+
81
+ cell_list = worksheet.range('A1:Z10')
82
+
83
+
84
+
85
+ # シートにデータ出力
86
+
87
+ worksheet.update_cells(cell_list)
88
+
89
+ ```
90
+
91
+
92
+
93
+
94
+
95
+ なかなか表示させることができないので、有識者の方いらっしゃいましたら、ご教示いただきたくお願いいたします。