【PHP】 APIを使って動画のサムネイルを取得するまとめ 【2009年版】

諸事情により、PHPでサムネイルを取得して表示するプログラムを書いているので、
ついでにYouTubeとニコニコ動画のサムネイルを取得するプログラムをまとめておきます。
(以前書いたエントリの再まとめおよび更新版です)


以前書いたエントリ

YouTube API を使ってみる。
ニコニコ動画APIを使ってサムネイルを取得する。

YouTubeの場合

APIの仕様
http://gdata.youtube.com/feeds/api/videos/video ID

サムネイルの取得
$xml->children('http://search.yahoo.com/mrss/')->group->thumbnail[0]->attributes()->url

サンプルコード
function getYouTubeThumbnailById($movieId)
{
$xml = @simplexml_load_file("http://gdata.youtube.com/feeds/api/videos/" . $movieId);
return ($xml !== false) ? (string) $xml->children('http://search.yahoo.com/mrss/')->group->thumbnail[0]->attributes()->url : null;
}

以前はYouTubeが発行するdeveloper IDが必要でしたが、
GoogleがAPIを提供するようになって不要になりました。
(アップロードなど認証を行う場合には必要です)

またYouTubeの場合サムネイルが複数あるのですが、
ここでは便宜上標準のもの1つだけを取得しています。

APIが返すレスポンスの詳細についてはこのあたりを参考にしてください。

デベロッパー ガイド: Data API プロトコル – 動画のフィードとエントリの説明

PHPを使ったAPI操作の一般的な例はこちらで。

デベロッパー ガイド: PHP – YouTube の API とツール – Google Code



ニコニコ動画の場合

APIの仕様
http://www.nicovideo.jp/api/getthumbinfo/video ID

サムネイルの取得
$xml->thumb->thumbnail_url

サンプルコード
function getNicoThumbnailById($movieId)
{
$xml = simplexml_load_file("http://www.nicovideo.jp/api/getthumbinfo/" . $movieId);
return ($xml->attributes()->status == 'ok') ? (string) $xml->thumb->thumbnail_url : null;
}

ニコニコ動画の場合は、公式な仕様はないので、
とりあえず現在はこういうことになっている…程度の情報ですが、
とにもかくにもこれで取得できます。


その他のAPIについては、このあたりにまとめられています。

ニコニコ動画APIとは (ニコニコドウガエーピーアイとは) – ニコニコ大百科

ランキングあたりのAPI欲しいなぁ…