youtubeAPI データー取得時の問題

08/03/05 Comment(0) Trackback(0) はてなブックマーク - youtubeAPI データー取得時の問題

youtubeダウンロード(仮)で、初めてyoutube APIを利用した。

幾つか苦労した部分があったのでメモ。

【jsonデーター取得】
jsonでデータを取得すると、パラメーター名になぜか「$」が入る。
例:「xmlns$openSearch」

同じデーターをrssで取得すると、同部分はコロン「xmlns:openSearch」になっている。
jsonだと$になる理由は分からない。

このまま、$data->xmlns$openSearchのように、データーを引っ張ろうとしても、当然エラーが出てしまう。

そこで、データー取得時に、$を消去することにした。
str_replaceを使って、APIから取り込んだデーターをそのまま変換。

$youtubeapi_data = json_decode(str_replace('$', '', file_get_contents('http://gdata.youtube.com/feeds/api/videos?format=......')))

【xmlデーター取得】

xmlデーターをsimplexml_load_fileなどでパースしようとしても、一部取り込めない箇所ができてしまった。どうやらmedia:categoryなど、「:(コロン)」がついたパラメーターはsimplexmlで取得できないらしい。

そこで、一度ファイルを取り込んで、str_replaceで「:(コロン)」を「_(アンダーバー)」などに変換しておけばよい。

ただし、「:(コロン)」はURLアドレス「http://〜」にも使われているため、必要な部分だけ変換するようにする。

たとえば、「<media:category>〜」など、media:のついたデーターを取得したい場合は、

$query = 'http://gdata.youtube.com/feeds/api/videos/' . $videoId;
$string = str_replace('media:','media_',file_get_contents($query));

のようにすれば良い。


同じテーマの記事

現在、583記事を公開中

Movable Type 4.261 &php.gif

製品レビューポータル「MONO-PORTAL」 rankbanner.png人気blogランキング
あわせて読みたい
フィードメーター - わかったブログ
Twitter / kankichi
465
474