サンプルコードの概要
YouTube Data APIを使います。動画IDを指定して、動画情報を取得します。
- 情報を取得したい動画のIDを用意します。
- 動画をアップロードした本人以外でも取得できる情報があります。
- 言語はPHPです。
- Google APIキーが必要です。クライアントIDとクライアントシークレットは不要です。
まずは、下準備として
をごらんください。
その他のサンプルコードはこちらGoogle APIの記事一覧
サンプルコード
<?php
if (!file_exists(__DIR__ . '/vendor/autoload.php')) {
throw new \Exception('please run "composer require google/apiclient:~2.0" in "' . __DIR__ .'"');
}
require_once __DIR__ . '/vendor/autoload.php';
$DEVELOPER_KEY = 'APIキーをここに入れる';
$client = new Google_Client();
$client->setDeveloperKey($DEVELOPER_KEY);
$youtube = new Google_Service_YouTube($client);
$htmlBody = "";
try {
$listResponse = $youtube->videos->listVideos(
'id,snippet,statistics,contentDetails',
array('id' => '動画ID_1,動画ID_2,動画ID_3')
);
foreach ($listResponse['items'] as $res) {
$htmlBody .= "<tr>
<td>{$res["snippet"]["publishedAt"]}</td>
<td>{$res["snippet"]["title"]}</td>
<td>{$res["snippet"]["channelTitle"]}</td>
<td>{$res["statistics"]["viewCount"]}</td>
<td>{$res["statistics"]["likeCount"]}</td>
<td>{$res["statistics"]["commentCount"]}</td>
<td>{$res["contentDetails"]["duration"]}</td>
</tr>";
}
} catch (Google_Service_Exception $e) {
$htmlBody .= sprintf('<p>A service error occurred: <code>%s</code></p>',
htmlspecialchars($e->getMessage()));
} catch (Google_Exception $e) {
$htmlBody .= sprintf('<p>An client error occurred: <code>%s</code></p>',
htmlspecialchars($e->getMessage()));
}
?>
<!doctype html>
<html>
<head>
<title>YouTube List</title>
</head>
<body>
<table>
<tr>
<th>動画の投稿日</th>
<th>動画タイトル</th>
<th>チャンネル名</th>
<th>再生回数</th>
<th>いいね数</th>
<th>コメント数</th>
<th>動画時間</th>
</tr>
<?=$htmlBody?>
</table>
</body>
</html>
YouTube Data API公式ページ ⇒ 検索(Search) ⇒ リスト(list)メソッドにあるSearch: listのPHPサンプルコードをベースにしています。
- 8行目の「APIキーをここに入れる」の部分を、取得したAPIキーで置き換えてください。
- 21行目で動画IDを指定しています。カンマ区切りで50件まで指定できます。
実際には取得したい動画のIDで置き換えてください。 - 27行目で情報を取得しています。
ほかにどんな情報を取得できるのか、公式リファレンスのVideos#プロパティをチェックしてください。 - 動画をアップロードした本人にしか取得できない情報があるので要注意です。
実行結果
実行結果のHTMLをコピペしてきました。
動画の投稿日 | 動画タイトル | チャンネル名 | 再生回数 | いいね数 | コメント数 | 動画時間 |
---|---|---|---|---|---|---|
2014-08-01T08:44:18Z | サンプル動画タイトル | サンプル動画チャンネル名 | 10259 | 67 | 5 | PT2M47S |
2014-08-01T08:44:18Z | サンプル動画タイトル | サンプル動画チャンネル名 | 10259 | 67 | 5 | PT2M47S |
2014-08-01T08:44:18Z | サンプル動画タイトル | サンプル動画チャンネル名 | 10259 | 67 | 5 | PT2M47S |
※一部のデータを、サンプル用に変更しています。