以前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の一覧を取得することができました。

コメントが承認されるまで時間がかかります。