パンプキンスパイスラテ

IT系のことが多めの日記帳です

YouTube APIにハマル、の巻

※この記事自体が嘘っぱちです。詳しくは追記をご覧ください。

特定のユーザーがアップロードした動画

このセクションでは、特定のユーザーがアップロードしたすべての動画が含まれているフィードを取得する方法を説明します。


(1)現在ログインしているユーザーがアップロードしたすべての動画のフィードをリクエストするには、次の URL に対して HTTP GET リクエストを送信します。注意: このリクエストでは、HTTP リクエストの Authorization ヘッダーに認証トークンを提示する必要があります。YouTube は認証トークンによってユーザーを識別します。
http://gdata.youtube.com/feeds/api/users/default/uploads


(2)別のユーザーがアップロードしたすべての動画のフィードをリクエストするには、次の URL に対して HTTP GET リクエストを送信します。このリクエストには、認証は必要ありません。
http://gdata.youtube.com/feeds/api/users/username/uploads

http://code.google.com/intl/ja-JP/apis/youtube/developers_guide_protocol.html#User_Uploaded_Videos

これ、嘘っぱち。
まだ(2)でしか試してないんだけど、「ユーザーがアップロードしたすべての動画のフィード」なんて取得できない。
取得できるのが確認できたのは、「正常にYouTubeへ掲載処理が完了した動画」のみ

アップロードされた動画のステータス確認
アップロードされた動画は、認証されたユーザーのアップロード済み動画フィードにただちに現れます。ただし、その動画を YouTube で再生できるようになるのは、処理とインデクシングが終わってからです。動画のアップロード日時と、動画が YouTube 上で公開される日時の間隔は一定ではありません。ただし通常、動画のインデクシングは 1 日以内で完了します。数時間または 1 時間以下で完了することもあります。

http://code.google.com/intl/ja-JP/apis/youtube/developers_guide_protocol.html#Check_Upload_Status

って書いてあるけど、「正常にYouTubeへ掲載処理が完了した動画」でも、非公開設定にしたらフィードに表示されないってことも抜けている。
もしかしたら上記の(1)のやり方で「認証トークン」を投げれば取得できるのかもしれないので、後で試してみるが、おそらく無理だと思われる。(できました:追記参照)

ユーザーのアップロード済み動画フィードを取得することによって、ユーザーの未公開動画のステータスを確認することができます。そのフィードの未公開エントリには タグが含まれます。未公開の動画には、処理中の動画、アップロードに失敗した動画、アップロード後に拒否された動画が含まれることに注意してください。

こんなことが書かれてるけど、ステータスなんか確認できやしない。
できないならこんなこと書かないでほしい。
それによって迷惑する人が出てくるのだから。

追記

(1)現在ログインしているユーザーがアップロードしたすべての動画のフィードをリクエストするには、次の URL に対して HTTP GET リクエストを送信します。注意: このリクエストでは、HTTP リクエストの Authorization ヘッダーに認証トークンを提示する必要があります。YouTube は認証トークンによってユーザーを識別します。
http://gdata.youtube.com/feeds/api/users/default/uploads

これで取得できました。
できたらできたで面倒だな!

さらに追記

(2)別のユーザーがアップロードしたすべての動画のフィードをリクエストするには、次の URL に対して HTTP GET リクエストを送信します。このリクエストには、認証は必要ありません。
http://gdata.youtube.com/feeds/api/users/username/uploads

ブラウザでアクセスじゃなくて、ちゃんとhttpでGETしたら取得できました。YouTubeさんごめんなさいごめんなさい。