2011/01/30

[ #koumeilabs ] YouTube Data APIの使い方 on GAE

YouTube Data APIをいろいろ触ってみた。

触ってみた結果はこちらに公開しているので一度アクセスしてもらいたい。
http://koumei-labs.amazedkoumei.com/youtube/

今回もやはりホストはGoogle App Engineだ。

YouTube Data APIは前回のFBMLに比べるとやや優しくない印象を受ける。
前回のエントリにも書いたがFBMLでは<fb:login-button></fb:login-button>と記述するだけでFacebookへのログインボタンを表示できる。
一方、YouTube Data APIはXML形式のレスポンスを返すのみだ。

つまりFBMLではドキュメントに記載されているパーツを切り貼りしていくだけで、それなりのUIを作ることができるのに対し、YouTube Data APIではHTMLとJavascriptを使ってUIをすべて自分で手作りせねばならないので、やや敷居が高いと言える。

反面、Googleのサービスだけあって、Google App Engineとの親和性は高い。
Google App EngineでYouTube Data APIを使うためのgdata-python-clientというライブラリが公開されているからだ。

このライブラリはXML形式で受け取ったレスポンスをたったの3行でPythonオブジェクトに変換してくれる。
例えば、YouTubeの動画情報をPythonオブジェクトに変換するための記述は下記の通りだ。
yt_service = gdata.youtube.service.YouTubeService()
yt_service.developer_key = YOUTUBE_DEVELOPER_KEY ※1
entry = yt_service.GetYouTubeVideoEntry(video_id=videoID)

※1
YOUTUBE_DEVELOPER_KEYには取得したディベロッパーキーを代入しておく。
ディベロッパーキーはhttp://code.google.com/apis/youtube/dashboard/で取得できる。
ちなみにこの記述がなくてもローカルでは動作するが、Google App Engine上ではtoo_many_recent_callsエラーが頻発することになる。too_many_recent_callsエラーはその名の通り、APIのリクエスト回数が制限値を超えた場合に発生するものだ。ディベロッパーキーが見つからない場合はIPアドレスでもってAPI利用者を特定しているのかもしれない。


gdata-python-clientは下記からダウンロードできる。
http://code.google.com/p/gdata-python-client/downloads/list

インストールも簡単だ。
圧縮ファイルを解凍後、その中の「atom」ディレクトリと「gdata」ディレクトリを、Google App Engineのルートディレクトリに直下にコピーするだけで完了する。

また、このgdata-python-clientはYouTube以外のGoogleが提供しているサービス -例えば、GoogleドキュメントやGoogleマップ、BloggerやGoogleアナリティクス- などにも対応している。

先日公開されたまるで元素記号のようなGoogleのAPI群を見ても分かる通り、GoogleのAPIの充実ぶりは日に日に増している。
GoogeやFacebookがAPIを公開し、その資産を利用できるのだから、これを利用しない手はない。

Comments