リファレンス ガイド: Data API プロトコル

目次

概要

このドキュメントは、YouTube とやり取りするクライアント アプリケーションを作成するプログラマを対象としています。このドキュメントでは、デベロッパー ガイド: Data API プロトコルの内容と JavaPHP のデベロッパー用の言語固有のガイドの内容を補足します。

このドキュメントでは、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 このプロジェクションでは YouTubeMedia RSS のスキーマ内の関連するすべてのタグを含めて、このドキュメントで定義されるすべての XML 要素をサポートするフィードが生成されます。どのプロパティにも、HTML ではなくプレーン テキストが含まれます。
base このプロジェクションでは、拡張要素を含まない基本的な Atom フィードが生成されます。<atom:summary> プロパティと <atom:content> プロパティには、エンティティ エンコード HTML が含まれます。
mobile このプロジェクションでは、このドキュメントで定義された XML 要素のほとんどがサポートされます。携帯端末用アプリケーションを作成するデベロッパーがこのプロジェクションを使用します。

フィードのタイプ

YouTube Data API からは次のタイプのフィードを取得できます。

この API では、認証せずに上記のフィードを取得できます。ただし場合によって、認証済みのリクエストにより追加の情報が取得できます。たとえば、ユーザーごとのアップロードされた動画のリストに対して認証済みのリクエストを送信すると、フィードには非公開動画や拒否された動画、保留中の動画が含まれます。認証されていない API リクエストや、現在認証されているユーザー以外のユーザーがアップロードした動画のリクエストへのレスポンスには、非公開動画や、拒否されたまたは保留中の動画は含まれません。

動画、再生リスト、チャンネル登録、評価、コメントなどのエンティティを追加、更新するには、GET リクエストを含むすべてのリクエストで、デベロッパー キーと、AuthSub 認証か ClientLogin 認証を使用した認証が必要です。

動画フィード

動画フィードは、動画エントリのコレクションを返します。各動画エントリには、動画フィードの結果セットに含まれる個々の動画の情報が含まれます。YouTube Data API を使用すると、次のタイプの動画フィードを取得できます。

Videos feed

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

Related videos feed

関連動画フィードには、ある動画に関連付けられた動画のリストが含まれます。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 本の動画が含まれます。

Video responses feed

動画レスポンス フィードには、別の動画へのレスポンスとして明示的に指定された動画が含まれます。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"/>

Standard feeds

標準フィードには、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 パラメータの使用

すべての標準フィードで time クエリ パラメータがサポートされており、前日、先週、または先月の関連する結果のみを含めるようにフィードを限定できます。たとえば前日の評価の高い動画を取得するには、次の URL に HTTP GET リクエストを送信します。

http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today

User's favorites feed

お気に入りの動画フィードには、特定のユーザーがお気に入りの動画として明示した動画のリストが取得されます。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-indexmax-results のクエリ パラメータを使用してフィードのページ番号を指定することで、レスポンスのサイズと待ち時間を最適化してください。max-results の推奨値は 10 です。この場合約 60 KB のデータを含むレスポンスが生成されます。

Playlist feed

再生リストフィードには、最大 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 ユーザー名で置き換える必要があります。

コンタクトは FriendsFamily のどちらかに分類されます。

フィード間の移動

どのフィードやエントリでも、関連するフィードやエントリへのリンクが含まれる <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」タイプのエントリが含まれます。

フィードの相互接続図

YouTube Data API リクエストに対する HTTP レスポンス コード

このセクションでは、さまざまなタイプの API リクエストに YouTube が返す HTTP レスポンス コードについて説明します。

フィードの取得

  • 200 レスポンス コードは、フィードを取得する HTTP GET リクエストを YouTube が正常に処理したことを示します。

  • 400 レスポンス コードは、正しくないリクエストを示します。たとえば誤った URL にリクエストを送信した場合や、リクエストの中にサポートされていないまたは存在しないパラメータを含めた場合に、400 レスポンス コードを受け取ります。API レスポンスのコンテンツには、API が 400 レスポンス コードを返した理由が含まれます。

動画のアップロード

  • ブラウザ ベースのアップロード

    • 200 - 動画のメタデータを正常にアップロードすると、API から 200 レスポンス コードが返されます。この処理について、デベロッパー ガイドの動画メタデータのアップロードのセクションで詳しく説明しています。

    • 301 - アプリケーションのサイトのフォームを通じてユーザーが実際の動画ファイルを直接 YouTube にアップロードする際、YouTube は 301 リダイレクトをユーザーのブラウザに送信します。このリダイレクトによって、ブラウザはアプリケーションのアップロード フォームの nexturl パラメータで指定された URL のページに移動します。 (アップロード フォームの詳しい説明をご覧ください)。YouTube では、その URL に下記の変数を付加するので、アプリケーションは、ユーザに適切な情報を提供するためにこれらの変数を取り出す必要があります。

      • id - このリクエスト パラメータは新しく作成された動画の動画 ID を示します。
      • status - このリクエスト パラメータは、ユーザーの動画が正常にアップロードされたかを示します。動画が正常にアップロードされると、値は 200 になります。アップロードが正常に終了しなかった場合の値は、4xx か 5xx (400、403、503 など) になります。
      • code - このリクエスト パラメータはアップロードが失敗した理由の詳細を指定します。このパラメータに含まれる可能性のある値は、「INVALID_TOKEN」、「MISSING_TOKEN」、「DUPLICATE」、「TOKEN_EXPIRED」、「FILE_MISSING」です。

  • 直接アップロード

    • 201 - 動画のアップロードが正常に終了すると、API は 201 レスポンス コードを返します。

    • 400 (誤ったリクエスト) - 400 レスポンス コードは、リクエストの形式が誤っているか、無効な値が含まれていることを示します。たとえばリクエストに誤った形式の XML が含まれていた場合や、無効な文字を含むキーワードを登録しようとした場合、API は 400 レスポンス コードを返します。

