YouTube Data APIとPython を使って、動画を検索しています。
別のファイルで、検索クエリを指定しチャンネルの情報を取得済みです。今回は、それらのチャンネルがアップしている動画を取得しようとしています。
以下のコードのうち、youtube.search().list()のmaxResults=50に赤線が引かれて、HttpError 400が出ます。
エラーのメッセージには、Request contains an invalid argument.と記載されています。
python
1from apiclient.discovery import build 2from apiclient.errors import HttpError 3from oauth2client.tools import argparser 4 5DEVELOPER_KEY = "取得したキー" 6YOUTUBE_API_SERVICE_NAME = "youtube" 7YOUTUBE_API_VERSION = "v3" 8 9from google.colab import drive 10drive.mount('/content/drive') 11 12pip install --upgrade google-api-python-client 13pip install openpyxl 14pip install xlrd 15import pandas as pd 16 17channelid = [pd.read_excel('チャンネル情報を保存しているエクセルファイルのパス', sheet_name='エクセルのシート名', usecols=[4] )] 18def youtube_search(pagetoken, searches, channel_id): 19 if pagetoken == 0: 20 print('a') 21 youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY) 22 search_response = youtube.search().list( 23 part='id', 24 type='video', 25 channelId=channel_id, 26 maxResults=50 27 ).execute() 28 else: 29 youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY) 30 search_response = youtube.search().list( 31 part='id', 32 type='video', 33 channelId=channel_id, 34 maxResults=50, 35 pageToken=pagetoken 36 ).execute() 37 for search_result in search_response.get("items", []): 38 if search_result["id"]["kind"] == "youtube#video": 39 searches.append([search_result["id"]["videoId"]]) 40 print(search_result["id"]["videoId"]) 41 try: 42 nextPagetoken = search_response["nextPageToken"] 43 youtube_search(nextPagetoken, videos) 44 except: 45 return 46 47for channel_id in channelid: 48 searches = [] 49 youtube_search(0, searches, channel_id) 50search_report = pd.DataFrame(data=searches, columns=['videoId'], index=None) 51search_report.to_csv('保存先のファイルのパス')
エラーの解決方法、コードの間違い等ご指摘いただけると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。