このドキュメントは、YouTube とやり取りするクライアント アプリケーションを作成するプログラマを対象としています。このドキュメントでは、デベロッパー ガイド: Data API プロトコルの内容と Java や PHP のデベロッパー用の言語固有のガイドの内容を補足します。
このドキュメントでは、YouTube Data API を使用して取得できるさまざまなタイプのフィードを順に説明します。異なるフィード間を移動する方法を説明する図も示します。たとえば、ユーザーの再生リスト フィードに、個々の再生リストとユーザー プロフィールのようなデータを参照する URL が含まれていることを図で示します。これらの図により、あるフィードから別のフィードに移動する方法がわかります。最後に、このドキュメントでは、YouTube Data API リクエストに使用するパラメータと、API レスポンスに返される XML タグを定義します。Java や PHP のデベロッパーのために、XML タグが VideoEntry、ProfileEntry、またはその他のタイプのオブジェクトのプロパティに直接対応している場合があります。
YouTube Data API では、API で利用可能なデータのさまざまなビュー、つまりプロジェクションが提供されます。デベロッパー ガイド: Data API プロトコルとこのドキュメントの例では、すべて api プロジェクションを使用します。このプロジェクションでは、このドキュメントの XML 要素の定義のセクションで定義されたタグがすべてサポートされます。
このドキュメントを利用するデベロッパーのほとんどが、api プロジェクションを使用することになります。ただし携帯端末用アプリケーションを開発する場合は、API ドキュメントに記載されているリクエストのどのサンプルでも、「api」を「mobile」に置き換えることができます。同様に、フィード リーダーに最適な base プロジェクションを使用する場合は、API ドキュメントに記載されているリクエストのどのサンプルでも、「api」を「base」に置き換えることができます。
サポートされているプロジェクションの値を次の表に示します。
| プロジェクション名 | 説明 |
|---|---|
api |
このプロジェクションでは YouTube と Media RSS のスキーマ内の関連するすべてのタグを含めて、このドキュメントで定義されるすべての XML 要素をサポートするフィードが生成されます。どのプロパティにも、HTML ではなくプレーン テキストが含まれます。 |
base |
このプロジェクションでは、拡張要素を含まない基本的な Atom フィードが生成されます。<atom:summary> プロパティと <atom:content> プロパティには、エンティティ エンコード HTML が含まれます。 |
mobile |
このプロジェクションでは、このドキュメントで定義された XML 要素のほとんどがサポートされます。携帯端末用アプリケーションを作成するデベロッパーがこのプロジェクションを使用します。 |
YouTube Data API からは次のタイプのフィードを取得できます。
この API では、認証せずに上記のフィードを取得できます。ただし場合によって、認証済みのリクエストにより追加の情報が取得できます。たとえば、ユーザーごとのアップロードされた動画のリストに対して認証済みのリクエストを送信すると、フィードには非公開動画や拒否された動画、保留中の動画が含まれます。認証されていない API リクエストや、現在認証されているユーザー以外のユーザーがアップロードした動画のリクエストへのレスポンスには、非公開動画や、拒否されたまたは保留中の動画は含まれません。
動画、再生リスト、チャンネル登録、評価、コメントなどのエンティティを追加、更新するには、GET リクエストを含むすべてのリクエストで、デベロッパー キーと、AuthSub 認証か ClientLogin 認証を使用した認証が必要です。
動画フィードは、動画エントリのコレクションを返します。各動画エントリには、動画フィードの結果セットに含まれる個々の動画の情報が含まれます。YouTube Data API を使用すると、次のタイプの動画フィードを取得できます。
API は動画の検索リクエストへのレスポンスに、検索した動画のフィードを 1 つ返します。この検索した動画のフィードには、最大で 999 のエントリが含まれます。検索結果を取得するには、次の URL に API リクエストを送信します。
http://gdata.youtube.com/feeds/projection/videos
検索リクエストには、このドキュメントのクエリ パラメータの定義のセクションで定義されているどのクエリ パラメータ (time パラメータを除く) も使用できます。たとえば、次の URL では「skateboarding dog」に関連するすべての動画の検索結果の 21 番目から 10 件の結果を返すように要求します。
http://gdata.youtube.com/feeds/api/videos?
vq=skateboarding+dog
&start-index=21
&max-results=10
関連動画フィードには、ある動画に関連付けられた動画のリストが含まれます。YouTube では関連動画のセットがアルゴリズムにより選択されます。
API レスポンス内の各動画エントリには、一連の <link> タグが含まれます。rel 属性値が http://gdata.youtube.com/schemas/2007/#video.related の <link> タグは、その動画エントリに関連付けられた他の動画を取得する URL を示します。(<link> タグの href 属性がその URL を示します。)
<link rel="http://gdata.youtube.com/schemas/2007#video.related"
type="application/atom+xml"
href="http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/related"/>
関連動画フィードには、最大 100 本の動画が含まれます。
動画レスポンス フィードには、別の動画へのレスポンスとして明示的に指定された動画が含まれます。1 本の動画を動画レスポンスとして指定できるのは、他の 1 本の動画に対してのみで、動画レスポンスのない動画もあります。
API レスポンス内の各動画エントリには、一連の <link> タグが含まれます。rel 属性値が http://gdata.youtube.com/schemas/2007/#video.responses の <link> タグは、その動画エントリの動画レスポンスを取得する URL を示します。(次の例に示すように、<link> タグの href 属性がその URL を示します。)
<link rel="http://gdata.youtube.com/schemas/2007#video.responses"
type="application/atom+xml"
href="http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/responses"/>
標準フィードには、YouTube のユーザーの行動を反映する動画のリスト (評価の高い動画、人気の動画などのフィード) または YouTube スタッフが選択した動画のリスト (おすすめの動画、モバイル向け動画などのフィード) が含まれます。これらのフィードの多くは、YouTube ウェブサイトの [動画] タブに表示されます。
標準フィードを取得するには、そのフィードに関連付けられた URL に HTTP GET リクエストを送信します。各標準フィードに関連付けられた URL を次の表に示します。
| 名前 | フィード ID | 例 |
|---|---|---|
| 評価の高い動画 | top_rated | http://gdata.youtube.com/feeds/api/standardfeeds/top_rated |
| お気に入り登録の多い動画 | top_favorites | http://gdata.youtube.com/feeds/api/standardfeeds/top_favorites |
| 人気の動画 | most_viewed | http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed |
| 新着動画 | most_recent | http://gdata.youtube.com/feeds/api/standardfeeds/most_recent |
| 話題の動画 | most_discussed | http://gdata.youtube.com/feeds/api/standardfeeds/most_discussed |
| リンク数の多い動画 | most_linked | http://gdata.youtube.com/feeds/api/standardfeeds/most_linked |
| コメントの多い動画 | most_responded | http://gdata.youtube.com/feeds/api/standardfeeds/most_responded |
| おすすめ | recently_featured | http://gdata.youtube.com/feeds/api/standardfeeds/recently_featured |
| モバイル向け動画 | watch_on_mobile | http://gdata.youtube.com/feeds/api/standardfeeds/watch_on_mobile |
この API では、標準フィードの URL に regionID を挿入することで、地域固有の標準フィードを取得できます。地域固有の標準フィードの取得に使用する URL フォーマットは次のとおりです。
http://gdata.youtube.com/feeds/api/standardfeeds/regionID/feedID
たとえば日本で評価の高い動画のリストを取得するには、次の URL に HTTP GET リクエストを送信します。
http://gdata.youtube.com/feeds/api/standardfeeds/JP/top_rated
注意: watch_on_mobile 標準フィードの地域固有のバージョンは使用できません。
次の表に、YouTube Data API が地域固有のフィードをサポートしている国と、その国に関連付けられた regionID を示します。
| 国 | regionID |
|---|---|
| オーストラリア | AU |
| ブラジル | BR |
| カナダ | CA |
| フランス | FR |
| ドイツ | DE |
| イギリス | GB |
| オランダ | NL |
| 香港 | HK |
| アイルランド | IE |
| イタリア | IT |
| 日本 | JP |
| メキシコ | MX |
| ニュージーランド | NZ |
| ポーランド | PL |
| ロシア | RU |
| 韓国 | KR |
| スペイン | ES |
| 台湾 | TW |
| 米国 | US |
すべての標準フィードで time クエリ パラメータがサポートされており、前日、先週、または先月の関連する結果のみを含めるようにフィードを限定できます。たとえば前日の評価の高い動画を取得するには、次の URL に HTTP GET リクエストを送信します。
http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today
お気に入りの動画フィードには、特定のユーザーがお気に入りの動画として明示した動画のリストが取得されます。YouTube のウェブサイトでは、ユーザーは自分のアカウント ページで自分のお気に入りの動画のリストを表示、編集できます。ユーザーのお気に入りの動画は、YouTube の他のユーザーにも公開されます。
現在ログインしているユーザーのお気に入りの動画フィードを要求するには、次の URL に HTTP GET リクエストを送信します。注意: このリクエストの場合、Authorization HTTP リクエスト ヘッダーに認証トークンを指定する必要があります。認証トークンにより YouTube はユーザーを識別できます。
http://gdata.youtube.com/feeds/api/users/default/favorites
別のユーザーのお気に入りの動画フィードを要求するには、次の URL に HTTP GET リクエストを送信します。このリクエストに認証は必要ありません。
http://gdata.youtube.com/feeds/api/users/username/favorites
上記の URL では、テキスト username をユーザーの YouTube ユーザー名で置き換える必要があります。
お気に入りフィードには、最大 50 件のエントリが返されます。start-index と max-results のクエリ パラメータを使用してフィードのページ番号を指定することで、レスポンスのサイズと待ち時間を最適化してください。max-results の推奨値は 10 です。この場合約 60 KB のデータを含むレスポンスが生成されます。
再生リストフィードには、最大 200 本の動画のコレクションに関する情報が含まれ、順に表示できます。ユーザーは自分のアカウント ページで自分の複数の再生リストの一覧を表示、編集できます。ユーザーの再生リストは、YouTube の他のユーザーにも公開されます。さらに、ユーザーは、個々の再生リストに対して動画の追加、削除、変更ができます。
再生リストは、公開することも非公開にすることもできます。API を使用して、認証のあるなしにかかわらず、公開再生リストを取得できます。ただし、ユーザーの非公開再生リストは、そのユーザーが正しく認証され、再生リストの表示を認可された場合のみ取得できます。
再生リスト フィードを取得する前に、ユーザーの再生リスト フィードを取得します。これには、そのユーザーが作成した再生リストの一覧が含まれています。ユーザーの再生リスト フィードでは、各エントリは 1 つの再生リストを表します。(一方、再生リスト フィードは 1 つの再生リストに含まれる個々の動画を表します。)ユーザーの再生リスト フィードの各エントリには、URL を示す <gd:feedLink> タグが含まれ、この URL からその再生リストのフィードを取得できます。
<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#playlist'
href='http://gdata.youtube.com/feeds/api/playlists/PLAYLIST_ID'/>
注意: 実際の URL には PLAYLIST_ID の部分に再生リストを一意に識別する ID が含まれます。
ユーザーの再生リスト フィードには、そのユーザーが作成した再生リストの一覧が含まれます。現在認証されているユーザーの再生リスト フィードを要求する場合、このフィードには公開と非公開の両方の再生リストが含まれます。認証されていないリクエストを送る場合や、現在認証されているユーザー以外のユーザーが作成した再生リストを要求する場合、そのフィードには公開再生リストしか含まれません。
ユーザーの再生リスト フィードの各 entry には、1 つの再生リストのタイトル、説明、投稿者などの情報が含まれます。エントリ内の <gd:feedLink> タグは、その再生リスト フィード (その再生リスト内の動画についての情報が含まれる) を取得できる URL を示します。
現在ログインしているユーザーの再生リスト フィードを要求するには、次の URL に HTTP GET リクエストを送信します。注意: このリクエストの場合、Authorization HTTP リクエスト ヘッダーに認証トークンを指定する必要があります。認証トークンにより YouTube はユーザーを識別できます。
http://gdata.youtube.com/feeds/api/users/default/playlists
別のユーザーの再生リスト フィードを要求するには、次の URL に HTTP GET リクエストを送信します。このリクエストに認証は必要ありません。
http://gdata.youtube.com/feeds/api/users/username/playlists
上記の URL では、テキスト username をユーザーの YouTube ユーザー名で置き換える必要があります。
ユーザーのチャンネル登録フィードには、ユーザーが登録したチャンネルのリスト、お気に入りの動画リスト、検索キーワードが含まれます。
現在ログインしているユーザーのチャンネル登録フィードを要求するには、次の URL に HTTP GET リクエストを送信します。注意: このリクエストの場合、Authorization HTTP リクエスト ヘッダーに認証トークンを指定する必要があります。認証トークンにより YouTube はユーザーを識別できます。
http://gdata.youtube.com/feeds/api/users/default/subscriptions
別のユーザーのチャンネル登録フィードを要求するには、次の URL に HTTP GET リクエストを送信します。このリクエストには認証は必要ありません。
http://gdata.youtube.com/feeds/api/users/username/subscriptions
上記の URL では、テキスト username をユーザーの YouTube ユーザー名で置き換える必要があります。
チャンネル登録フィードの各 entry には、個々のチャンネル登録についての情報が含まれます。各エントリに含まれる主なタグは次のとおりです。
エントリ内の <gd:feedLink> タグは、そのチャンネル登録の動画を取得できる URL を示します。
エントリ内の <category> タグには scheme 属性の値が http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat になるタグが 1 つあります。そのタグの term 属性は、エントリがチャンネルの登録 (term="channel")、別のユーザーのお気に入りの動画リスト (term="favorites")、特定のキーワードに一致する動画 (term="query") のどれかであることを示します。
別のユーザーのチャンネルまたはお気に入りの動画リストへのチャンネル登録の場合、そのチャンネルまたはお気に入りの動画リストを所有するユーザーを <yt:username> タグが示します。
検索キーワードのチャンネル登録の場合、登録されたキーワードは <yt:queryString> タグに含まれます。
各動画エントリには <gd:comments> タグが含まれます。動画のコメント リストを取得または追加する API リクエストの送信先の URL がこのタグに含まれます。下記の XML のサンプルは、この URL が動画フィードにどのように含まれるかを示します。
<feed>
<entry>
...
<media:group>
...
</media:group>
<gd:comments>
<gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments'/>
</gd:comments>
</entry>
</feed>
コメント フィードの各エントリには、個々のコメントの情報が含まれます。各コメントには、投稿者、タイトル、コンテンツがあります。
ユーザー プロフィールには、ユーザーが YouTube のプロフィール ページに記載している情報が含まれています。
現在ログインしているユーザーのプロフィールを要求するには、次の URL に HTTP GET リクエストを送信します。注意: このリクエストの場合、Authorization HTTP リクエスト ヘッダーに認証トークンを指定する必要があります。この認証トークンにより、YouTube はユーザーを識別できます。
http://gdata.youtube.com/feeds/api/users/default
別のユーザーのプロフィールを要求するには、次の URL に HTTP GET リクエストを送信します。このリクエストに認証は必要ありません。
http://gdata.youtube.com/feeds/api/users/username
上記の URL では、テキスト username をユーザーの YouTube ユーザー名で置き換える必要があります。扱っている YouTube API レスポンスのタイプによって、ユーザー名は <name> タグまたは <yt:username> タグに含まれます。
注意: API レスポンスの多くには、複数のエントリのレスポンス フィードやリストの情報が含まれますが、プロフィールを取得するリクエストには、1 つのエントリしか返されません。そのため、このリクエストの API レスポンスのルート タグは <entry> になります。
ユーザーのコンタクト フィードには、指定したユーザーのすべてのコンタクトのリストが含まれます。
現在ログインしているユーザーのコンタクト リストを要求するには、次の URL に HTTP GET リクエストを送信します。注意: このリクエストの場合、Authorization HTTP リクエスト ヘッダーに認証トークンを指定する必要があります。認証トークンにより YouTube はユーザーを識別できます。
http://gdata.youtube.com/feeds/api/users/default/contacts
別のユーザーのコンタクト リストを要求するには、次の URL に HTTP GET リクエストを送信します。このリクエストには認証は必要ありません。
http://gdata.youtube.com/feeds/api/users/username/contacts
上記の URL では、テキスト username をユーザーの YouTube ユーザー名で置き換える必要があります。
コンタクトは Friends か Family のどちらかに分類されます。
どのフィードやエントリでも、関連するフィードやエントリへのリンクが含まれる <link rel="relationshipID"> タグや <gd:feedLink rel="relationshipID"> 要素が使用されます。通常、<link> タグは関連するフィード間の関係 (ネスト以外) を識別します。一方 <gd:feedLink> タグは、全体のフィードが大きくなりすぎるためにネストされていない (そうでなければネストされていたかもしれない) フィードを示します。
これらのタグが示す URL を使用すると、アプリケーション内に URL をハードコーディングせずに API の機能を実装できます。たとえば、次の <link> 要素は動画エントリの中に含まれ、そのエントリの動画レスポンスを含むフィードへのリンクを提供します。
<link rel="http://gdata.youtube.com/schemas/2007#video.responses"
type="application/atom+xml"
href="http://gdata.youtube.com/feeds/api/videos/UwOA8H5Vaak/responses"/>
同様に、次の <gd:feedLink> 要素はユーザー プロフィール エントリに含まれます。このタグは、ユーザーのコンタクト フィードを取得する URL を示します。
<gd:feedLink
rel="http://gdata.youtube.com/schemas/2007#user.contacts"
href="http://gdata.youtube.com/feeds/api/users/liz/contacts"/>
デベロッパー ガイド: Data API プロトコルのユース ケースでは、異なるフィード間の移動方法を説明します。さらに下記の図は、YouTube Data API フィード間の相互接続を示します。実線の各矢印は <link> 要素を示し、点線の各矢印は <gd:feedLink> 要素を示します。青の各矢印は <link rel="related"> リンクを示します。チャンネル登録エントリには、そのエントリが示す登録のタイプに応じて、数種類のフィードのどれかを示す <gd:feedLink> タグが含まれる場合があります。
各円の最後の単語は、そのフィード内のエントリの Google Data の「タイプ」を示します。たとえば、チャンネル登録フィードには「subscription」タイプのエントリが含まれ、「videos」フィードには「video」タイプのエントリが含まれます。

