水曜日の筋パネラ

筋トレが好きでプログラミングな日本の高校生

PHPでYoutube API v3を叩いて特定のチャンネルの新着動画を取ってくる

time 2017/07/15

どうも

お久しぶりです、最近はWordPress案件がとても楽しいです。
是非お仕事ください。
そんな中、WordPress案件の中で、特定のチャンネルの新着動画をトップページに並べたいらしく、色々と考えた結果Youtube v3 apiを使うと驚くほど簡単に新着動画を取ってくることに成功したので記事にしたいと思います。

新着動画を取って来たい

はい、もう簡単なので早速やっていきたいと思います。

1.Google Cloud Consoleに行って鍵を取ってくる

まず、Google Cloud ConsoleのAPI Managerに行きます
そしてライブラリでYoutubeを検索して、Youtube Data APIを有効にします。


次に認証情報から認証情報を作成します。
APIキーを選択すると一瞬でキーが出てくるのでメモっておいてください。

2.チャンネルIDを取得する

これは至って簡単です、チャンネルIDが欲しいチャンネルにアクセスして

URLのchannel/以下がチャンネルIDです

3.Youtube v3 APIを叩く

はい、Keyがあればもうすぐ叩けます。
https://www.googleapis.com/youtube/v3/search
が検索APIなので、これに
?part=snippet&channelId={チャンネルID}&maxResults=5&order=date&type=video&key={API Key}
って感じでGETパラメータをつけてブラウザからアクセスしてみると…
maxResults=5
5件取ってくるの意
https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UC5UKWHBT_f5789lAE5Tkd4A&maxResults=5&order=date&type=video&key={API Key}

僕の大好きな鍛道の最新動画のJSONが降ってきます

4.PHPから叩く


function cuGet_contents( $url, $timeout = 15 ){
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout );
$result = curl_exec( $ch );
curl_close( $ch );

return $result;

}

いい感じでcurl get関数的なものを作って
json_decodeをして

foreach ($array['items'] as $key => $value) {
}

で色々とるって感じです。

小技

Youtube v3 APIで降ってくるthumbnailのURLはオリジナル画像のURLではなく、圧縮されたりしているので画質が悪かったり、勝手にアスペクト比が変えられていたりするので、表示するときは
http://i.ytimg.com/vi/{Video ID}/maxresdefault.jpg
という感じで取得するといいかも

down

コメントする




筆者プロフィール


@reizou05

日本の高校生です

趣味 : 筋トレ、クライミング

tento.techという中高生プログラマー集団の長やってます。

このブログは超不定期更新です

お仕事ください