teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

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

2020/11/20 12:52

投稿

Yuppon
Yuppon

スコア5

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

2

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

2020/11/20 12:52

投稿

Yuppon
Yuppon

スコア5

title CHANGED
File without changes
body CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  from apiclient.discovery import build # pip install google-api-python-cliet
14
14
 
15
- YOUTUBE_API_KEY = 'AIzaSyAGOwbqz3-qVNNh6FbfWgKdT0VB2Z_DGq4'
15
+ YOUTUBE_API_KEY = '*****'
16
16
 
17
17
  def search_videos(query: str, max_pages: int=5):
18
18
 

1

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

2020/11/18 12:30

投稿

Yuppon
Yuppon

スコア5

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