YoutubeのAPI その3:チャンネルIDから最新動画URL50件を取得する
この間、JSONデータじゃなくて、チャンネルIDから動画URLリストを出してくれるようなプログラムを披露しようと思ってコーディングしてたんだが、諸事情で間に合わなくて放って置いたんだが、それも無責任なんでとりあえず動画のURLリストを50件並べて表示するアプリを作ろうと思う。 API_Keyが見られないようにAPIのURLをキャストするにはPHPでコードを書けばいいんだが、それだけだと面白くないし、PHPで取得したJSONデータをJavascriptで受けるのにけっこう面倒だったんで、PHPでビデオIDを取得してそれを配列にして、JSONにエンコードしてJavascriptに渡し、https://www.youtube.com/watch?v=[ビデオID]の形でリスト化しました。 上のJSONデータ(クリックで拡大)では、赤で囲んだところがビデオIDっすね。他にもサムネイル画像とかタイトルとか動画に関わる属性が取得できるんだが、それは折々。 下のコードは、YoutubeのAPIにチャンネルIDとAPI Keyをつけて、URLをキャストしてチャンネルIDに関わるビデオIDを取得して、配列に入れて返す関数っすね。function getPlayList($channel_id) { $url = "https://www.googleapis.com/youtube/v3/search?" ."part=snippet" ."&channelId=".$channel_id ."&maxResults=50" ."®ionCode=JP" ."&safeSearch=strict" ."&order=date&key=".API_KEY; $json = file_get_contents($url); $data = json_decode($json, true); $result = array(); if (count($data) > 0) { $items = $data['items']; foreach($items as $item) { $id = $item['id']; array_push($result, $id["videoId"]); } } return $result;} Javascriptでは、PHPの配列変数は読めないのでJSON構造体にして書き出したのをパースして、HTMLを動的に書き換えてURLのリストを表示してる訳っすよ。http://sunao-labo.main.jp/api/youtube/get_url_list.php※上の画像をクリックで上記のURLへジャンプ