YouTube Data API の使用法YouTube data API は、YouTube のコンテンツを読み書きする機能を提供します。 認証済みでないリクエストを Google Data フィードに実行し、 人気のある動画やコメント、YouTube 登録ユーザの公開情報 (たとえばプレイリストや購読内容、コンタクトなど) を取得できます。 YouTube Data API についての詳細は、code.google.com の » PHP Developer's Guide を参照ください。 認証YouTube Data API は、公開データへの読み取り専用アクセス機能を提供しており、 認証は不要です。書き込みリクエストを行う場合は、ClientLogin あるいは AuthSub でのユーザ認証が必要となります。詳細は » PHP Developer's Guide の認証のセクション を参照ください。 Developer Keys および Client IDデベロッパーキーは、API リクエストを行う YouTube 開発者を識別するためのものです。クライアント ID は、ログの記録やデバッグなどの際にアプリケーションを識別するものです。 » http://code.google.com/apis/youtube/dashboard/ でデベロッパーキーとクライアント ID を取得できます。 下の例は、デベロッパーキーとクライアント ID を » Zend_Gdata_YouTube サービスオブジェクトに渡すものです。 Example #1 Developer Key と ClientID を Zend_Gdata_YouTube に渡す
公開動画フィードの取得YouTube data API はさまざまなフィードを提供しており、 たとえば標準の動画一覧や関連する動画一覧、動画への返信一覧、 アップロードした動画の一覧、お気に入りの動画一覧などを取得できます。 たとえばアップロードした動画一覧のフィードは、 指定したユーザがアップロードしたすべての動画を返します。 どのようなフィードが取得できるのかについては » YouTube API リファレンスガイド を参照ください。 メタデータによる動画の検索指定した条件にマッチする動画の一覧を、YouTubeQuery クラスを用いて取得できます。 たとえば次のクエリは、メタデータに "cat" という単語を含む動画を探し、 その結果の 10 番目から 1 ページあたり 20 件ずつ表示します。 また、閲覧回数順に表示します。 Example #2 動画の検索
その他のクエリパラメータの詳細は » リファレンスガイドを参照ください。 » Zend_Gdata_YouTube_VideoQuery には、これらのパラメータ用のヘルパー関数もあります。詳細は » PHP Developer's Guide を参照ください。 カテゴリやタグ/キーワードによる動画の検索カテゴリを指定して動画を検索するには、 » 専用の URL を作成します。たとえば、dog というキーワードを含むコメディーの動画を検索するには次のようにします。 Example #3 指定したカテゴリの動画の検索
標準のフィードYouTube Data API が提供する » 標準フィード にはさまざまなものがあります。 これらの標準フィードは、URL を指定することで » Zend_Gdata_YouTube_VideoFeed オブジェクトとして取得できます。URL の指定には » Zend_Gdata_YouTube クラスの定義済み定数 (たとえば Zend_Gdata_YouTube::STANDARD_TOP_RATED_URI) を使用するか、あるいは定義済みヘルパーメソッド (下のコードを参照ください) を使用します。 評価の高い動画を取得するヘルパーメソッドは次のようになります。 Example #4 標準の動画フィードの取得
取得する標準フィードの期間を指定するクエリパラメータもあります。 たとえば、今日いちばん評価の高い動画を取得するには次のようにします。 Example #5 Zend_Gdata_YouTube_VideoQuery を使用した動画の取得
あるいは、次のように URL を使用してフィードを取得することもできます。 Example #6 URL からの動画フィードの取得
指定したユーザがアップロードした動画の取得指定したユーザがアップロードした動画の一覧を取得するヘルパーメソッドもあります。 次の例は、ユーザ 'liz' がアップロードした動画の一覧を取得します。 Example #7 指定したユーザがアップロードした動画の取得
指定したユーザのお気に入り動画の取得指定したユーザのお気に入り動画の一覧を取得するヘルパーメソッドもあります。 次の例は、ユーザ 'liz' のお気に入り動画の一覧を取得します。 Example #8 指定したユーザのお気に入り動画の取得
動画に対する返信動画の取得指定した動画に対する動画の返信の一覧を取得するヘルパーメソッドもあります。 次の例は、ID 'abc123813abc' の動画に対する返信動画を取得します。 Example #9 動画への返信のフィードの取得
動画のコメントの取得YouTube の動画に対するコメントを取得するにはいくつかの方法があります。 ID 'abc123813abc' の動画に対するコメントを取得するコードは、次のようになります。 Example #10 動画 ID からの動画へのコメントのフィードの取得 もし既にその動画を表す » Zend_Gdata_YouTube_VideoEntry オブジェクトがあるのなら、それを用いてその動画のコメントを取得することもできます。 Example #11 Zend_Gdata_YouTube_VideoEntry からの動画へのコメントのフィードの取得
プレイリストフィードの取得YouTube data API を使用すると、 プロファイルやプレイリスト、購読内容といったユーザ情報を取得できます。 指定したユーザのプレイリストの取得このライブラリには、指定したユーザのプレイリストを取得するためのヘルパーメソッドがあります。 ユーザ 'liz' のプレイリストを取得するには、次のようにします。 Example #12 指定したユーザのプレイリストの取得 指定したプレイリストの取得このライブラリには、 指定したプレイリストの動画一覧を取得するヘルパーメソッドがあります。 指定したプレイリストエントリの動画一覧を取得するには、次のようにします。 Example #13 指定したプレイリストの取得
指定したユーザの購読内容の一覧の取得ユーザは、チャンネルやタグ、お気に入りなどの内容を購読できます。 » Zend_Gdata_YouTube_SubscriptionEntry を使用して、それらの購読内容を表します。 ユーザ 'liz' のすべての購読内容を取得するには、次のようにします。 Example #14 指定したユーザのすべての購読の取得
ユーザのプロファイルの取得任意の YouTube ユーザの公開プロファイル情報を取得できます。 ユーザ 'liz' のプロファイルを取得するには、次のようにします。 YouTube への動画のアップロードアップロードのおおまかな手順については、code.google.com の » プロトコルガイドの図を参照ください。 動画のアップロードには 2 通りの方法があります。 動画を直接送信するか、単に動画のメタデータだけを送信して動画は HTML フォームでアップロードさせるかです。 動画を直接アップロードするには、まず新しい » Zend_Gdata_YouTube_VideoEntry オブジェクトを作成して必須メタデータを指定しなければなりません。 次の例は、Quicktime 動画 "mytestmovie.mov" を以下のプロパティで YouTube にアップロードするものです。
下のコードは、アップロード用に空の » Zend_Gdata_YouTube_VideoEntry を作成します。次に » Zend_Gdata_App_MediaFileSource オブジェクトを使用して実際の動画ファイルを保持させます。水面下では、 » Zend_Gdata_YouTube_Extension_MediaGroup オブジェクトを使用して動画のすべてのメタデータを保持します。 以下で説明するヘルパーメソッドを使用すると、 メディアグループオブジェクトのことを気にせず動画のメタデータを設定できます。 $uploadUrl は、新しいエントリを投稿する場所です。 これは、認証済みユーザの名前 $userName で指定することもできますし、 シンプルに 'default' と指定して現在の認証済みユーザを自動的に利用することもできます。 Example #16 動画のアップロード
非公開で動画をアップロードするには、アップロードの前に $myVideoEntry->setVideoPrivate(); を実行します。 $videoEntry->isVideoPrivate() を使用すると、 その動画エントリが非公開かどうかを調べることができます。 ブラウザベースのアップロードブラウザベースのアップロードも直接のアップロードとほとんど同じ処理ですが、 作成した » Zend_Gdata_YouTube_VideoEntry に » Zend_Gdata_App_MediaFileSource オブジェクトをアタッチしないという点が異なります。 そのかわりに、動画のすべてのメタデータを送信してトークン要素を受け取り、 それを用いて HTML アップロードフォームを作成します。 Example #17 ブラウザベースのアップロード
上のコードは、リンクとトークンを表示します。 これらを元に、ユーザのブラウザに表示させる HTML フォームを構築します。 シンプルなフォームの例を以下に示します。 $tokenValue が返されたトークン要素の中身をあらわしており、 これは上の $myVideoEntry から取得したものです。 フォームを送信したあとであなたのサイトにリダイレクトさせるには、 パラメータ $nextUrl を上の $postUrl に追加します。 これは、AuthSub リンクにおけるパラメータ $next と同じように機能します。 唯一の違いは、一度きりのトークンではなく status と id を URL の中に含めて返すということです。 Example #18 ブラウザベースのアップロード: HTML フォームの作成
アップロード状況のチェック動画をアップロードしたら、認証済みユーザのアップロードフィードにすぐに反映されます。 しかし、公開手続きがすむまではサイト上では公開されません。 却下された動画やアップロードが正常終了しなかった動画についても、 認証ユーザのアップロードフィードのみに現れるようになります。 次のコードは、 » Zend_Gdata_YouTube_VideoEntry の状態をチェックして、公開されているかいないか、また却下されたのかどうかを調べます。 Example #19 動画のアップロード状況のチェック
その他の関数これまで説明してきたもの以外にも YouTube API にはさまざまな機能が存在し、 動画のメタデータを編集したり動画エントリを削除したり、 サイト上のコミュニティ機能を利用したりといったことが可能です。 API で操作できるコミュニティ機能としては、 評価やコメント、プレイリスト、購読、ユーザプロファイル、コンタクト、メッセージなどがあります。 完全なドキュメントは、code.google.com の » PHP Developer's Guide を参照ください。
|
|