HTTP POST による情報の追加

リソース (評価、コメント、動画レスポンス、苦情、お気に入りの動画、再生リスト、再生リスト エントリ、チャンネル登録、コンタクトなど) を追加するリクエストに対して、API は次のレスポンス コードを返します。

  • 201 (作成) - 201 レスポンス コードは評価、コメント、苦情、動画レスポンス、チャンネル登録、再生リスト、コンタクトのどれかを追加する HTTP POST リクエストが正常に処理されたことを示します。

  • 400 (誤ったリクエスト) - 400 レスポンス コードは、リクエストの形式が誤っているか、無効な値が含まれていることを示します。たとえば、リクエストに誤った形式の XML が含まれていた場合や、動画の評価として「16」を登録しようとした場合 (評価は 1~5 であることが必要)、API は 400 レスポンス コードを返します。API レスポンスのコンテンツには、API が 400 レスポンス コードを返した理由が含まれます。

HTTP PUT による情報の更新

リソース (動画、再生リスト、再生リスト エントリ、コンタクトなど) を更新するリクエストに対して、API は下記のレスポンス コードを返します。

  • 200 (OK) - 200 レスポンス コードはリソースを更新する HTTP PUT リクエストが正常に処理されたことを示します。

  • 400 (誤ったリクエスト) - 400 レスポンス コードは、リクエストの形式が誤っているか、無効な値が含まれていることを示します。API レスポンスのコンテンツには、API が 400 レスポンス コードを返した理由が含まれます。

HTTP DELETE によるリソースの削除

リソース (動画、動画レスポンス、お気に入りの動画、再生リスト、再生リスト エントリ、チャンネル登録、コンタクトなど) を削除するリクエストに対して、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

クエリ パラメータの定義

Standard Google Data API parameters

YouTube Data API では、次の標準の Google Data クエリ パラメータをサポートしています。

名前 定義
alt alt パラメータは返されるフィードのフォーマットを指定します。このパラメータの有効な値は、atomrssjson です。デフォルトの値は 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 をご覧ください。

Custom parameters for the YouTube Data API

標準の 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 パラメータは検索結果のセットで動画を並び替えるのに使用する値を指定します。このパラメータの有効な値は、relevancepublishedviewCountrating です。さらに特定の言語に最も関係のある結果を要求するには、このパラメータの値を relevance_lang_languageCode に設定します。ここで languageCode は、ISO 639-1 の 2 文字の言語コードです。(簡体字中国語には値 zh-Hans を使用し、繁体字中国語には zh-Hant を使用します。)これを指定した場合でも、検索キーワードとの関連性が高い場合には、他の言語の結果も返されることに注意してください。

このパラメータのデフォルト値は、検索結果フィードの relevance です。再生リスト フィードの場合、デフォルトの順序は、再生リスト内での各動画の位置に基づきます。ユーザーの再生リスト フィードチャンネル登録フィードの場合、デフォルトの順序は決まっていません。
format format パラメータは、特定の動画フォーマットで利用可能な動画である必要があることを指定します。リクエストには、次のフォーマットのどれかを指定できます。

動画フォーマット
1 モバイル向け動画の再生用の RTSP ストリーミング URL です。H.263 動画 (最大 176 x 144) と AMR 音声です。
5 この動画用の埋め込み型プレーヤー (SWF) への HTTP URL です。このフォーマットは、埋め込み可能ではない動画には利用できません。デベロッパーは通常クエリに &format=5 を追加して、自分のサイトに埋め込み可能な動画に結果を限定します。
6 モバイル向け動画の再生用の RTSP ストリーミング URL です。MPEG-4 SP 動画 (最大 176 x 144) と AAC 音声です。
lr lr パラメータは、特定の言語でのタイトル、説明、キーワードを持つ動画に検索を限定します。lr パラメータの有効な値は、ISO 639-1 の 2 文字の言語コードです。簡体字中国語に値 zh-Hans を使用し、繁体字中国語に zh-Hant を使用することもできます。このパラメータは、標準フィード以外の動画フィードを要求するのに使用できます。
racy racy パラメータにより、制限付きコンテンツを標準のコンテンツと共に検索結果のセットに含めることができます。このパラメータの有効な値は、includeexclude です。デフォルトでは、制限付きコンテンツは除外されます (exclude です)。制限付きコンテンツが含まれる動画のフィード エントリには、<yt:racy> 要素が追加されます。
restriction restriction パラメータは、特定の国でのみ再生が可能な動画をフィルタにかけるのに使用する IP アドレスを指定します。デフォルトでは、API リクエストを送信している国で再生できない動画が除外されます。この制限は、クライアント アプリケーションの IP アドレスに基づきます。

