このドキュメントは、Google Data プロトコルに基づいて YouTube API を見直した最新のものです。このドキュメントは、ご自身のウェブサイトやアプリケーションを、新しい YouTube API に移行するデベロッパーを支援する目的で作成されました。
YouTube は、インターネットで最も人気の高いオンライン動画サイトです。2005 年に原型となる REST/XML-RPC API をリリースして以来、数多くのデベロッパーが YouTube の動画を広め、世界中のユーザーが動画をアップロードするようになりました。YouTube がより成熟した今、強固なフル装備の API をデベロッパー向けにご用意しました。新しい API は、既存の Google Data プロトコルを標準としています。この動きには、より高い拡張性やより充実したデベロッパー リソース など、さまざまな理由があります。このドキュメントでは、新しい API 、およびご自身のウェブサイトやアプリケーションを移行するために必要なことについて知ることができます。リファレンス ガイドやデベロッパー向けガイドも、非常に役立つリソースです。
レガシー API を使用している方は、Google Data ベースの API にアップグレードしてください。レガシー API には新機能が組み込まれませんし、重大なバグ以外は対処されなくなります。
レガシー API は、2008 年 8 月 30 日までは利用可能ですが、その後の保証はされません。レガシー API に関する問題への対処が後回しになる前に、できるだけ早くアップグレードすることをお勧めします。
以下の表は、両 API の共通操作の違いを示していますが、完全なものではありません。詳しくはリファレンス ガイドをご覧ください。
| 操作 | レガシー API | YouTube Data API | 注記/コメント |
|---|---|---|---|
| YouTube で検索 | videos.list_by_tag&tag="SEARCH TERMS" |
/feeds/api/videos?vq="SEARCH TERMS" |
|
| 特定のカテゴリで検索 | videos.list_by_category_and_tag&tag="SEARCH TERMS"&category_id=CATEGORY_ID |
/feeds/api/videos/-/CATEGORY_NAME |
|
| 動画のメタデータを取得 | videos.get_details&video_id=VIDEO_ID |
/feeds/api/videos/VIDEO_ID |
|
| 動画の動画レスポンスを取得 | 非対応 | /feeds/api/videos/VIDEO_ID/responses |
|
| 動画のコメントを取得 | videos.get_details&video_id=VIDEO_ID |
/feeds/api/VIDEO_ID/comments |
YouTube Data API では、まだデベロッパー ID が必要ありませんが、レガシー API については、どの API を呼び出す場合でも必要です。パラメータやフィルタの形での追加機能については、以降で説明します。
レガシー API と新しい API のどちらでも、ページングができます。新しいページング パラメータは以下のとおりです。
start-index - どのエントリから結果をリストするか示します。これは、レガシー API の page パラメータ (表示する結果のページを示す) に対応するものではありません。max-results - 表示する最大数を示します。これは、レガシー API の per_page パラメータに対応するものです。たとえば、1000 の結果のうち一度には 50 を解析する場合、最初の start-index は 1 で、max-results は 50 になります。次の反復で、start-index は start-index + max-results の 51 になります。レガシー API では、page パラメータは 1 で始まり、per_page は 50 です。その後のすべての反復で、page パラメータは 2 などと増加していきます。
YouTube Data API では、以下のクエリ パラメータがサポートされるようになりました。
vq - 全文検索クエリ (動画タイトル、説明、タグといったコンテンツを検索) を示します。format - 特定の形式の動画のみを検索 (たとえば、format=0 は Flash です。この形式は、すべての動画で使用できます)。使用できる形式については、リファレンス ガイドをご覧ください。alt - 出力形式を制御します (RSS、Atom、JSON)。詳しくは http://code.google.com/intl/ja/apis/gdata/reference.html#Queries をご覧ください。author - 特定の YouTube ユーザーがアップロードした動画で検索を絞り込みます。詳しくは http://code.google.com/intl/ja/apis/gdata/reference.html#Queries をご覧ください。orderby - アイテムが返される順番を示します (relevance (デフォルト)、published、viewCount、または rating)。racy - コミュニティがフラグを設定した制限付きコンテンツを含めるには racy=include を追加します。デフォルトは exclude です。「monkey」という単語に関連する動画を、レガシー API と YouTube Data API で、ページング機能を使用して検索した結果は、それぞれ次のとおりです。
http://www.youtube.com/api2_rest?method=youtube.videos.list_by_tag&dev_id=DEV_ID&tag=monkey&page=1&per_page=50
http://gdata.youtube.com/feeds/api/videos?vq=monkey&start-index=1&max-results=50
リクエストされてきた機能として、動画フィードを最も新しいものから順にソートする機能があります。YouTube Data API では、パラメータとして orderby=published を追加することでこのタイプの検索が可能です。
http://gdata.youtube.com/feeds/api/videos?vq=monkey&orderby=published&start-index=1&max-results=50
| 操作 | レガシー API | YouTube Data API | 注記/コメント |
|---|---|---|---|
| ユーザーのプロファイルを取得 | users.get_profile&user=USERNAME |
/feeds/api/users/USERNAME |
|
| ユーザーの動画を取得 | videos.list_by_user&user=USERNAME |
/feeds/api/users/USERNAME/uploads |
|
| ユーザーのお気に入りを取得 | users.list_favorite_videos&user=USERNAME |
/feeds/api/users/USERNAME/favorites |
|
| ユーザーの再生リストを取得 | 非対応 | /feeds/api/users/USERNAME/playlists |
|
| ユーザーの登録チャンネルを取得 | 非対応 | /feeds/api/users/USERNAME/subscriptions |
レガシー API と新しい API を使用した、特定のユーザーの動画一覧は以下のとおりです。
http://www.youtube.com/api2_rest?method=youtube.videos.list_by_user&dev_id=DEV_ID&user=USERNAME
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads
新しい動画フィードに適用されるフィルタの多くは、ユーザー フィードにも適用できます。たとえば、ユーザーがアップロードした動画からテキスト検索が実行できます。
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?vq="dogs on bicycles"
各フィードに適用されるクエリ パラメータについて、詳しくはリファレンス ガイドをご覧ください。
| 操作 | レガシー API | YouTube Data API | 注記/コメント |
|---|---|---|---|
| 再生リスト内の動画を取得 | videos.list_by_playlist&id=PLAYLIST_ID |
/feeds/api/playlists/PLAYLIST_ID |
|
| ユーザーの再生リストを取得 | N/A |
/feeds/api/users/USERNAME/playlists |
レガシー API を使用した、特定の再生リストにある動画の一覧は以下のとおりです。
http://youtube.com/dev_api_ref?m=youtube.videos.list_by_playlist&dev_id=DEV_ID&id=PLAYLIST_ID
YouTube Data API を使用すると、次のようになります。
http://gdata.youtube.com/feeds/api/playlists/PLAYLIST_ID
各フィードに適用されるクエリ パラメータについて、詳しくはリファレンス ガイドをご覧ください。
Google では、アップロードやその他の書き込みコールの追加を含む新機能など、新しい Google Data ベースの API の開発を続けています。その他の機能についての要求やバグ レポートは、Google Data issue tracker に提出してください。Google データ API の Client Libraries にも YouTube API のサポートを追加しています。Java はすでにサポートされていますが、PHP や Python が順次サポートされる予定です。ご不明な点があれば、ディスカッション フォーラムに投稿してください。それでは、コーディングをお楽しみください。