質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1756閲覧

YouTube Data APIのHttpError 400を解決したい。

manafi

総合スコア1

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/04 14:00

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('保存先のファイルのパス')

エラーの解決方法、コードの間違い等ご指摘いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

下記の maxResultsの行に全角スペースが入っているのが原因ではないでしょうか。

python

1 else: 2 youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY) 3 search_response = youtube.search().list( 4 part='id', 5 type='video', 6 channelId=channel_id, 7     maxResults=50, #<--------------行頭に全角スペースが入っている 8 pageToken=pagetoken 9 ).execute()

投稿2021/11/03 02:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問