特定のコンピュータで再生可能な動画を要求するには、リクエストに restriction パラメータを含めて、パラメータの値をその動画を再生するコンピュータの IP アドレスに設定します (たとえば restriction=255.255.255.255)。

特定の国で再生可能な動画を要求するには、リクエストに restriction パラメータを含めて、パラメータの値をその動画を再生する国の ISO 3166 の 2 文字の国コードに設定します (たとえば restriction=DE)。
time time パラメータは、top_ratedtop_favoritesmost_viewedmost_discussedmost_linkedmost_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
    
  • 特定のデベロッパー タグに関連付けられた動画を要求する場合は、前の項目で説明したように、常にスキーマを指定します。

XML 要素の定義

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 タグを定義します。各セクションでは個々のタグを定義し、タグはスキーマごとにアルファベット順にリストアップされます。

下記の定義では、子タグの横に記号が表示されている場合があります。これらの記号は、それぞれ次のような意味があります。

? = オプションの子タグ
* = 0 個以上の子タグのインスタンス
+ = 1 個以上の子タグのインスタンス

Atom 要素 リファレンス

author

<author> タグには、動画コンテンツ、チャンネル登録、お気に入りの動画リスト、コンタクトなどのエンティティのどれかを所有する YouTube ユーザーについての情報が含まれます。

<author>

feedentry

nameuri

category

<category> タグは、そのエントリが含まれるカテゴリを示します。

  • <category> タグは、<feed> または <entry> のサブタグとして使用されている場合、各フィード エントリに記載されている項目のタイプを識別できます。scheme 属性の値は http://schemas.google.com/g/2005#kind であり、term 属性の値は、フィード エントリに記載される項目が動画、再生リストのリンク、チャンネル登録、コンタクトなどのエンティティ タイプのどれを表すかを示します。

  • <category> タグが <entry> のサブタグとして使用され、そのエントリが動画を表している場合、このタグはその動画に関連付けられた特定のキーワードやカテゴリも指定できます。この場合、scheme 属性は、term 属性値がキーワードとカテゴリのどちらを指すかを示します。



<category> タグは、チャンネル登録の追加のリクエストや、コンタクトの追加や更新のリクエストに必要です。

  • チャンネル登録を追加するリクエストでは、<category> タグはユーザーがチャンネル、別のユーザーのお気に入りのリスト、キーワード タグのどれに登録するかを示します。

    • ユーザーがチャンネルに登録する場合、<category> タグの term 属性の値は channel でなければなりません。

    • ユーザーが別のユーザーのお気に入りのリストに登録する場合、<category> タグの term 属性の値は favorites でなければなりません。

    • ユーザーがキーワード タグに登録する場合、<category> タグの term 属性の値は query でなければなりません。

  • コンタクトの追加や更新のリクエストでは、 <category> タグはコンタクトが友だちか家族かを示します。

    • コンタクトが家族のメンバーの場合、<category> タグの term 属性の値は Family でなければなりません。

    • コンタクトが友だちの場合、<category> タグの term 属性の値は Friends でなければなりません。

属性

名前フォーマット説明
scheme 複合 scheme 属性は、label に対応する分類スキームを示す URI を指定します。

  • チャンネル登録を追加するリクエストでは、scheme 属性の値は http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat でなければなりません。
  • コンタクトを追加するリクエストでは、scheme 属性の値は http://gdata.youtube.com/schemas/2007/contact.cat でなければなりません。
term 複合 term 属性は、フィード エントリに含まれているエンティティのタイプか、動画に関連付けられているカテゴリまたはキーワードを示します。

  • チャンネル登録を追加するリクエストでは、term 属性の値は channelfavoritesquery のいずれかです。
  • コンタクトを追加するリクエストでは、term 属性の値は Family または Friends です。
label 複合 label 属性は、動画が含まれる YouTube カテゴリのエンティティ エスケープされた名前を指定します。この属性は、カテゴリを参照する <category> タグにのみ含まれます (キーワードまたはエンティティ タイプを参照するタグには含まれません)。

<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' term='channel'/>

feedentry

content

<content> タグには、コメントのテキストか、動画または再生リストの説明が含まれます。<content> タグが動画エントリまたは再生リストエントリに使用されている場合、<media:description> タグと同じ説明が含まれることがあります。

<content> タグは、コメントを追加するリクエストに必須です。

<content type="text">Video comments are cool.</content>

entry

entry

<entry> タグには、動画、再生リスト、チャンネル登録、コンタクトなどのエンティティについての情報が含まれます。<entry> タグは、データを追加 (POST) または更新 (PUT) するすべての YouTube Data API リクエストでルート タグになります。

<entry>

feed

動画または再生リストのエントリ内: idpublishedupdatedcategory*、title?、content?、link*、author?、media:group?、yt:description? (このタグは再生リスト エントリにのみ表示されます)、yt:position? (このタグは再生リスト エントリにのみ表示されます)、yt:statistics?、gd:comments?、gd:rating?、location?、yt:recorded?、georss:where?、app:control?

コメント フィード内: idpublishedupdatedcategory*、title?、content?、link*、author?

再生リスト フィード内: idpublishedupdatedcategory*、title?、content?、link*、author?、yt:description?、gd:feedLink

