私はこれらのAPIhttps://developers.google.com/youtube/を使用してい ますが、YouTubeチャンネルアドレスを指定して、関連情報(少なくとも単一のビデオURLとタイトル)を含むビデオリストを取得する方法がわかりません。
3 に答える
これはもはや関係がないことを私は知っていますが、2020年にここにいる人には、youtubev3apiキーが必要になります
使えるのは
スニペットを削除すると、すべての動画の名前やその他の情報が表示されなくなります。IDはビデオIDを与えます
URLにgetリクエストを送信します
少し複雑ですが、比較的簡単に行うことができます。秘訣は、チャンネルが実際には特定のユーザーによってアップロードされた動画のリストにすぎないことを知ることです。したがって、YouTubeチャンネルのアドレスを持っていると言うと、そのアドレスは次の形式になります。
http://www.youtube.com/user/[username]
次に、ユーザーアップロードフィードを使用して動画を取得できます。
https://gdata.youtube.com/feeds/api/users/[username]/uploads
補足として、フィードを使用する場合:
https://gdata.youtube.com/feeds/api/users/[username]
動画の数などの情報を含むさまざまなフィードリンク(上記のアップロードフィードの1つ)を提供する一連の要素を含む、ユーザーに関する追加情報が返されます。
代わりに、チャネルURLが次の形式である場合:
https://www.youtube.com/channel/UC[userid]
この種のURLは、常にUCで始まり、次に長い文字列で始まることに注意してください。この場合、UCをドロップして、次のフィードにアクセスしてください。
https://gdata.youtube.com/feeds/api/users/[userid]/uploads
この方法は、a)チャンネルに50を超える動画がある場合、またはb)フラットなtxtリストでフォーマットされたYouTube動画IDが必要な場合に特に便利です。
- Youtube API v3キーを取得します(https://stackoverflow.com/a/65440324/2585501を参照)
- チャネルのYoutubeチャネルIDを取得します(https://stackoverflow.com/a/16326307/2585501を参照) 。
- チャンネルのアップロード再生リストIDを取得します: ( https://www.youtube.com/watch?v=RjUlmco7v2M
https://www.googleapis.com/youtube/v3/channels?id={channel Id}&key={API key}&part=contentDetails
に基づく) - youtube-dlをインストールします(例
pip3 install --upgrade youtube-dl
またはsudo apt-get install youtube-dl
) - youtube-dlを使用してアップロードプレイリストをダウンロードします:
youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > videoList.txt
(https://superuser.com/questions/1341684/youtube-dl-how-download-only-the-playlist-not-the-files-thereinを参照)