Date

2017.07.15

Category

wordpressプログラミング

Tags

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

どうも

お久しぶりです、最近は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

という感じで取得するといいかも

RELATED POSTS

PROFILE

my icon

@reizou05
日本の低学歴人間で趣味は筋トレです。
とある会社でGoを書いたりしています。
WEB系のお仕事をください。

AD