チャンネル登録フィード内: idpublishedupdatedcategory*、title?、content?、link*、author?、yt:username?、yt:queryString?、gd:feedLink

プロフィール エントリ内: idpublishedupdatedcategory*、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

再生リストの追加と更新: titleyt:descriptionyt:private

再生リスト エントリの追加と更新: titleyt:descriptionyt:position

チャンネル登録の追加: categoryyt:usernameyt:queryString

コンタクトの追加と更新: categoryyt:username

コメントの追加: content

動画レスポンスの追加: id

評価の追加: gd:rating

動画の報告: yt:description

feed

<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'>

idupdatedcategory*、titlelogo?、link*、author?、generatoropenSearch:itemsPerPage?、openSearch:startIndex?、openSearch:totalResults?、entry+

generator

<generator> タグは、フィードの作成に使用されたソフトウェアを示します。この情報はデバッグのために使用されます。

属性

名前フォーマット説明
version 複合 version 属性は、フィードの生成に使用されたソフトウェア アプリケーションのバージョンを示します。
uri 複合 uri 属性は、フィード生成ソフトウェアに関連付けられている URI を示します。

<generator version='beta' uri='http://gdata.youtube.com/'>YouTube data API</generator>

feed

id

<id> タグは、フィードまたは動画のエントリを、一意かつ永続的に識別する URI を示します。

<id>http://gdata.youtube.com/feeds/api/users/andyland74/subscriptions/5c56f45db338111c</id>

feedentry

link

<link> タグには、フィードまたはフィード エントリに関連する IRI リファレンスが含まれます。

属性

名前フォーマット説明
rel 複合 rel 属性は、href 属性に指定された URI が現在の結果セットにどのように関連付けられているかを示します。

  • rel 属性値が self の場合、このリンクは、フィードまたはフィード内の特定のエントリに関する情報を取得するために使用する URL を示します。

  • rel 属性値が edit の場合、このリンクは、フィード エントリの変更に使用する URL (edit URL) を示します。

  • rel 属性値が alternate の場合、このリンクは、フィードの異なる表現を表す URL (フィード エントリの HTML 表現へのリンクなど) を示します。

  • rel 属性値が prev の場合、このリンクは、フィードの結果セットの 1 つ前のページを指します。

  • rel 属性値が next の場合、このリンクは、フィードの結果セットの次のページを指します。

  • rel 属性値が related の場合、このリンクは、現在のフィードに関連付けられている別のフィードを示します。たとえば、フィードにコンタクト エントリのリストが含まれている場合、コンタクトの related リンクはそのコンタクトのプロフィールのフィードを指します。

  • rel 属性には、対応するリンクに関連付けられているエンティティのタイプを識別するスキーマへのリンクが含まれることもあります。たとえば、動画エントリには、その動画のレスポンス、評価、苦情、関連動画を指す <link> タグが含まれます。これらの <link> タグには、関連動画や動画レスポンスなど、追加のフィードを取得するのに使用できるタグや、評価や苦情などのデータの投稿に使用できるタグがあります。

type 複合 type 属性は関連付けられた URL にあるリソースのメディアのタイプを示します。YouTube Data API レスポンス内のリンクは、通常 HTML ページまたは別の API レスポンス (Atom フィード) を指します。そのため、type 属性に最もよく指定される値は、text/htmlapplication/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'/>

feedentry

logo

<logo> タグは、フィードを視覚的に識別する画像を指定します。YouTube Data API フィードのロゴは YouTube ロゴです。

<logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo>

feed

name

<name> タグには、投稿者の YouTube ユーザー名が含まれます。

<name>andyland74</name>

author

published

<published> タグは、フィード エントリが作成された時刻を示します。

<published>2007-10-15T15:39:34.000-07:00</published>

entry

title

<title> タグは、フィードやフィードのエントリのタイトルを人が読み取れる形式で示します。このタグは、再生リストの追加には必須で、再生リスト エントリの追加や更新の場合には省略可能です。

  • 再生リストの追加や更新のリクエストでは、<title> タグは再生リストのタイトルを示します。

  • 再生リスト エントリの追加や更新のリクエストでは、<title> タグはカスタム タイトルを示します。カスタム タイトルは、ユーザーが動画の実際のタイトルの代わりに表示するように指定するタイトルです。ユーザーがカスタム タイトルを指定しない場合、YouTube は再生リスト内の動画の実際のタイトルを表示します。

<title type='text'>andyland74's Subscriptions</title>

feedentry

updated

<updated> タグは、フィードやフィード エントリが最後に更新された時刻を示します。

<updated>2007-10-15T15:39:34.000-07:00</updated>

feedentry

uri

<uri> タグには author に関連付けられた URL が含まれます。

<uri>http://gdata.youtube.com/feeds/api/users/andyland74</uri>

author

OpenSearch 要素 リファレンス

openSearch:itemsPerPage

<openSearch:itemsPerPage> タグは API レスポンスの中に含まれるエントリの数を示します。

<openSearch:itemsPerPage>25</openSearch:itemsPerPage>

feed

openSearch:startIndex

<openSearch:startIndex> タグはフィードに返される最初の項目の 1 をベースにしたインデックスを示します。

<openSearch:startIndex>1</openSearch:startIndex>

feed

openSearch:totalResults

