こんにちは、Brownです。
YouTubeDataAPIをご存知でしょうか。
YouTubeDataAPIとは、YouTube動画の情報を取得できるAPIです。
もちろんチャンネルの情報を取得することもできますが、チャンネル情報取得に関する内容はまた次回まとめます。
今回は、YouTubeDataAPIでYouTube動画の情報を取得してみた!と題し、実際にYouTubeDataAPIを使ってYouTube動画の情報を取得する流れをまとめます!
Contents
YouTubeDataAPIKeyの取得
APIKeyの取得方法
YouTubeDataAPIを使用するためには、APIKeyを取得しなければなりません。
APIKeyを取得するためにはGoogleアカウントが必要になりますので、準備しておきましょう。
詳しい取得方法はこちらの記事をご参照ください。
APIKeyを使ってブラウザでアクセスしてみる
早速取得したAPIKeyを使って、JSONデータをブラウザで表示してみます。
今回は公式リファレンスの「例1」のURLをそのまま使用します。
https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=[YOUR_API_KEY]&part=snippet,contentDetails,statistics,status
このURLに自分のAPIKeyを当てはめてブラウザでアクセスしてみましょう。
次のような画面が表示されます。
YouTube動画のデータを取得してみる(PHP)
動画のタイトルを取得する
YouTubeDataAPIを使い、PHPで動画データを取得する方法をご紹介します。
まずは動画のタイトルを取得する方法です。
ソースコードは以下のように書きました。
$get_api_url = "https://www.googleapis.com/youtube/v3/videos?id=$video_id&key=$api_key&part=snippet,contentDetails,statistics,status";
$json = file_get_contents($get_api_url);
$getData = json_decode( $json , true);
foreach((array)$getData['items'] as $key => $gDat){
$video_title = $gDat['snippet']['title'];
}
これで変数$video_titleに動画のタイトルを取得することができました。
動画の概要欄の内容を取得
概要欄の内容を取得するためには以下のように書きます。
$get_api_url = "https://www.googleapis.com/youtube/v3/videos?id=$video_id&key=$api_key&part=snippet,contentDetails,statistics,status";
$json = file_get_contents($get_api_url);
$getData = json_decode( $json , true);
foreach((array)$getData['items'] as $key => $gDat){
$video_title = $gDat['snippet']['title'];
$description = $gDat['snippet']['description'];
}
このソースコードでは、タイトルも同時に取得しています。
その他の値も取得してみる
以下の記述で動画のサムネイル画像のURL(mediumサイズ)、動画が所属しているチャンネルID・チャンネル名も追加で取得しています。
$get_api_url = "https://www.googleapis.com/youtube/v3/videos?id=$video_id&key=$api_key&part=snippet,contentDetails,statistics,status";
$json = file_get_contents($get_api_url);
$getData = json_decode( $json , true);
foreach((array)$getData['items'] as $key => $gDat){
$video_title = $gDat['snippet']['title'];
$description = $gDat['snippet']['description'];
$thumnail_url = $gDat['snippet']['thumbnails']['medium']['url'];
$ch_id = $gDat['snippet']['channelId'];
$ch_title = $gDat['snippet']['channelTitle'];
}
YouTubeDataAPIのまとめ
YouTubeDataAPIのように公式にデータが提供されていると、利用する側としては非常にありがたいですね。
今回取り上げた値の他にも様々な値を取得することができますので、公式リファレンスを参照してぜひ様々な値を取ってみてはいかがでしょうか。
アイディア次第では面白いサイトも作れそうですね!
ちなみに最後に宣伝ですが、僕が運営している「U-RanJP」というサイトでもYouTubeDataAPIをふんだんに使っています!