特定のYouTubeチャンネル(以下、チャンネル)でアップロードされている動画を取得する方法の1つで、YouTube Data APIの「Search: list」を使う方法があります。ちょっと案件で使うことがあったので、今後も使いそうなのでメモ書きしておこうと思いました。
もし似たようなことをされたい場合は、ご参考ください。
前提があります
※この方法は、YouTube Data APIを使えるようにしておくことが前提です。設定方法はこちらの記事「YouTube Data APIを使って動画の情報を取得する方法」をご参考ください。
それでは早速いきましょう~。
YouTubeで特定のチャンネルを指定して動画を取得
やりかたはとてもシンプルです。「Search: list」にも書いてあるんですが、HTTPリクエストにクエリパラメーターを設定してあげればOK、という感じです。
「Search:list」のHTTPリクエスト
https://www.googleapis.com/youtube/v3/search
・・・ちょっと専門的な用語がいくつかありますね。ここであまり深く考えて前に進まないのもあれですので、単純にブラウザのアドレスバーに上のurlを貼り付けてアクセスしましょう。
ブラウザのアドレスバーに貼り付けてアクセス
すると、以下のような表示が出てくると思います。
結果
{ "error": { "errors": [ { "domain": "global", "reason": "required", "message": "Required parameter: part", "locationType": "parameter", "location": "part" } ], "code": 400, "message": "Required parameter: part" } }
上のコードの「message」に注目すると「part」パラメーターが必要ですよ、って書いてあります。なので、「part」パラメーターを設定します。
「part」パラメーターを設定してアドレスバーに貼り付けてまたアクセス
https://www.googleapis.com/youtube/v3/search?part=snippet
partに設定できるパラメーターは他にもあります。詳細は「Search: list」を確認してください。
結果
{ "error": { "errors": [ { "domain": "usageLimits", "reason": "dailyLimitExceededUnreg", "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.", "extendedHelp": "https://code.google.com/apis/console" } ], "code": 403, "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup." } }
細かい説明は省略しますが、このリクエストにはAPIキーが必要なんですね。なので、「key」パラメーターを入れてあげます。値は、APIコンソールで作成したAPIキーを入力します。(※こちらの記事にAPIキーの確認方法も書いてあります)
「key」パラメーターにAPIキーを指定してまたまたアクセス
https://www.googleapis.com/youtube/v3/search?part=snippet&key=APIキー
結果
{ "kind": "youtube#searchListResponse", "etag": "\"xxxxxxx\"", "nextPageToken": "CAUQAA", "pageInfo": { "totalResults": 1000000, "resultsPerPage": 5 }, "items": [ { "kind": "youtube#searchResult", "etag": "\"xxxxxxx\"", "id": { "kind": "youtube#video", "videoId": "S9bCLPwzSC0" }, ・・・省略
ようやくエラーがなくなって、データがたくさん出てきます。ここからが本題ですね。
ここからが本題。特定のチャンネルを指定して動画情報を取得
特定のチャンネルの動画のみ取得するには「チャンネルID」を指定するとできます。「チャンネルID」はこの記事の方法などを使うと知ることができます。
また、別の方法として、例えばAKB48の公式チャンネルのURLに注目しますと「UCxjXU89x6owat9dA8Z-bzdw」がチャンネルIDになっています。こっちのほうが手軽に調べられますかね。
というわけで、AKB48のチャンネルID「UCxjXU89x6owat9dA8Z-bzdw」を使って「channelId」パラメーターを指定します。
「channelId」パラメーターを設定してまたまたまたアクセス
https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCxjXU89x6owat9dA8Z-bzdw&key=APIキー
結果
・・・省略 "items": [ { "kind": "youtube#searchResult", "etag": "\"xxxxxxx\"", "id": { "kind": "youtube#video", "videoId": "ZCNiY-j6VsI" }, "snippet": { "publishedAt": "2013-07-20T03:15:06.000Z", "channelId": "UCxjXU89x6owat9dA8Z-bzdw", "title": "恋するフォーチュンクッキー STAFF Ver. / AKB48[公式]", "description": "御礼!!900万再生突破!! 皆さんにお見せできるものができるのだろうかと ドキドキしながら、一生懸命スタッフ一同踊りました。 そんなミュージックビデオを900万回も ...", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/ZCNiY-j6VsI/default.jpg" }, "medium": { "url": "https://i.ytimg.com/vi/ZCNiY-j6VsI/mqdefault.jpg" }, "high": { "url": "https://i.ytimg.com/vi/ZCNiY-j6VsI/hqdefault.jpg" } }, "channelTitle": "AKB48", "liveBroadcastContent": "none" } }, { "kind": "youtube#searchResult", "etag": "\"xxxxxxx\"", "id": { "kind": "youtube#video", "videoId": "AFkT9fFTWvc" }, "snippet": { "publishedAt": "2010-09-08T12:09:21.000Z", "channelId": "UCxjXU89x6owat9dA8Z-bzdw", "title": "【MV】 遠距離ポスター / AKB48 [公式]", "description": "AKB48 15thシングルc/w「遠距離ポスター」 作詞:秋元康 作曲:小川コータ 編曲:野中\"まさ\"雄一 AKB48 15thシングル「桜の栞:のカップリング曲。 【AKB48× 週刊ヤング ...", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/AFkT9fFTWvc/default.jpg" }, "medium": { ・・・省略
という感じで、AKB48公式チャンネルで公開されている動画情報のみ取得できました。
応用するといろいろできる
例えば検索クエリのパラメーターを入れてあげると「特定のチャンネル内で、さらに特定のキーワードに合致した動画を取得」とか「動画再生数とか評価とかにソートして表示」などもできます。ここは、組み合わせ次第ですね。
以上、特定のYouTubeチャンネルの動画情報のみ取得する方法でした。何かのご参考となりましたら幸いです。
このページを共有する