<openSearch:totalResults> タグはフィードの結果セット内の項目の数を示します。この値はおおよその値で、正確な値を示しているとは限りません。この値をページ番号リンクの作成に使用しないでください。<link rel="next"><link rel="prev"> のタグを使用して、ページ番号リンクを表示するかどうかを判断してください。

<link rel="next" type="application/atom+xml" href="http://gdata.youtube.com/feeds/videos?start-index=26&max-results=25"/>


フィードに rel 属性値が next<link> タグが含まれている場合、結果の次のページがあります。ない場合、現在のページが結果セットの最後のページです。同様にフィードに rel 属性値が prev<link> タグが含まれている場合、結果の 1 つ前のページがあります。ない場合、現在のページが結果セットの最初のページです。

<openSearch:totalResults>36</openSearch:totalResults>

feed

YouTube 要素 リファレンス

yt:age

<yt:age> タグは、ユーザーが YouTube のプロフィールに指定した生年月日から計算されたユーザーの年齢を示します。<yt:age> タグはユーザー プロフィール フィードに含まれます。

<yt:age>33</yt:age>

entry

yt:books

<yt:books> タグは、ユーザーが YouTube の公開プロフィールに入力したお気に入りの書籍を示します。

<yt:books>Catch-22</yt:books>

entry

yt:company

<yt:company> タグは、ユーザーが YouTube の公開プロフィールに入力した勤務先の会社を示します。

<yt:company>Google</yt:company>

entry

yt:description

<yt:description> タグには、ユーザーが入力した再生リストの説明、ユーザーが入力した再生リストの動画のカスタム説明、または苦情のテキストが含まれます。

<yt:description>My new playlist description</yt:description>

entry

yt:duration

<yt:duration> タグは動画の時間 (秒単位) を示します。

属性

名前フォーマット説明
seconds 複合 seconds 属性は動画の時間 (秒単位) を示します。

<yt:duration seconds='344'/>

media:group

yt:firstName

<yt:firstName> タグはユーザーの名を示します。

<yt:firstName>John</yt:firstName>

entry

yt:gender

<yt:gender> タグは、ユーザーが YouTube の公開プロフィールに入力した性別を示します。

<yt:gender>m</yt:gender>

entry

yt:hobbies

<yt:hobbies> タグは、ユーザーが YouTube の公開プロフィールに入力した趣味を示します。

<yt:hobbies>Testing YouTube APIs</yt:hobbies>

entry

yt:hometown

<yt:hometown> タグは、ユーザーが YouTube の公開プロフィールに入力した出身地を示します。

<yt:hometown>Albany, GA</yt:hometown>

entry

yt:lastName

<yt:lastName> タグはユーザーの姓を示します。

<yt:lastName>Smith</yt:lastName>

entry

yt:location

動画エントリでは、<yt:location> タグに動画を録画した場所についての説明のテキストが含まれます。ユーザー プロフィール エントリでは、<yt:location> タグはユーザーが YouTube の公開プロフィールに入力したユーザーの住所を示します。

<yt:location>US</yt:location>

entry

yt:movies

<yt:movies> タグは、ユーザーが YouTube の公開プロフィールに入力したお気に入りの映画を示します。

<yt:movies>Aqua Teen Hungerforce</yt:movies>

entry

yt:music

<yt:music> タグは、ユーザーが YouTube の公開プロフィールに入力したお気に入りの音楽を示します。

<yt:music>Elliott Smith, the Kooks</yt:music>

entry

yt:noembed

<yt:noembed> タグは、動画を他のウェブサイトに埋め込むことができない可能性があることを示します。このタグは、動画のメタデータのアップロードまたは更新リクエストに含まれることがあります。デフォルトでは、非公開動画を除き、動画を他のサイトに埋め込むことができます。リクエストに <yt:noembed> タグや <yt:private> タグが含まれていなければ、動画を他のウェブサイトに埋め込むことができます。

<yt:noembed/>

entry

yt:occupation

<yt:occupation> タグは、ユーザーが YouTube の公開プロフィールに入力した職業を示します。

<yt:occupation>Technical writer</yt:occupation>

entry

yt:position

<yt:position> タグは、動画が再生リストに含まれる順番を示します。

<yt:position>4</yt:position>

entry

yt:private

<yt:private> タグは、動画が非公開であること、つまり動画を YouTube のウェブサイト上に公開しないことを示します。非公開動画は、動画の所有者が自分で選択した個人以外見ることができません。このタグは、動画のメタデータのアップロードまたは更新リクエストに含まれることがあります。このタグには値を指定できません。このタグがあれば、動画は非公開です。このタグがなければ、動画はすべての YouTube ユーザーに公開されます。デフォルトでは、動画は YouTube で公開されます。このタグがなければ、動画はすべての YouTube ユーザーに公開されます。(デフォルトでは、動画はすべての YouTube ユーザーに公開されるので、動画を非公開にするには、その動画をアップロードしたり更新したりするすべてのリクエストに <yt:private> タグを含める必要があります。)

<yt:private/>

media:group

yt:queryString

<yt:queryString> タグはチャンネル登録に関連付けられたキーワード (検索する文字列) を示します。

<yt:queryString>Dog skateboarding</yt:queryString>

entry

yt:racy

