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));

のようにすれば良い。

API&ウェブサービス
スポンサーリンク
当ブログの記事に共感していただけたら、また読みに来ていただけると嬉しいです。読んでくれる方の数が多くなると、更新するヤル気に繋がります(^^)
フォロー、ブックマークしていただけると、ブログ更新を見逃しません

コメント

タイトルとURLをコピーしました