このセクションでは、さまざまなタイプの API リクエストに YouTube が返す HTTP レスポンス コードについて説明します。
200 レスポンス コードは、フィードを取得する HTTP GET リクエストを YouTube が正常に処理したことを示します。
400 レスポンス コードは、正しくないリクエストを示します。たとえば誤った URL にリクエストを送信した場合や、リクエストの中にサポートされていないまたは存在しないパラメータを含めた場合に、400 レスポンス コードを受け取ります。API レスポンスのコンテンツには、API が 400 レスポンス コードを返した理由が含まれます。
ブラウザ ベースのアップロード
200 - 動画のメタデータを正常にアップロードすると、API から 200 レスポンス コードが返されます。この処理について、デベロッパー ガイドの動画メタデータのアップロードのセクションで詳しく説明しています。
301 - アプリケーションのサイトのフォームを通じてユーザーが実際の動画ファイルを直接 YouTube にアップロードする際、YouTube は 301 リダイレクトをユーザーのブラウザに送信します。このリダイレクトによって、ブラウザはアプリケーションのアップロード フォームの nexturl パラメータで指定された URL のページに移動します。 (アップロード フォームの詳しい説明をご覧ください)。YouTube では、その URL に下記の変数を付加するので、アプリケーションは、ユーザに適切な情報を提供するためにこれらの変数を取り出す必要があります。
直接アップロード
201 - 動画のアップロードが正常に終了すると、API は 201 レスポンス コードを返します。
400 (誤ったリクエスト) - 400 レスポンス コードは、リクエストの形式が誤っているか、無効な値が含まれていることを示します。たとえばリクエストに誤った形式の XML が含まれていた場合や、無効な文字を含むキーワードを登録しようとした場合、API は 400 レスポンス コードを返します。
リソース (評価、コメント、動画レスポンス、苦情、お気に入りの動画、再生リスト、再生リスト エントリ、チャンネル登録、コンタクトなど) を追加するリクエストに対して、API は次のレスポンス コードを返します。
201 (作成) - 201 レスポンス コードは評価、コメント、苦情、動画レスポンス、チャンネル登録、再生リスト、コンタクトのどれかを追加する HTTP POST リクエストが正常に処理されたことを示します。
400 (誤ったリクエスト) - 400 レスポンス コードは、リクエストの形式が誤っているか、無効な値が含まれていることを示します。たとえば、リクエストに誤った形式の XML が含まれていた場合や、動画の評価として「16」を登録しようとした場合 (評価は 1~5 であることが必要)、API は 400 レスポンス コードを返します。API レスポンスのコンテンツには、API が 400 レスポンス コードを返した理由が含まれます。
リソース (動画、再生リスト、再生リスト エントリ、コンタクトなど) を更新するリクエストに対して、API は下記のレスポンス コードを返します。
200 (OK) - 200 レスポンス コードはリソースを更新する HTTP PUT リクエストが正常に処理されたことを示します。
400 (誤ったリクエスト) - 400 レスポンス コードは、リクエストの形式が誤っているか、無効な値が含まれていることを示します。API レスポンスのコンテンツには、API が 400 レスポンス コードを返した理由が含まれます。
リソース (動画、動画レスポンス、お気に入りの動画、再生リスト、再生リスト エントリ、チャンネル登録、コンタクトなど) を削除するリクエストに対して、API は下記のレスポンス コードを返します。
200 (OK) - 200 レスポンス コードは、リソースを削除する HTTP DELETE リクエストを YouTube が正常に処理したことを示します。
401 (無許可) - 401 レスポンス コードは、リクエストに Authorization ヘッダーが含まれていないか、Authorization ヘッダーのフォーマットが無効か、ヘッダーに指定された認証トークンが無効であることを示します。
403 (禁止) - 403 レスポンス コードは、送信したリクエストが、要求している操作に対して正しく認証を受けていないことを示します。
404 (不明) - 404 レスポンス コードは、変更しようとしたリソースが存在しないことを示します。たとえば、チャンネル登録を削除しようとしてその登録の URL を誤って指定した場合に、404 レスポンス コードを受け取ります。
API が次のレスポンス コードを返す場合もあります。
401 (無許可) - 401 レスポンス コードは、リクエストに Authorization ヘッダーが含まれていないか、Authorization ヘッダーのフォーマットが無効か、ヘッダーに指定された認証トークンが無効であることを示します。
403 (禁止) - 403 レスポンス コードは、送信したリクエストが、要求している操作に対して正しく認証を受けていないことを示します。
500 (内部エラー) - 500 レスポンス コードは、リクエストの処理中に YouTube でエラーが発生したことを示します。後で要求し直すことができます。
501 (未実装) - 501 レスポンス コードは、サポートされていない操作 (評価のリストの取得、苦情の更新など) を試みたことを示します。
503 (利用できないサービス) - 503 レスポンス コードは、その YouTube Data API サービスが利用できないことを示します。後で要求し直すことができます。
動画を検索するには、次の URL にリクエストに合わせてクエリ パラメータを付加し、HTTP GET リクエストを送信します。
http://gdata.youtube.com/feeds/api/videos
たとえば次の URL へのリクエストでは、検索キーワード「football」に一致し、キーワード「soccer」には一致しない最近アップロードされた動画の 10 本ずつのセットの 2 番目のセットを検索します。
http://gdata.youtube.com/feeds/api/videos?
vq=football+-soccer
&orderby=published
&start-index=11
&max-results=10
YouTube Data API では、次の標準の Google Data クエリ パラメータをサポートしています。
| 名前 | 定義 |
|---|---|
| alt | alt パラメータは返されるフィードのフォーマットを指定します。このパラメータの有効な値は、atom、rss、json です。デフォルトの値は atom であり、このドキュメントでは、Atom のレスポンス フォーマットについてのみ説明します。 |
| author | author パラメータは特定の YouTube ユーザーがアップロードした動画に検索を限定します。特定のユーザーがアップロードした動画セクションで、このパラメータについて詳しく説明します。 |
| max-results | max-results パラメータは結果のセットに含まれる最大の件数を指定します。このパラメータは、返す結果を指定する start-index パラメータと連携します。たとえば10 件ずつの 2 番目のセット (11~20 番目の結果) を要求するには、max-results パラメータを 10 に設定し、start-index パラメータを 11 に設定します。すべての Google Data API で、このパラメータのデフォルト値は 25 で、最大値は 50 です。ただし動画のリストを表示する場合、max-results パラメータを 10 に設定するようにお勧めします。 |
| start-index | start-index パラメータは結果のセットに最初に含める、一致する結果のインデックスを指定します。このパラメータでは、1 をベースとしたインデックスを使用します。つまり最初の結果が 1 で、2 番目の結果が 2 となります。このパラメータは、返す結果を指定する max-results パラメータと連携します。たとえば 10 件ずつの 2 番目のセット (11~20 番目の結果) を要求するには、start-index パラメータを 11 に設定し、max-results パラメータを 10 に設定します。 |
標準の Google Data API の機能や上記の特定のパラメータについての詳細は、Google Data APIs Protocol Reference をご覧ください。
標準の Google Data クエリ パラメータに加えて、YouTube Data API では次の API 固有のクエリ パラメータを定義しています。これらのパラメータは、動画フィードと再生リスト フィードに対してのみ使用できます。
| 名前 | 定義 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| vq | vq パラメータは検索キーワードを指定します。YouTube では、動画のすべての動画メタデータについて、このキーワードに一致するものを検索します。動画メタデータには、タイトル、キーワード、説明、投稿者のユーザー名、カテゴリがあります。 パラメータの値の中に、空白、引用符などの区切り文字を含めるには、URL エスケープが必要です。 完全一致を検索するには、キーワードを引用符で囲みます。たとえば、「spy plane」に一致する動画を検索するには、vq パラメータを %22spy+plane%22 に設定します。 リクエストにはブール型演算子の NOT (-) と OR (|) を使用して、動画を除外することや、複数の検索キーワードのどれかに関連付けられた動画を検索することもできます。たとえば、「boating」か「sailing」のどちらかに一致する動画を検索するには、vq パラメータを boating%7Csailing に設定します(このパイプ (|) 文字は URL エスケープを行う必要があります)。同様に、「boating」か「sailing」のどちらかに一致し、「fishing」には一致しない動画を検索するには、vq パラメータを「boating&7Csailing+-fishing」に設定します。 |
||||||||
| orderby | orderby パラメータは検索結果のセットで動画を並び替えるのに使用する値を指定します。このパラメータの有効な値は、relevance、published、viewCount、rating です。さらに特定の言語に最も関係のある結果を要求するには、このパラメータの値を relevance_lang_languageCode に設定します。ここで languageCode は、ISO 639-1 の 2 文字の言語コードです。(簡体字中国語には値 zh-Hans を使用し、繁体字中国語には zh-Hant を使用します。)これを指定した場合でも、検索キーワードとの関連性が高い場合には、他の言語の結果も返されることに注意してください。 このパラメータのデフォルト値は、検索結果フィードの relevance です。再生リスト フィードの場合、デフォルトの順序は、再生リスト内での各動画の位置に基づきます。ユーザーの再生リスト フィードやチャンネル登録フィードの場合、デフォルトの順序は決まっていません。 |
||||||||
| format | format パラメータは、特定の動画フォーマットで利用可能な動画である必要があることを指定します。リクエストには、次のフォーマットのどれかを指定できます。
| ||||||||
| lr | lr パラメータは、特定の言語でのタイトル、説明、キーワードを持つ動画に検索を限定します。lr パラメータの有効な値は、ISO 639-1 の 2 文字の言語コードです。簡体字中国語に値 zh-Hans を使用し、繁体字中国語に zh-Hant を使用することもできます。このパラメータは、標準フィード以外の動画フィードを要求するのに使用できます。 | ||||||||
| racy | racy パラメータにより、制限付きコンテンツを標準のコンテンツと共に検索結果のセットに含めることができます。このパラメータの有効な値は、include と exclude です。デフォルトでは、制限付きコンテンツは除外されます (exclude です)。制限付きコンテンツが含まれる動画のフィード エントリには、<yt:racy> 要素が追加されます。 | ||||||||
| restriction | restriction パラメータは、特定の国でのみ再生が可能な動画をフィルタにかけるのに使用する IP アドレスを指定します。デフォルトでは、API リクエストを送信している国で再生できない動画が除外されます。この制限は、クライアント アプリケーションの IP アドレスに基づきます。 特定のコンピュータで再生可能な動画を要求するには、リクエストに restriction パラメータを含めて、パラメータの値をその動画を再生するコンピュータの IP アドレスに設定します (たとえば restriction=255.255.255.255)。特定の国で再生可能な動画を要求するには、リクエストに restriction パラメータを含めて、パラメータの値をその動画を再生する国の ISO 3166 の 2 文字の国コードに設定します (たとえば restriction=DE)。 |
||||||||
| time | time パラメータは、top_rated、top_favorites、most_viewed、most_discussed、most_linked、most_responded の標準フィードにのみ使用可能で、指定した期間内にアップロードされた動画に検索を限定します。このパラメータの有効な値は、today (1 日)、this_week (7 日)、this_month (1 か月)、all_time です。このパラメータのデフォルト値は all_time です。 |
YouTube の動画は次のように分類できます。
動画はそれぞれ、あらかじめ定義された YouTube カテゴリ (コメディー、音楽、ニュース、スポーツなど) のいずれかに関連付けることができます。動画のカテゴリは、<media:category> タグと、scheme 属性値が http://gdata.youtube.com/schemas/2007/categories.cat の <category> タグで識別されます。
動画はそれぞれ、任意の数のキーワード (タグとも呼ばれる) に関連付けることができます。動画のタグは、API のリクエストとレスポンスの中で <media:keywords> タグを使用して指定されます。キーワード タグは、scheme 属性値が http://gdata.youtube.com/schemas/2007/keywords.cat の <category> タグでも識別されます。
動画はそれぞれ、任意の数のデベロッパー タグに関連付けることができます。デベロッパー タグを使用して動画を検索できます。ただし、デベロッパー タグは YouTube のウェブサイト上には表示されないので、アプリケーションでも表示しないでください。動画のデベロッパー タグは、<media:category> タグと、scheme 属性値が http://gdata.youtube.com/schemas/2007/developertags.cat の <category> タグで識別されます。
デベロッパー タグの割り当てについて詳しくは、デベロッパー ガイド: Data API プロトコルをご覧ください。
特定のカテゴリ内の動画、または特定のキーワードかデベロッパー タグに関連付けられた動画を取得するには、次の URL を使用します。
http://gdata.youtube.com/feeds/api/videos/-/category_or_tag
URL 内のハイフン (-) は標準の Google Data API の表記法で、URL の残りの部分が 1 つ以上の一連のタグから構成されることを示します。特定のカテゴリやタグに関連付けられた動画を要求する際の、詳しいガイドラインは次のとおりです。
リクエストに、カテゴリと 1 つ以上のキーワードを指定する場合、またはカテゴリは指定せずに複数のキーワードを指定する場合、カテゴリやキーワード名はそれぞれスラッシュで区切ります。たとえばキーワード「bass」と「fishing」に関連する動画を要求するには、次の URL を使用します。
http://gdata.youtube.com/feeds/api/videos/-/bass/fishing
リクエストにはブール型演算子の NOT (-) と OR (|) を使用して、動画を除外することや、複数の検索キーワードとカテゴリのどれかに関連付けられた動画を検索することができます。たとえば、「bass」と「music」に関連する動画を表示する場合、最も効果的な検索として、下記の例に示すように、キーワード「bass」に関連付けられ、キーワード「fish」や「fishing」には関連付けられていない動画を検索することが考えられます。(「Music」のカテゴリとキーワード「bass」に関連付けられた動画を検索すると、ベース (bass) の演奏法についての教育的な動画は除外されてしまうかもしれません。)
http://gdata.youtube.com/feeds/api/videos/-/bass/-fish/-fishing
次の例では、「Sports」または「Howto」のどちらかのカテゴリにある野球 (baseball) の動画を検索する方法を示します。カテゴリ名は、値「%7C」で区切ります。これは URL エンコードのパイプ (|) 文字を表し、動画が 2 つのカテゴリのどちらかに関連付けられている必要があることを指定します。
http://gdata.youtube.com/feeds/api/videos/-/Sports%7CHowto/baseball
カテゴリ名は最初の文字を大文字にし、キーワード名は小文字にします。たとえば次のクエリでは、キーワード「comedy」に関連付けられていて「Comedy」カテゴリには含まれない動画を識別します。
http://gdata.youtube.com/feeds/api/videos/-/comedy/-Comedy
API レスポンス内の情報に基づいて、自動的にカテゴリやキーワードの検索を生成する場合、カテゴリ名の部分にスキーマを指定して、YouTube カテゴリをキーワード タグやデベロッパー タグと明確に区別します。次の URL では、カテゴリ名にスキーマを指定する方法を示します。
http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fcategories.cat%7DNews http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fkeywords.cat%7Ddog http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fdevelopertags.cat%7Dexample.com
特定のデベロッパー タグに関連付けられた動画を要求する場合は、前の項目で説明したように、常にスキーマを指定します。
YouTube Data API では、複数の XML スキーマのタグを使用します。次の表に、この API が使用するさまざまなスキーマ、各スキーマに対応する名前空間のプレフィックス、各スキーマの名前空間の URL を示します。
| スキーマ | 名前空間のプレフィックス | スキーマの URL |
|---|---|---|
| Atom シンジケーション フォーマット | [なし] - これはデフォルトの名前空間 | http://www.w3.org/2005/Atom |
| Open Search スキーマ | openSearch | http://a9.com/-/spec/opensearchrss/1.0/ |
| Media RSS | media | http://search.yahoo.com/mrss/ |
| YouTube XML スキーマ | yt | http://gdata.youtube.com/schemas/2007 |
| Google Data スキーマ | gd | http://schemas.google.com/g/2005 |
| GeoRSS | georss | http://www.georss.org/georss |
| Geography Markup Language | gml | http://www.opengis.net/gml |
| Atom Publishing Protocol | app | http://www.w3.org/2007/app |
下記のセクションでは、YouTube Data API のリクエストとレスポンスに使用される上記の各スキーマの XML タグを定義します。各セクションでは個々のタグを定義し、タグはスキーマごとにアルファベット順にリストアップされます。
下記の定義では、子タグの横に記号が表示されている場合があります。これらの記号は、それぞれ次のような意味があります。
<author> タグには、動画コンテンツ、チャンネル登録、お気に入りの動画リスト、コンタクトなどのエンティティのどれかを所有する YouTube ユーザーについての情報が含まれます。
<author>
<category> タグは、そのエントリが含まれるカテゴリを示します。
<category> タグは、<feed> または <entry> のサブタグとして使用されている場合、各フィード エントリに記載されている項目のタイプを識別できます。scheme 属性の値は http://schemas.google.com/g/2005#kind であり、term 属性の値は、フィード エントリに記載される項目が動画、再生リストのリンク、チャンネル登録、コンタクトなどのエンティティ タイプのどれを表すかを示します。
<category> タグが <entry> のサブタグとして使用され、そのエントリが動画を表している場合、このタグはその動画に関連付けられた特定のキーワードやカテゴリも指定できます。この場合、scheme 属性は、term 属性値がキーワードとカテゴリのどちらを指すかを示します。
チャンネル登録を追加するリクエストでは、<category> タグはユーザーがチャンネル、別のユーザーのお気に入りのリスト、キーワード タグのどれに登録するかを示します。
ユーザーがチャンネルに登録する場合、<category> タグの term 属性の値は channel でなければなりません。
ユーザーが別のユーザーのお気に入りのリストに登録する場合、<category> タグの term 属性の値は favorites でなければなりません。
ユーザーがキーワード タグに登録する場合、<category> タグの term 属性の値は query でなければなりません。
コンタクトの追加や更新のリクエストでは、
コンタクトが家族のメンバーの場合、<category> タグの term 属性の値は Family でなければなりません。
コンタクトが友だちの場合、<category> タグの term 属性の値は Friends でなければなりません。
| 名前 | フォーマット | 説明 |
|---|---|---|
| scheme | 複合 | scheme 属性は、label に対応する分類スキームを示す URI を指定します。
|
| term | 複合 | term 属性は、フィード エントリに含まれているエンティティのタイプか、動画に関連付けられているカテゴリまたはキーワードを示します。
|
| label | 複合 | label 属性は、動画が含まれる YouTube カテゴリのエンティティ エスケープされた名前を指定します。この属性は、カテゴリを参照する <category> タグにのみ含まれます (キーワードまたはエンティティ タイプを参照するタグには含まれません)。 |
<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' term='channel'/>
<content> タグには、コメントのテキストか、動画または再生リストの説明が含まれます。<content> タグが動画エントリまたは再生リストエントリに使用されている場合、<media:description> タグと同じ説明が含まれることがあります。
<content> タグは、コメントを追加するリクエストに必須です。
<content type="text">Video comments are cool.</content>
<entry> タグには、動画、再生リスト、チャンネル登録、コンタクトなどのエンティティについての情報が含まれます。<entry> タグは、データを追加 (POST) または更新 (PUT) するすべての YouTube Data API リクエストでルート タグになります。
<entry>
動画または再生リストのエントリ内: id、published、updated、category*、title?、content?、link*、author?、media:group?、yt:description? (このタグは再生リスト エントリにのみ表示されます)、yt:position? (このタグは再生リスト エントリにのみ表示されます)、yt:statistics?、gd:comments?、gd:rating?、location?、yt:recorded?、georss:where?、app:control?
コメント フィード内: id、published、updated、category*、title?、content?、link*、author?
再生リスト フィード内: id、published、updated、category*、title?、content?、link*、author?、yt:description?、gd:feedLink
チャンネル登録フィード内: id、published、updated、category*、title?、content?、link*、author?、yt:username?、yt:queryString?、gd:feedLink
プロフィール エントリ内: id、published、updated、category*、title?、content?、link*、author?、yt:age?、yt:books?、yt:company?、firstName?、yt:gender?、yt:hobbies?、lastName?、yt:location?、yt:movies?、yt:music?、yt:occupation?、yt:school?、yt:username?、yt:statistics?、media:thumbnail?、gd:feedLink*
お気に入りの動画の追加: id
再生リストの追加と更新: title、yt:description、yt:private
再生リスト エントリの追加と更新: title、yt:description、yt:position
チャンネル登録の追加: category、yt:username、yt:queryString
コンタクトの追加と更新: category、yt:username
コメントの追加: content
動画レスポンスの追加: id
評価の追加: gd:rating
動画の報告: yt:description
<feed> タグは、さまざまな種類の YouTube Data API フィード (動画フィード、チャンネル登録フィード、再生リスト フィード、お気に入りの動画フィード、コンタクト フィードなど) のルート タグです。フィードには一連の <entry> 要素が含まれます。各要素には個々の動画、再生リスト、チャンネル登録などのエンティティの情報が含まれます。
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:yt='http://gdata.youtube.com/schemas/2007' xmlns:gd='http://schemas.google.com/g/2005'>
id、updated、category*、title、logo?、link*、author?、generator、openSearch:itemsPerPage?、openSearch:startIndex?、openSearch:totalResults?、entry+
<generator> タグは、フィードの作成に使用されたソフトウェアを示します。この情報はデバッグのために使用されます。
| 名前 | フォーマット | 説明 |
|---|---|---|
| version | 複合 | version 属性は、フィードの生成に使用されたソフトウェア アプリケーションのバージョンを示します。 |
| uri | 複合 | uri 属性は、フィード生成ソフトウェアに関連付けられている URI を示します。 |
<generator version='beta' uri='http://gdata.youtube.com/'>YouTube data API</generator>
<id> タグは、フィードまたは動画のエントリを、一意かつ永続的に識別する URI を示します。
<id>http://gdata.youtube.com/feeds/api/users/andyland74/subscriptions/5c56f45db338111c</id>
<link> タグには、フィードまたはフィード エントリに関連する IRI リファレンスが含まれます。
| 名前 | フォーマット | 説明 |
|---|---|---|
| rel | 複合 | rel 属性は、href 属性に指定された URI が現在の結果セットにどのように関連付けられているかを示します。
|
| type | 複合 | type 属性は関連付けられた URL にあるリソースのメディアのタイプを示します。YouTube Data API レスポンス内のリンクは、通常 HTML ページまたは別の API レスポンス (Atom フィード) を指します。そのため、type 属性に最もよく指定される値は、text/html と application/atom+xml です。 |
| href | 複合 | href 属性は、<link> タグで指定されるリソースを識別する URI を示します。 |
<link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/AlPqL7IUT6M/related'/>
<logo> タグは、フィードを視覚的に識別する画像を指定します。YouTube Data API フィードのロゴは YouTube ロゴです。
<logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo>
<published> タグは、フィード エントリが作成された時刻を示します。
<published>2007-10-15T15:39:34.000-07:00</published>
<title> タグは、フィードやフィードのエントリのタイトルを人が読み取れる形式で示します。このタグは、再生リストの追加には必須で、再生リスト エントリの追加や更新の場合には省略可能です。
再生リストの追加や更新のリクエストでは、<title> タグは再生リストのタイトルを示します。
再生リスト エントリの追加や更新のリクエストでは、<title> タグはカスタム タイトルを示します。カスタム タイトルは、ユーザーが動画の実際のタイトルの代わりに表示するように指定するタイトルです。ユーザーがカスタム タイトルを指定しない場合、YouTube は再生リスト内の動画の実際のタイトルを表示します。
<title type='text'>andyland74's Subscriptions</title>
<updated> タグは、フィードやフィード エントリが最後に更新された時刻を示します。
<updated>2007-10-15T15:39:34.000-07:00</updated>
<uri> タグには author に関連付けられた URL が含まれます。
<uri>http://gdata.youtube.com/feeds/api/users/andyland74</uri>
<openSearch:itemsPerPage> タグは API レスポンスの中に含まれるエントリの数を示します。
<openSearch:itemsPerPage>25</openSearch:itemsPerPage>
<openSearch:startIndex> タグはフィードに返される最初の項目の 1 をベースにしたインデックスを示します。
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:totalResults> タグはフィードの結果セット内の項目の数を示します。この値はおおよその値で、正確な値を示しているとは限りません。この値をページ番号リンクの作成に使用しないでください。<link rel="next"> と <link rel="prev"> のタグを使用して、ページ番号リンクを表示するかどうかを判断してください。
<openSearch:totalResults>36</openSearch:totalResults>
<yt:age> タグは、ユーザーが YouTube のプロフィールに指定した生年月日から計算されたユーザーの年齢を示します。<yt:age> タグはユーザー プロフィール フィードに含まれます。
<yt:age>33</yt:age>
<yt:description> タグには、ユーザーが入力した再生リストの説明、ユーザーが入力した再生リストの動画のカスタム説明、または苦情のテキストが含まれます。
<yt:description>My new playlist description</yt:description>
<yt:duration> タグは動画の時間 (秒単位) を示します。
| 名前 | フォーマット | 説明 |
|---|---|---|
| seconds | 複合 | seconds 属性は動画の時間 (秒単位) を示します。 |
<yt:duration seconds='344'/>
<yt:hobbies> タグは、ユーザーが YouTube の公開プロフィールに入力した趣味を示します。
<yt:hobbies>Testing YouTube APIs</yt:hobbies>
<yt:hometown> タグは、ユーザーが YouTube の公開プロフィールに入力した出身地を示します。
<yt:hometown>Albany, GA</yt:hometown>
動画エントリでは、<yt:location> タグに動画を録画した場所についての説明のテキストが含まれます。ユーザー プロフィール エントリでは、<yt:location> タグはユーザーが YouTube の公開プロフィールに入力したユーザーの住所を示します。
<yt:location>US</yt:location>
<yt:movies> タグは、ユーザーが YouTube の公開プロフィールに入力したお気に入りの映画を示します。
<yt:movies>Aqua Teen Hungerforce</yt:movies>
<yt:music> タグは、ユーザーが YouTube の公開プロフィールに入力したお気に入りの音楽を示します。
<yt:music>Elliott Smith, the Kooks</yt:music>
<yt:noembed> タグは、動画を他のウェブサイトに埋め込むことができない可能性があることを示します。このタグは、動画のメタデータのアップロードまたは更新リクエストに含まれることがあります。デフォルトでは、非公開動画を除き、動画を他のサイトに埋め込むことができます。リクエストに <yt:noembed> タグや <yt:private> タグが含まれていなければ、動画を他のウェブサイトに埋め込むことができます。
<yt:noembed/>
<yt:occupation> タグは、ユーザーが YouTube の公開プロフィールに入力した職業を示します。
<yt:occupation>Technical writer</yt:occupation>
<yt:private> タグは、動画が非公開であること、つまり動画を YouTube のウェブサイト上に公開しないことを示します。非公開動画は、動画の所有者が自分で選択した個人以外見ることができません。このタグは、動画のメタデータのアップロードまたは更新リクエストに含まれることがあります。このタグには値を指定できません。このタグがあれば、動画は非公開です。このタグがなければ、動画はすべての YouTube ユーザーに公開されます。デフォルトでは、動画は YouTube で公開されます。このタグがなければ、動画はすべての YouTube ユーザーに公開されます。(デフォルトでは、動画はすべての YouTube ユーザーに公開されるので、動画を非公開にするには、その動画をアップロードしたり更新したりするすべてのリクエストに <yt:private> タグを含める必要があります。)
<yt:private/>
<yt:queryString> タグはチャンネル登録に関連付けられたキーワード (検索する文字列) を示します。
<yt:queryString>Dog skateboarding</yt:queryString>
<yt:racy> タグは、動画に制限付きのコンテンツが含まれるかどうかを示します。動画フィードを要求する際、API リクエストに racy パラメータが含まれると、フィードには制限付きコンテンツしか含まれません。
<yt:racy/>
<yt:relationship> タグは、ユーザーの YouTube の公開プロフィールに記載された情報による、ユーザーの関係を示します。
<yt:relationship>taken</yt:relationship>
<yt:school> タグは、ユーザーの YouTube の公開プロフィールに記載の情報による、ユーザーの出身校を示します。
<yt:school>University of North Carolina</yt:school>
<yt:state> タグには動画のステータスを説明する情報が含まれます。アップロードに失敗した動画や、アップロード処理後に拒否された動画の場合、reasonCode 属性とこのタグの値から、アップロードできなかった理由がわかります。
| 名前 | フォーマット | 説明 |
|---|---|---|
| name | 複合 | name 属性は、公開されていない動画のステータスを示します。このタグの有効な値は、processing、rejected、failed です。 |
| reasonCode | 複合 | reasonCode 属性は、動画がアップロードに失敗した理由やアップロード処理後に拒否された理由についての情報を提供します。name 属性の値が processing の場合は、<yt:state> タグに reasonCode 属性は含まれません。アップロードが拒否された、またはアップロードに失敗した場合に、可能性のある reasonCode の値は次のとおりです。
|
| helpUrl | 複合 | helpUrl パラメータには、YouTube ヘルプ センターのページへのリンクが含まれており、デベロッパーまたは動画の所有者がアップロードの失敗または拒否の理由を調べるのに役立ちます。 |
<yt:state name="rejected" reasonCode="tooLong" helpUrl="http://www.youtube.com/t/community_guidelines">Video is too long</yt:state>
<yt:statistics> タグは、動画またはユーザーに関する統計情報を提供します。viewCount 属性の値が 0 の場合は、動画エントリに <yt:statistics> タグは含まれません。
| 名前 | フォーマット | 説明 |
|---|---|---|
| viewCount | 複合 | viewCount 属性が動画エントリを指す場合、この属性は動画が再生された回数を示します。viewCount 属性がユーザー プロフィールを指す場合、この属性はユーザー プロフィールが表示された回数を示します。 |
| videoWatchCount | 複合 | videoWatchCount 属性は、あるユーザーが YouTube で見た動画の数を示します。videoWatchCount 属性は、ユーザー プロフィールのエントリに <yt:statistics> タグがある場合のみ指定されます。 |
| subscriberCount | 複合 | subscriberCount 属性は、あるユーザーの YouTube チャンネルに登録した YouTube ユーザーの人数を示します。subscriberCount 属性は、ユーザー プロフィールのエントリに <yt:statistics> タグがある場合のみ指定されます。 |
| lastWebAccess | 複合 | lastWebAccess 属性は、特定のユーザーが YouTube を利用した最後の時刻を示します。 |
| favoriteCount | 複合 | favoriteCount 属性は、ある動画をお気に入りの動画リストに追加した YouTube ユーザーの人数を示します。favoriteCount 属性は、動画のエントリに <yt:statistics> タグがある場合のみ指定されます。 |
<yt:statistics viewCount='9' videoWatchCount='24' subscriberCount='1' lastWebAccess='2008-02-29T13:09:48.000-08:00'/>
<yt:status> タグはコンタクトのステータスを示します。このタグは、現在認証されているユーザーのコンタクトを取得しているときにのみ含まれます。このタグの有効な値は次のとおりです。
<yt:status>accepted</yt:status>
<yt:username> タグは、YouTube ユーザー名を示します。チャンネル登録フィードや、チャンネル登録の追加のリクエストでは、<yt:username> タグは YouTube チャンネルかチャンネル登録されるお気に入りリストの所有者を示します。プロフィール エントリでは、<yt:username> タグは、プロフィールに対応するユーザーを示します。ユーザーのコンタクトのエントリでは、<yt:username> タグは、ログインしているユーザーのコンタクトの相手を示します。
<yt:username>andyland74</yt:username>
<media:category> タグは、動画のリソースを説明するジャンルまたはデベロッパー タグを示します。アップロードする動画のカテゴリ リストのセクションでは、動画に関連付ける YouTube 動画カテゴリについて説明しており、そのリスト内のカテゴリの 1 つに各動画を割り当てることができます。
さらにカテゴリ スキーム http://gdata.youtube.com/schemas/2007/developertags.cat を使用して、1 つ以上の非公開カテゴリまたはキーワードと各動画を関連付けることができます。デベロッパー タグについて詳しくは、プロトコル ドキュメントのデベロッパー タグの割り当てのセクションをご覧ください。
| 名前 | フォーマット | 説明 |
|---|---|---|
| label | 複合 | label 属性は、動画が含まれる YouTube カテゴリのエンティティ エスケープした名前を示します。 |
| scheme | 複合 | scheme 属性は、label に対応する分類スキームを示す URI を指定します。 |
<media:category label='Sports' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Sports</media:category>
<media:content> タグは、動画に関する URL とその他さまざまな種類の情報を示します。
| 名前 | フォーマット | 説明 |
|---|---|---|
| url | 複合 | url 属性は、メディア オブジェクトの URL を示します。 |
| type | 複合 | type 属性は、メディア オブジェクトの MIME タイプを示します。 |
| isDefault | 複合 | isDefault 属性は、対応する <media:content> タグがメディア グループのデフォルトのメディア リソースを指定するかどうかを示します。YouTube Data API レスポンスでのデフォルトのメディア リソースとは、その動画の埋め込み型プレーヤー (SWF) の URL のことです。 |
| expression | 複合 | expression 属性は、動画オブジェクトが動画のサンプルか、動画の完全版か、動画のライブ ストリームかを示します。この属性に対応する有効な値は、sample、full、nonstop (のみ) です。 |
| duration | 複合 | duration タグは動画の長さ (秒単位) を示します。 |
| yt:format | 複合 | yt:format 属性は、<media:content> 要素に記載される動画オブジェクトの動画フォーマットを示します。この属性の有効な値は次のとおりです。
|
<media:content url='http://www.youtube.com/v/8aYQ_wjmriQ' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='166' yt:format='5'/>
<media:description> タグには、動画の要約または説明が含まれます。このフィールドは、動画のメタデータをアップロードまたは更新するリクエストに必須です。説明は、キーワードのリストではなく、文章をベースにする必要があり、検索結果に表示されることがあります。説明は、最長 5,000 文字で、< と > 以外の有効な UTF -8 文字をすべて含めることができます。
| 名前 | フォーマット | 説明 |
|---|---|---|
| type | 複合 | type 属性は、このタグの値に指定されるテキストのタイプを示します。YouTube のコンテンツ フィードでは、プレーン テキスト (type=plain) 形式である必要があります。 |
<media:description type="plain">Granny takes crocheting to the extreme during a rodeo and while surfing.</media:description>
<media:group> タグには、動画リソースに関するメタデータが含まれます。
<media:group>
media:title, media:description, media:keywords, media:category, media:content, media:player, media:thumbnail, yt:duration?, yt:private?, yt:noembed?
<media:keywords> タグには、動画に関連付けられた語句をカンマで区切ったリストが含まれます。フィード内の各動画には、少なくとも 1 つのキーワードを指定する必要があります。このフィールドは最長 120 文字で、「<」 と 「<」 以外の有効な UTF -8 文字をすべて含めることができます。各キーワードの長さは、最長 25 文字です。
| 名前 | フォーマット | 説明 |
|---|---|---|
| scheme | テキスト | scheme 属性は、ラベルに対応する分類スキームを示す URI を指定します。
|
<media:keywords>rodeo, surfing, crochet</media:keywords>
<media:player> タグは、ウェブ ブラウザ内で使用できるメディア プレーヤーにより動画の全編が再生できる URL を示します。YouTube Data API レスポンスでは、<media:player> タグはその動画を再生する YouTube のウェブサイト上のページの URL を示します。
| 名前 | フォーマット | 説明 |
|---|---|---|
| url | 複合 | url 属性は、ブラウザ ウィンドウ内で動画プレーヤーを使用して動画を再生する URL を示します。 |
<media:player url='http://www.youtube.com/watch?v=8aYQ_wjmriQ'/>
<media:thumbnail> タグは、検索結果のリストに含まれる動画を表すのに使用する画像の場所を示します。動画フィードから、複数のサムネイル画像と、その画像の複数のサイズを参照できます。自分の UI に最適のサムネイルのサイズを選択できます。
| 名前 | フォーマット | 説明 |
|---|---|---|
| url | 複合 | url 属性は、サムネイル画像の URL を示します。 |
| height | 複合 | height 属性は、サムネイル画像の高さを示します。 |
| width | 複合 | width 属性は、サムネイル画像の幅を示します。 |
| time | 複合 | time 属性は、サムネイル画像に表示するフレームが、動画のどの位置にあるかをタイム オフセットとして示します。この属性値は、RTSP で使用されているように、DSM-CC の Normal Play Time (NTP) で表されます。 |
<media:thumbnail url='http://img.youtube.com/vi/8aYQ_wjmriQ/2.jpg' height='97' width='130' time='00:01:23'/>
<media:title> タグは動画のタイトルを示します。このフィールドは、最長 60 文字で、< と > 以外の有効な UTF -8 文字をすべて含めることができます。
| 名前 | フォーマット | 説明 |
|---|---|---|
| type | 複合 | type 属性は、このタグの値に指定されるテキストのタイプを示します。YouTube のコンテンツ フィードでは、プレーン テキスト (type=plain) 形式である必要があります。 |
<media:title type="plain">Extreme crocheting in high surf, rodeo</media:title>
<gd:feedLink> タグは、論理的にネストされたフィードを示します。たとえば、コメント フィードは動画エントリの下で論理的にネストされます。同様に単一の再生リストのフィードは、ユーザーの再生リスト フィードの中の再生リスト エントリ内で論理的にネストされます。
| 名前 | フォーマット | 説明 |
|---|---|---|
| rel | 複合 | rel 属性は、href 属性に指定された URI が現在の結果セットにどのように関連付けられているかを示します。
|
| href | 複合 | href 属性は、<link> タグで指定されるリソースを識別する URI を示します。 |
| gd:countHint | 複合 | gd:countHint は、関連するフィードのエントリの数を示します。たとえば <gd:feedLink> タグが動画のコメント フィードへのリンクを示す場合、gd:countHint 属性はその動画に対して存在するコメントの数を示します。 |
<gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/8aYQ_wjmxiQ/comments' countHint='0'/>
<gd:rating> タグは、動画に割り当てる評価 (評価を追加するリクエストの場合) か、YouTube ユーザーの総合評価に基づく動画の現在の平均評価を示します。
| 名前 | フォーマット | 説明 |
|---|---|---|
| min | 複合 | min 属性は、動画に割り当て可能な最低の評価を示します。この値は 1 でなければなりません。 |
| max | 複合 | max 属性は、動画に割り当て可能な最高の評価を示します。この値は 5 でなければなりません。 |
| numRaters | 複合 | numRaters 属性は、動画を評価したユーザーの人数を示します。この属性は、評価を追加するリクエストでは使用されません。 |
| average | 複合 | average 属性は、動画の平均の評価を示します。この属性は、評価を追加するリクエストでは使用されません。 |
<gd:rating min='1' max='5' numRaters='7773' average='4.75'/>
<georss:where> タグには、地理的位置に関する情報が含まれます。動画に関連付けられた地理的位置が既にある場合、動画情報を更新するその後のリクエストには、その位置情報を含める必要があります。含めない場合、その地理的位置は削除されます。
<georss:where>
<gml:Point> タグには、特定の地理的位置の情報が含まれます。デフォルトのポイント投影には、WGS84 を使用します。動画のメタデータをアップロードまたは更新するリクエストに、動画を録画した地理的位置を指定できます。動画に関連付けられた地理的位置が既にある場合、動画情報を更新するその後のリクエストには、その位置情報を含める必要があります。含めない場合、その地理的位置は削除されます。
<gml:Point>
<gml:pos> タグは、地理的ポイントの座標を示します。デフォルトのポイントの投影には、WGS84 を使用します。動画に関連付けられた地理的位置が既にある場合、動画情報を更新するその後のリクエストには、その位置情報を含める必要があります。含めない場合、その地理的位置は削除されます。
<gml:pos>47.367 8.55</gml:pos>
<app:draft> タグは、動画が作成中で公開されていない状態であることを示します。このタグは、公開されていない動画にのみ含まれるので、値は常に yes です。
<app:draft>yes</app:draft>
<response> タグには、ブラウザ ベースのアップロードを使用して動画のメタデータをアップロードする場合に、その API リクエストに対する YouTube からの API レスポンスが含まれます。
<response>
<token> タグは、ブラウザ ベースのアップロードを使用して新しい動画のメタデータをアップロードする API リクエストに対して YouTube が返す API レスポンスの中に含まれます。ユーザーが YouTube 上にその新しい動画を直接アップロードできるようにするページに、このトークンを含める必要があります。
<token>AEwbFAQEvf3xox...</token>
<url> タグは、ブラウザ ベースのアップロードを使用して新しい動画のメタデータをアップロードする API リクエストに対して YouTube が返す API レスポンスの中に含まれます。ユーザーが YouTube 上に実際の動画ファイルをアップロードできるようにするウェブページ上のフォームは、この URL に送信されます。
<url>http://uploads.gdata.youtube.com/action/FormUpload/AEF3087AUD</url>
<code> タグは API リクエストが失敗した理由を説明します。下記に、<code> タグに指定される値を、対応する <domain> タグの値ごとに順に説明します。
yt:validation:
<code>required</code>
<domain> タグは、API リクエストの失敗の原因となったエラーを示します。<domain> タグに指定される値は次のとおりです。
yt:validation エラーは、エントリを挿入または更新するリクエストの中の XML 要素の値に関する問題を報告します。動画やその他のデータを挿入または更新する API 関数は、yt:validation エラーを報告することがあります。validation エラーは通常、HTTP 400 レスポンス コードと共に報告されます。
yt:quota エラーは、正常ではない API の使用法に関する問題を示します。
yt:authentication エラーは、ユーザー認証が必要な API 関数を実行するリクエストが正しく認証されていない場合の問題を示します。authenticaiton エラーは、HTTP の 401 または 403 のレスポンス コードと共に指定されます。
<domain>yt:validation</domain>
<location> タグは、失敗したリクエスト内の要素の情報を示します。
<domain> タグの値が yt:validation の場合、<location> タグはエラーの位置を、リクエストが失敗した原因である XML タグを指す Xpath として指定します。Xpath 位置は、リクエスト内の <entry> タグへの相対的な位置を指定します。
<domain> タグの値が yt:quota で、<code> タグの値が too_many_recent_calls の場合、API レスポンスに <location> タグは含まれません。
<domain> タグの値が yt:quota で、<code> タグの値が too_many_entries の場合、<location> タグはエラーの原因となったフィードを特定します。
<domain> タグの値が yt:authentication で、<location> タグがある場合、このタグは認証エラーの原因を特定します。
| 名前 | フォーマット | 説明 |
|---|---|---|
| type | 複合 | type 属性は、<location> タグの値のコンテキストを示します。type 属性に指定される値は、次のどれかです。
|
<location type='xpath'>media:group/media:title/text()</location>
YouTube カテゴリ ドキュメント ( http://gdata.youtube.com/schemas/2007/categories.cat からダウンロード可能) では、動画のコンテンツの分類に使用できるカテゴリが指定されています。このカテゴリ ドキュメントは XML ファイルで、カテゴリを指定し、新しい動画を各カテゴリに割り当てられるかどうかと、各カテゴリを YouTube で閲覧できるかどうかを示します。
下記の抜粋では、2008 年 1 月 2 日現在の YouTube カテゴリ ドキュメントに含まれる「Entertainment」と「Nonprofit & Activism」のカテゴリのエントリを示します。どちらのカテゴリにも動画を割り当てることができますが、その時点で閲覧できるのは Entertainment カテゴリのみです。例に示すように、<yt:browsable> タグが存在することは、対応するカテゴリが YouTube で閲覧できることを示し、<yt:assignable> タグが存在することは、そのカテゴリに新しい動画を割り当てられることを示します。(<yt:assignable> タグを使用した割り当て可能のマークの付いていないカテゴリには、新しい動画を割り当てられません。)
<atom:category term='Entertainment' label='Entertainment'> <yt:browsable/> <yt:assignable/> </atom:category> <atom:category term='Nonprofit' label='Nonprofit & Activism'> <yt:assignable/> </atom:category>
アップロード API リクエストでは、<media:category> タグの値を、対応するカテゴリの <atom:category> タグの term 属性の値に設定する必要があります。次の例では、<media:category> タグを使用して、上記のスキーマの抜粋に含まれる Nonprofit & Activism カテゴリに新しい動画を割り当てる方法を示します。
<media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Nonprofit</media:category>
HTTP 検索リクエストを作成するには、Google で HTTP リクエストが正しく解釈され、適切なレスポンスが生成されるように、特定の表記法に従う必要があります。
HTTP URL スキーマでは、HTTP URL リクエストに次の文字のみを含めるように規定しています。
Google では、URL のデコードに予約文字を使用し、検索機能のリクエストに特殊文字の一部を使用します。したがって、検索パラメータの値に含まれる英数字以外の文字はすべて URL エスケープを行う必要があります。
文字列の URL エスケープを行うには、一連の空白文字を 1 つの「+」(プラス記号) に変換し、その他の英数字以外の文字はその文字の値を表す 16 進エンコードに置き換えます。上記の特殊文字や予約文字の 16 進エンコードを、次の表に示します。上記の各文字に対して、リクエスト パラメータの値の中では、URL エスケープを行う必要があります。
| 文字 | 16 進エンコード |
|---|---|
| $ | %24 |
| - | %2D |
| _ | %5F |
| . | %2E |
| + | %2B |
| ! | %21 |
| * | %2A |
| " | %22 |
| ' | %27 |
| ( | %28 |
| ) | %29 |
| ; | %3B |
| / | %2F |
| ? | %3F |
| : | %3A |
| @ | %40 |
| = | %3D |
| & | %26 |
| | | %7C |
Examples
| オリジナルの文字列 | エスケープを行った文字列 |
|---|---|
| punch&judy | punch%26judy |
| O'Reilly | O%27Reilly |