最新コラム
-
-
-
Webサイト制作
【2023年版】国内・海外のおすすめVPS10選
-
Webサイト制作
初心者でも5分で分かる!SSL/TLSとは何か?
-
SEO外部対策SEO対策
Googleが推奨するnofollowの正しい使い方とは?
最近ではYouTubeを使って情報収集をすることも珍しく無くなってきておりますが、YouTubeにはいくつかAPIが用意されていて、プログラムからデータを取得することができるようになっています。
この記事では、PHPのサンプルを用いたAPIの使い方と、どんなデータを取得することができるのかを紹介したいと思います。
目次
YouTubeには以下のようなAPIが用意されています
サイトに埋め込んだ動画に対して、音量変更やシーク等、再生内容をコントロールできるAPIです。
動画の視聴概要等、アナリティクスの情報を取得できるAPIです。
動画の一覧やいいね、コメントの数等、動画のデータを取得できるAPIです。
本記事では、YouTube Data APIを使用してAPIの使い方を紹介します。
まずYouTube APIを使用するためにはYouTubeにログインできるアカウントが必要になりますのでアカウントを用意します。
https://console.developers.google.com/?hl=JA
これでAPIを使用する準備が整いました、それでは早速APIを使ってYouTubeからデータを取得してみましょう。
まずはキーワードを指定して動画の検索を行います。
define('YOUTUBE_API_KEY', ‘****’); //取得したAPIキーを設定してください $url = "https://www.googleapis.com/youtube/v3/search"; $part = array( 'snippet', ); $query = array( 'key' => YOUTUBE_API_KEY, 'q' => ‘Googleオフィスアワー’, 'part' => implode(",",$part), 'order' => 'date', 'maxResults' => 10, 'type' => 'video', ); $res = curl($url, $query); echo $res; function curl($url, $query){ $param = http_build_query($query, '', '&'); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url."?".$param); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $res = curl_exec($curl); curl_close($curl); return $res; }
ソースの解説をします。
先程取得したAPIキーを設定しています。
このサンプルでは検索を行うので検索用APIのURLを指定します。
取得したいデータの種別をカンマ区切りで指定します
snippetはタイトルや説明文を取得します。
検索する文字列を指定します。
取得するデータの件数とソート順を指定します。
検索対象を指定します。
APIのリクエストはcurlで行います
より詳しい情報はYouTube Date APIのガイドラインに記載されておりますので確認してみてください。
https://developers.google.com/youtube/v3/docs/search/list
上記のプログラムより以下の結果が取得できます。
{ "kind": "youtube#searchListResponse", "etag": "jE8NsrXJFpbCPccED6S6nzOW74c", "nextPageToken": "CAoQAA", "regionCode": "JP", "pageInfo": { "totalResults": 89062, "resultsPerPage": 10 }, "items": [ { "kind": "youtube#searchResult", "etag": "L0i7XDYvpN2UeTx-LymCkr3j81k", "id": { "kind": "youtube#video", "videoId": "5ziPqkIvAyM" }, "snippet": { "publishedAt": "2021-06-24T03:00:13Z", "channelId": "UCWf2ZlNsCGDS89VBF_awNvA", "title": "Japanese Google ... 2021 年 06 月 24 日)", "description": "司会:金谷武明 ...", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/5ziPqkIvAyM/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/5ziPqkIvAyM/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/5ziPqkIvAyM/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "Google Search Central", "liveBroadcastContent": "none", "publishTime": "2021-06-24T03:00:13Z" } }, … ] }
「Googleオフィスアワー」で検索を行った際の結果がjson形式で返されます。
snippetの中身を見ると、動画のタイトルやチャンネル、説明文が取得できていることが確認できます。
今度は先程取得した検索結果にあるvideoIdを使用して、動画の情報を取得します。
$url = "https://www.googleapis.com/youtube/v3/videos"; $part = array( 'snippet', 'statistics', ); $query = array( 'key' => YOUTUBE_API_KEY, 'part' => implode(",",$part), 'type' => 'video', 'id' => '5ziPqkIvAyM', ); $res = curl($url, $query);
ソースの解説をします。
このサンプルでは動画情報を取得するので動画用APIのURLを指定します。
取得したいデータの種別をカンマ区切りで指定します
statisticsは再生回数やlike数等を取得します。
取得したい動画のidを指定します。
{ "kind": "youtube#videoListResponse", "etag": "dqVr-QR1br3QyHXs4QVFTppGY_k", "items": [ { "kind": "youtube#video", "etag": "j-jaGj6KviQssVRkgyxHzMDvlWQ", "id": "5ziPqkIvAyM", "snippet": { "publishedAt": "2021-06-24T03:00:13Z", "channelId": "UCWf2ZlNsCGDS89VBF_awNvA", "title": "Japanese Google ... 2021 年 06 月 24 日)", "description": "司会…してみてください。", "thumbnails": { "default": { "url": "https://i.ytimg.com/vi/5ziPqkIvAyM/default.jpg", "width": 120, "height": 90 }, "medium": { "url": "https://i.ytimg.com/vi/5ziPqkIvAyM/mqdefault.jpg", "width": 320, "height": 180 }, "high": { "url": "https://i.ytimg.com/vi/5ziPqkIvAyM/hqdefault.jpg", "width": 480, "height": 360 }, "standard": { "url": "https://i.ytimg.com/vi/5ziPqkIvAyM/sddefault.jpg", "width": 640, "height": 480 } }, "channelTitle": "Google Search Central", "categoryId": "28", "liveBroadcastContent": "none", "localized": { "title": "Japanese Google ... 2021 年 06 月 24 日)", "description": "司会…してみてください。" }, "defaultAudioLanguage": "ja" }, "statistics": { "viewCount": "1151", "likeCount": "46", "dislikeCount": "2", "favoriteCount": "0", "commentCount": "1" } } ], "pageInfo": { "totalResults": 1, "resultsPerPage": 1 } }
指定した動画情報がjson形式で返されます。
statisticsの中身を見ると、再生回数やlikeの数が取得できていることが確認できます。
今回はふたつのサンプルを上げてYouTubeのAPIを紹介させて頂きました。
YouTubeにはもちろんこれらのAPI以外にもたくさんのAPIが存在しています。
本記事は、YouTubeのAPIを使用したいけれど使い方がわからない方の手助けになれたら幸いとなります。