以前YouTube Data APIで指定した動画の再生数の取得を試してみましたが、今回は再生リストに入っている動画の情報の取得を試してみます。
サンプルコード
再生リスト内の動画の取得はPlaylistItemsを使用します。
var apikey = 'APIキーをここに入れる'; var listid = '再生リストのIDをここに入れる'; var pagetoken = ''; var results = []; $(function(){ get_api_data(); }); // URLを生成する関数 function generate_api_url(token) { var url = 'https://www.googleapis.com/youtube/v3/playlistItems'; url += '?part=snippet'; url += '&maxResults=50'; if(pagetoken !== '') { url += '&pageToken=' + token; } url += '&playlistId=' + listid; url += '&key=' + apikey; return url; } // データを取得する関数 function get_api_data() { var getData = $.ajax({ url: generate_api_url(pagetoken), dataType: 'json' }); getData.then( function(data) { pagetoken = data.nextPageToken; // 取得したデータを整形して結果用の配列に入れる for (var i = 0; i < data.items.length; i++) { results.push({ "title": data.items[i].snippet.title, "id": data.items[i].snippet.resourceId.videoId }); } $('#sample').val(JSON.stringify(results)); // 次のデータがある場合は再度データ取得を実行 if(pagetoken !== undefined) { get_api_data(); // データの取得が完了した場合はconsoleに結果表示 } else { console.log(results); } }, function(error) { console.log(error); } ); }
再生リストの動画を取得する際の注意点として、1回で取得可能な最大件数が50件となっています。
取得した件数以上に動画がある場合(結果に次のページがある場合)、レスポンスに含まれるnextPageTokenの値を使うことで次のページの結果を取得することができます。
上記例では変数pagetokenにnextPageTokenの値を格納して(33行目)、リクエストURL生成時にpagetokenの値を含めるようにしています(16~18行目)。
これで再生リストに入っている動画のタイトルと動画IDの一覧を取得することができました。
コメントが承認されるまで時間がかかります。