<yt:racy> タグは、動画に制限付きのコンテンツが含まれるかどうかを示します。動画フィードを要求する際、API リクエストに racy パラメータが含まれると、フィードには制限付きコンテンツしか含まれません。

<yt:racy/>

entry

yt:recorded

<yt:recorded> タグは、動画が録画された日付を示します。

<yt:recorded>2003-08-03</yt:recorded>

entry

yt:relationship

<yt:relationship> タグは、ユーザーの YouTube の公開プロフィールに記載された情報による、ユーザーの関係を示します。

<yt:relationship>taken</yt:relationship>

entry

yt:school

<yt:school> タグは、ユーザーの YouTube の公開プロフィールに記載の情報による、ユーザーの出身校を示します。

<yt:school>University of North Carolina</yt:school>

entry

yt:state

<yt:state> タグには動画のステータスを説明する情報が含まれます。アップロードに失敗した動画や、アップロード処理後に拒否された動画の場合、reasonCode 属性とこのタグの値から、アップロードできなかった理由がわかります。

属性

名前フォーマット説明
name 複合 name 属性は、公開されていない動画のステータスを示します。このタグの有効な値は、processingrejectedfailed です。
reasonCode 複合 reasonCode 属性は、動画がアップロードに失敗した理由やアップロード処理後に拒否された理由についての情報を提供します。name 属性の値が processing の場合は、<yt:state> タグに reasonCode 属性は含まれません。アップロードが拒否された、またはアップロードに失敗した場合に、可能性のある reasonCode の値は次のとおりです。
  • rejected

    • copyright - 動画が著作権を侵害しています。
    • inappropriate - 動画に不適切なコンテンツが含まれています。
    • duplicate - 動画はアップロード済みの動画と重複しています。
    • termsOfUse - 動画が利用規約に違反しています。
    • suspended - 動画に関連付けられたアカウントは停止されています。
    • tooLong - 動画の時間が上限の 10 分間を超えています。
    • blocked - 動画はコンテンツの所有者によりブロックされました。

  • failed

    • cantProcess - YouTube は動画ファイルを変換できません。
    • invalidFormat - アップロードされた動画のファイル形式が無効です。
    • unsupportedCodec - 動画にサポートされていないコーデックが使用されています。
    • empty - アップロードされたファイルが空です。
    • tooSmall - アップロードされたファイルが小さすぎます。

helpUrl 複合 helpUrl パラメータには、YouTube ヘルプ センターのページへのリンクが含まれており、デベロッパーまたは動画の所有者がアップロードの失敗または拒否の理由を調べるのに役立ちます。

<yt:state name="rejected" reasonCode="tooLong" helpUrl="http://www.youtube.com/t/community_guidelines">Video is too long</yt:state>

app:control

yt:statistics

<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'/>

entry

yt:status

<yt:status> タグはコンタクトのステータスを示します。このタグは、現在認証されているユーザーのコンタクトを取得しているときにのみ含まれます。このタグの有効な値は次のとおりです。

  • 認証されているユーザーとコンタクトの相手が互いに友だちとしてマークされている場合、このタグの値は accepted になります。
  • コンタクトの相手が、認証されているユーザーのコンタクト リストに追加してもらうように要求していて、そのリクエストがまだ承認 (または拒否) されていない場合、このタグの値は requested になります。
  • 認証されているユーザーが、コンタクトの相手のコンタクト リストに追加してもらうように要求していて、そのリクエストがまだ承認または拒否されていない場合、このタグの値は pending になります。

<yt:status>accepted</yt:status>

entry

yt:username

<yt:username> タグは、YouTube ユーザー名を示します。チャンネル登録フィードや、チャンネル登録の追加のリクエストでは、<yt:username> タグは YouTube チャンネルかチャンネル登録されるお気に入りリストの所有者を示します。プロフィール エントリでは、<yt:username> タグは、プロフィールに対応するユーザーを示します。ユーザーのコンタクトのエントリでは、<yt:username> タグは、ログインしているユーザーのコンタクトの相手を示します。

<yt:username>andyland74</yt:username>

entry

Media RSS 要素 リファレンス

media:category

<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:group

media:content

<media:content> タグは、動画に関する URL とその他さまざまな種類の情報を示します。

属性

名前フォーマット説明
url 複合 url 属性は、メディア オブジェクトの URL を示します。
type 複合 type 属性は、メディア オブジェクトの MIME タイプを示します。
isDefault 複合 isDefault 属性は、対応する <media:content> タグがメディア グループのデフォルトのメディア リソースを指定するかどうかを示します。YouTube Data API レスポンスでのデフォルトのメディア リソースとは、その動画の埋め込み型プレーヤー (SWF) の URL のことです。
expression 複合 expression 属性は、動画オブジェクトが動画のサンプルか、動画の完全版か、動画のライブ ストリームかを示します。この属性に対応する有効な値は、samplefullnonstop (のみ) です。
duration 複合 duration タグは動画の長さ (秒単位) を示します。
yt:format 複合 yt:format 属性は、<media:content> 要素に記載される動画オブジェクトの動画フォーマットを示します。この属性の有効な値は次のとおりです。

  • 1 - モバイル向け動画の再生用の RTSP ストリーミング URL です。H.263 動画 (最大 176 x 144) と AMR 音声です。
  • 5 - この動画用の埋め込み型プレーヤー (SWF) への HTTP URL です。このフォーマットは、埋め込みできない動画には利用できません。デベロッパーはクエリに &format=5 を追加して、自分のサイトに埋め込み可能な動画に結果を限定します。
  • 6 - モバイル向け動画の再生用の RTSP ストリーミング URL です。MPEG-4 SP 動画 (最大 176 x 144) と AAC 音声です。

