YouTubeのPlayer APIでJavaScriptを使ってYouTubeのプレイリストを再生しようとした時の話。
こちらのサイトを参考にプログラムを作成しました。
jQuery Youtube Player API Example
http://badsyntax.github.com/jquery-youtube-player/examples/player-advanced.html
こちらが作成したHTML&JavaScriptのコード。
<html lang="ja"> <head> <meta charset="utf-8"> <title>YouTubeのPlayer APIでプレイリストを再生</title> </head> <body> <script type="text/javascript" src="swfobject.js"></script> <div id="ytapiplayer"> You need Flash player 8+ and JavaScript enabled to view this video. </div> <script type="text/javascript"> var params = { allowScriptAccess: "always" }; var atts = { id: "myytplayer" }; swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=player1&version=3", "ytapiplayer", "640", "360", "8", null, null, params, atts); function onYouTubePlayerReady(id) { var player = document.getElementById("myytplayer"); player.cuePlaylist("71B8152559FA2805"); // OK // player.cuePlaylist("gUOF5xCCDpULREYFrkC983JRU1hwA"); // NG } </script> </body> </html>
これは正しく動作しました。
プレイリストのIDの取得方法
次に自分が選んだプレイリストで再生してみようと思い、まずはプレイリストのIDの取得方法を調べました。
するとYouTubeでプレイリストを再生するしている時のURLから取得みたいでした。例えば上記のプログラム内で使用した 71B8152559FA2805 のプレイリストの再生時のURLは以下の様に成ります。
http://www.youtube.com/playlist?list=PL71B8152559FA2805
プレイリストのIDはURL内の list= に設定してある値から先頭の PL の文字を除いたものに成ります。これが先ほどのプログラムで使っていた値です。
それを踏まえ、今度は自分が選んだもののプレイリストIDを使ってみます。
最近、電通が開設したチャンネルのドラゴンボールの動画のプレイリストのURLはこの様に成っていました。
http://www.youtube.com/playlist?list=PLgUOF5xCCDpULREYFrkC983JRU1hwA-zg
なんだか先ほどものに比べて随分長いURLですね。まぁ、気にせずPLを除いた gUOF5xCCDpULREYFrkC983JRU1hwA-zg を使ってみたのですが再生されませんでした。
抽出する範囲が変わったんですかねぇ?そもそもYouTube側で正式に提供しているプレイリストのIDを確認するページみたいなものは無いのかなぁ?と思ってます。
もし、何か情報をお持ちの方はコメント欄にて教えて頂けると嬉しいです。
関連情報
電通がYouTubeにマンガチャンネル開設
http://internet.watch.impress.co.jp/docs/news/20130204_586370.html
YouTube — Google Developers
https://developers.google.com/youtube/