<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:group

media:description

<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:group> タグには、動画リソースに関するメタデータが含まれます。

<media:group>

entry

media:title, media:description, media:keywords, media:category, media:content, media:player, media:thumbnail, yt:duration?, yt:private?, yt:noembed?

media:keywords

<media:keywords> タグには、動画に関連付けられた語句をカンマで区切ったリストが含まれます。フィード内の各動画には、少なくとも 1 つのキーワードを指定する必要があります。このフィールドは最長 120 文字で、「<」 と 「<」 以外の有効な UTF -8 文字をすべて含めることができます。各キーワードの長さは、最長 25 文字です。

属性

名前フォーマット説明
scheme テキスト scheme 属性は、ラベルに対応する分類スキームを示す URI を指定します。

  • チャンネル登録を追加するリクエストでは、scheme 属性の値は http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat でなければなりません。
  • コンタクトを追加するリクエストでは、scheme 属性の値は http://gdata.youtube.com/schemas/2007/contact.cat でなければなりません。

<media:keywords>rodeo, surfing, crochet</media:keywords>

media:group

media:player

<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:group

media:thumbnail

<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'/>

entrymedia:group

media:title

<media:title> タグは動画のタイトルを示します。このフィールドは、最長 60 文字で、<> 以外の有効な UTF -8 文字をすべて含めることができます。

属性

名前フォーマット説明
type 複合 type 属性は、このタグの値に指定されるテキストのタイプを示します。YouTube のコンテンツ フィードでは、プレーン テキスト (type=plain) 形式である必要があります。

<media:title type="plain">Extreme crocheting in high surf, rodeo</media:title>

media:group

GData 要素 リファレンス

gd:comments

<gd:comments> タグには、動画のコメント フィードへのリンクが含まれます。

<gd:comments>

entry

gd:feedLink

gd:feedLink

<gd:feedLink> タグは、論理的にネストされたフィードを示します。たとえば、コメント フィードは動画エントリの下で論理的にネストされます。同様に単一の再生リストのフィードは、ユーザーの再生リスト フィードの中の再生リスト エントリ内で論理的にネストされます。

属性

名前フォーマット説明
rel 複合 rel 属性は、href 属性に指定された URI が現在の結果セットにどのように関連付けられているかを示します。

  • rel 属性値が self の場合、このリンクは、フィードまたはフィード内の特定のエントリに関する情報を取得するのに使用する URL を示します。

  • rel 属性値が edit の場合、このリンクは、フィード エントリの変更に使用する URL を示します。

  • rel 属性値が alternate の場合、このリンクは、フィードの異なる表現を表す URL (フィード エントリの HTML 表現へのリンクなど) を示します。

  • rel 属性値が prev の場合、このリンクは、フィードの結果セットの 1 つ前のページを指します。

  • rel 属性値が next の場合、このリンクは、フィードの結果セットの次のページを指します。

  • rel 属性値が related の場合、このリンクは、現在のフィードに関連付けられている別のフィードを示します。たとえばフィードにコンタクト エントリのリストが含まれている場合、コンタクトの related リンクはそのコンタクトのプロフィールのフィードを指します。

  • rel 属性には、対応するリンクに関連付けられているエンティティのタイプを識別するスキーマへのリンクが含まれることもあります。たとえば動画エントリには、その動画のレスポンス、評価、苦情、関連動画を指す <link> タグが含まれます。これらの <link> タグには、関連動画や動画レスポンスなど、追加のフィードを取得するのに使用できるタグや、評価や苦情などのデータの投稿に使用できるタグがあります。

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'/>

entrygd:comments

gd:rating

<gd:rating> タグは、動画に割り当てる評価 (評価を追加するリクエストの場合) か、YouTube ユーザーの総合評価に基づく動画の現在の平均評価を示します。

属性

名前フォーマット説明
min 複合 min 属性は、動画に割り当て可能な最低の評価を示します。この値は 1 でなければなりません。
max 複合 max 属性は、動画に割り当て可能な最高の評価を示します。この値は 5 でなければなりません。
numRaters 複合 numRaters 属性は、動画を評価したユーザーの人数を示します。この属性は、評価を追加するリクエストでは使用されません。
average 複合 average 属性は、動画の平均の評価を示します。この属性は、評価を追加するリクエストでは使用されません。

<gd:rating min='1' max='5' numRaters='7773' average='4.75'/>

entry

GeoRSS 要素 リファレンス

georss:where

<georss:where> タグには、地理的位置に関する情報が含まれます。動画に関連付けられた地理的位置が既にある場合、動画情報を更新するその後のリクエストには、その位置情報を含める必要があります。含めない場合、その地理的位置は削除されます。

<georss:where>

entry

gml:Point

GML 要素 リファレンス

gml:Point

<gml:Point> タグには、特定の地理的位置の情報が含まれます。デフォルトのポイント投影には、WGS84 を使用します。動画のメタデータをアップロードまたは更新するリクエストに、動画を録画した地理的位置を指定できます。動画に関連付けられた地理的位置が既にある場合、動画情報を更新するその後のリクエストには、その位置情報を含める必要があります。含めない場合、その地理的位置は削除されます。

<gml:Point>

georss:where

gml:pos

gml:pos

<gml:pos> タグは、地理的ポイントの座標を示します。デフォルトのポイントの投影には、WGS84 を使用します。動画に関連付けられた地理的位置が既にある場合、動画情報を更新するその後のリクエストには、その位置情報を含める必要があります。含めない場合、その地理的位置は削除されます。

<gml:pos>47.367 8.55</gml:pos>

gml:Point

Atom Publishing Protocol 要素 リファレンス

app:control

<app:control> タグは、動画が公開されていないことを示します。このタグは、現在認証されているユーザーのアップロード フィードの中にのみ返されます。

<app:control>

entry

app:draftyt:state

app:draft

<app:draft> タグは、動画が作成中で公開されていない状態であることを示します。このタグは、公開されていない動画にのみ含まれるので、値は常に yes です。

<app:draft>yes</app:draft>

app:control

ブラウザ ベースのアップロード API レスポンス 要素 リファレンス

response

<response> タグには、ブラウザ ベースのアップロードを使用して動画のメタデータをアップロードする場合に、その API リクエストに対する YouTube からの API レスポンスが含まれます。

<response>

urltoken

token

<token> タグは、ブラウザ ベースのアップロードを使用して新しい動画のメタデータをアップロードする API リクエストに対して YouTube が返す API レスポンスの中に含まれます。ユーザーが YouTube 上にその新しい動画を直接アップロードできるようにするページに、このトークンを含める必要があります。

<token>AEwbFAQEvf3xox...</token>

response

url

<url> タグは、ブラウザ ベースのアップロードを使用して新しい動画のメタデータをアップロードする API リクエストに対して YouTube が返す API レスポンスの中に含まれます。ユーザーが YouTube 上に実際の動画ファイルをアップロードできるようにするウェブページ上のフォームは、この URL に送信されます。

<url>http://uploads.gdata.youtube.com/action/FormUpload/AEF3087AUD</url>

response

エラー レスポンス 要素 リファレンス

code

<code> タグは API リクエストが失敗した理由を説明します。下記に、<code> タグに指定される値を、対応する <domain> タグの値ごとに順に説明します。

  • yt:validation:

    • required - このコードは、必須のフィールドがないか、値が空であることを示します。
    • deprecated - このコードは、要素の値が推奨されていないか、無効になったことを示します。たとえば、削除された動画のカテゴリ名を新規に追加、または更新する動画に関連付けることはできません。
    • invalid_format - このコードは、XML 要素の値が正しいフォーマットではないことを示します。たとえば <gml:pos> タグに無効な座標を指定すると、このエラーを受け取ります。
    • invalid_character - このコードは、XML フィールドの値に無効な文字が含まれていることを示します。たとえば、動画のタイトルに不等号 (<) の文字を含めることはできません。
    • too_long - このコードは、XML 要素の値が最大長を超えていることを示します。たとえば、動画のタイトルは 60 文字以下でなければなりません。

  • yt:quota:

    • too_many_recent_calls - このコードは、短期間に同じ呼び出し元から API サーバーが受信したコールが多すぎることを示します。このエラーには、位置は指定されません。
    • too_many_entries - このコードは、ユーザーのアカウントに対するストレージが上限を超えそうになっており、新しいエントリを挿入する前に既存のエントリを削除する必要があることを示します。

  • yt:authentication:

    • InvalidToken - このコードは、Authorization ヘッダーに指定された認証トークンが無効であることを示します。
    • TokenExpired - このコードは、Authorization ヘッダーに指定された認証トークンが期限切れであることを示します。

<code>required</code>

error

domain

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

error

error

<error> タグには、API リクエストの失敗の原因となった個々のエラーの情報が含まれます。

<error>

errors

domaincodelocation

errors

<errors> タグには、API リクエストの失敗の原因となったエラーを説明する API レスポンスが含まれます。

<errors>

error+

location

<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 属性に指定される値は、次のどれかです。
  • xpath - XML リクエストで、指定されたパスにエラーがあります。パスはリクエスト内の <entry> タグへの相対パスです。
  • parameter - API リクエストで、<location> タグで指定されたパラメータにエラーがあります。
  • header - API リクエストで、指定された HTTP リクエスト ヘッダーにエラーがあります。
  • other - API リクエストに、その他のタイプのエラーがあります。この値は、codetoo_many_entries の quota エラーを示すために使用されます。

<location type='xpath'>media:group/media:title/text()</location>

error

補足情報

アップロードする動画のカテゴリ リスト

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>

URL エスケープ

HTTP 検索リクエストを作成するには、Google で HTTP リクエストが正しく解釈され、適切なレスポンスが生成されるように、特定の表記法に従う必要があります。

HTTP URL スキーマでは、HTTP URL リクエストに次の文字のみを含めるように規定しています。

  • 英数字: [a-z][A-Z][0-9]
  • 特殊文字: $ - _ . | + ! * ' ( )
  • 予約文字: ; / ? : @ = &

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

URL エスケープについて詳しくは、RFC 2396W3C をご覧ください。