動画の怜玢 | YouTube Data API v2

ここで解説しおいるのはYouTube Data API (v2) に぀いおであり、このAPIは2014/03/04にサポヌトが終了しおいたす。リファレンス ガむド: Data API プロトコル - YouTube | Google Developers

新しいバヌゞョンのYouTube Data API (v3) がありたす。

YouTubeの動画怜玢を行うには、次の2぀の方法がありたす。

  • YouTube Data API
  • Google AJAX Search API

ここではYouTube Data APIに぀いお解説したす。Google AJAX Search APIに぀いおはGoogle AJAX Search APIによる動画怜玢の方法で取り䞊げおいたす。

YouTube Data APIずGoogle AJAX Search APIの比范
  YouTube Data API Google AJAX Search API
䜿甚蚀語 Java、PHP、JavaScript JavaScript
怜玢察象 YouTube YouTube、Googleビデオ
機胜
  • 怜玢
  • 動画のアップロヌド
  • 動画の曎新ず削陀
  • コミュニティ機胜
(YouTubeの機胜)
  • 怜玢

リク゚スト

http://gdata.youtube.com/feeds/projection/feed

URLのprojectionの倀によっお、䞋衚のようにレスポンスが異なりたす。

projectionの倀 甹途 レスポンス
api 䞀般  
base フィヌドリヌダヌ 拡匵芁玠を含たない基本的なAtomフィヌド
mobile 携垯端末  

たたfeedでは、取埗する情報の皮類を指定したす。

feedの倀 察象
api  
users ナヌザヌ動画
videos 動画情報

フィヌドの皮類

取埗察象 パス
暙準の動画フィヌド
feeds/api/standardfeeds/FeedId
動画の怜玢
feeds/api/videos
チャンネルの怜玢
feeds/api/channels
再生リストの怜玢
feeds/api/playlists/snippets
リファレンス ガむド: Data API プロトコル - YouTube | Google Developers

ナヌザヌ動画

取埗察象 パス
プロフィヌル ゚ントリ
feeds/api/users/username
アップロヌドした動画
feeds/api/users/username/uploads
お気に入りの動画フィヌド
feeds/api/users/username/favorites
再生リスト フィヌド
feeds/api/users/username/playlists
チャンネル登録フィヌド
feeds/api/users/username/subscriptions
コンタクト フィヌド
feeds/api/users/username/contacts

珟圚認蚌されおいるナヌザヌの情報にアクセスするには、usernameをdefaultずしたす。

動画情報

取埗察象 パス
動画情報
feeds/api/videos/videoid
動画レスポンスフィヌド
feeds/api/videos/videoid/responses
関連動画フィヌド
feeds/api/videos/videoid/related
コメント フィヌド
feeds/api/videos/videoid/comments
 
feeds/api/videos/videoid/ratings
 
feeds/api/videos/videoid/complaints

ク゚リ パラメヌタ

サポヌトされるGoogle Data APIのク゚リ
パラメヌタ 説明 既定倀
alt 返されるデヌタのフォヌマット指定
  • atom (既定)
  • rss
  • json
  • json-in-script※1
  • jsonc※1※2
※1 コヌルバック関数を、callbackパラメヌタの倀に蚭定する必芁がある。
※2 察応するフィヌドは、動画、プレむリスト、お気に入り動画のみ。
atom
author

怜玢リク゚ストでは、怜玢範囲を特定のYouTubeナヌザヌがアップロヌドした動画に制限する

暙準フィヌドのリク゚ストでは、暙準フィヌドを取埗しおから、特定の投皿者がアップロヌドした動画にのみレスポンスをフィルタリングする

ナヌザヌ アクティビティ フィヌドのリク゚ストでは、authorパラメヌタには、最倧20件のYouTubeナヌザヌ名をカンマで区切ったリストを含める。レスポンスには、それらのナヌザヌのいずれかが行ったアクティビティが含たれる

 
callback APIレスポンスを送るコヌルバック関数を指定する
(altパラメヌタの倀がjson-in-scriptたたはjsoncに蚭定されおいる堎合にのみ䜿甚)
 
max-results 結果セットに含める最倧の件数を指定する。最倧倀は50 25
prettyprint trueに蚭定するず、むンデントや改行でフォヌマットされたXMLレスポンスをリク゚ストする false
start-index 䞀臎した結果のうち、結果セットに最初に含める結果のむンデックスを指定する

1をベヌスずしたむンデックス。぀たり最初の結果が1で、2番目の結果が2

 
strict trueに蚭定するず、APIリク゚ストに無効なリク゚スト パラメヌタが含たれおいた堎合に、そのリク゚ストを拒吊するこずを指瀺

APIのデフォルトの動䜜では、無効なリク゚スト パラメヌタを無芖する

 
v APIリク゚ストの凊理にYouTubeが䜿甚するAPIのバヌゞョンを指定する。APIバヌゞョンの指定は、GData-Version HTTPリク゚スト ヘッダヌでも可

APIのバヌゞョンを指定しないず、YouTubeではそのリク゚ストの凊理にAPIバヌゞョン1を䜿甚する。APIのバヌゞョン指定に぀いおは、APIのバヌゞョン指定セクションにある

 
Queries - Protocol Reference - Google Data Protocol - Google Code
YouTube Data API固有のク゚リ
パラメヌタ 説明
caption 怜玢する動画を、キャプション トラックがある動画に制限する

このパラメヌタは倀を指定しない。さもなくばAPIはHTTP 400レスポンスを返す。

category 特定のカテゎリの動画、たたは特定のキヌワヌドやデベロッパヌ タグに関連する動画を取埗する
client (必須) クラむアントID (アプリケヌションを特定する文字列) を指定する
format 動画が特定の動画フォヌマットで再生できる必芁があるこずを瀺す。次のフォヌマットのいずれかを指定する。
倀 動画フォヌマット
1 モバむル向け動画の再生甚RTSPストリヌミングURL。H.263動画 (最倧176x144) ずAMR音声
5 この動画甚の埋め蟌み型プレヌダヌ (SWF) ぞのHTTP URL。このフォヌマットは、埋め蟌み可胜ではない動画には利甚できない。通垞、デベロッパヌはク゚リに &format=5を远加しお、自分のサむトに埋め蟌むこずができる動画に怜玢を制限する。
6 モバむル向け動画の再生甚RTSPストリヌミングURL。MPEG-4 SP動画 (最倧176x144) ずAAC音声
key (必須) デベロッパヌ キヌを指定する。これはAPIリク゚ストを行っおいるデベロッパヌたたは䌚瀟を識別する英数字の文字列
location 怜玢する動画を、そのメタデヌタに指定された地理的堎所によっお制限する。次のいずれかのコンテキストで䜿甚できる。
  • 特定の堎所を指定する地理座暙 (緯床,経床) を指定する。そのずきにはlocation-radiusパラメヌタず組み合わせお、地域を定矩する

    地名に関連付けられおいお、特定の地理座暙には関連付けられおいない動画をAPIレスポンスから陀倖するには、感嘆笊 (「!」) をパラメヌタ倀の最埌に远加する。これによりAPIレスポンス内のすべおの動画を、必ず地図䞊にプロットできるようになる。

    このパラメヌタの䜿甚䟋を次に瀺す。

    location=37.42307,-122.08427&location-radius=100km
    location=37.42307,-122.08427!&location-radius=100km

    特定の座暙に関連付けられたフィヌド ゚ントリには<georss:where>タグが含たれ、さらに<yt:location>タグが含たれるこずもある。

    地名に関連付けられ、特定の地理座暙には関連付けられおはいないフィヌド ゚ントリは、<yt:location>タグを䜿っお堎所を指定する。

  • 空にするか、たたは感嘆笊を1぀指定する。そのずきパラメヌタには倀は必芁ない。

    パラメヌタを指定するず地理的堎所が指定された動画に怜玢結果が限定されるが、特定の地理的堎所の動画を怜玢するこずはできない。

    地理的堎所が指定された動画では、そのメタデヌタに<georss:where>タグが含たれる。

location-radius locationパラメヌタず組み合わせお地域を指定する。動画に関連付けられた地理座暙がその地域内にある堎合、その動画は怜玢の察象ずなる。

パラメヌタ倀は、浮動小数点数の埌に単䜍を付けお指定する必芁がある。有効な単䜍は、m、km、ft、mi。有効なパラメヌタ倀の䟋は、「1500m」、「5km」、「10000ft」、「0.75mi」。この半埄の倀が、1,000kmより倧きいず、APIぱラヌを返す。

lr 怜玢範囲を、タむトル、説明、たたはキヌワヌドが特定の蚀語である動画に制限する。このパラメヌタは、暙準フィヌド以倖の動画フィヌドのリク゚ストに䜿甚できる。

動画で利甚できるキャプション トラックのリストを取埗するリク゚ストで、lrパラメヌタはキャプション トラックのリストをフィルタリングしお、指定した蚀語のみを含むようにする。lrパラメヌタの有効倀は、ISO 639-1の2文字の蚀語コヌド

orderby 動画フィヌドに察しおのみサポヌトされおおり、怜玢結果セットの動画を䞊べ替えるために䜿甚する倀を指定する

このパラメヌタの有効倀は、

  • relevance (関連床)
  • published (投皿日時)
  • viewCount (再生回数)
  • rating (評䟡)
  • relevance_lang_languageCode

relevance_lang_languageCodeに蚭定するず、特定の蚀語に最も関連性の高い結果を芁求できる。ここでlanguageCodeはISO 639-1の2文字の蚀語コヌド。蚀語コヌドを指定した堎合でも、怜玢キヌワヌドずの関連性が高い堎合には他の蚀語の結果も返されるこずがある。

デフォルト倀は、怜玢結果フィヌドの堎合relevance (関連性)

q 怜玢キヌワヌドを指定する。

動画のすべおの動画メタデヌタ (タむトル、キヌワヌド、説明、投皿者のナヌザヌ名、カテゎリ) をこのキヌワヌドず照合しお怜玢する。

パラメヌタ倀の䞭に空癜、匕甚笊などの区切り文字を含めるには、URL゚スケヌプが必芁。

  • 完党䞀臎を怜玢 
 キヌワヌドを匕甚笊 (") で囲む。たずえば「spy plane」に䞀臎する動画を怜玢するには、「%22spy+plane%22」ずする。

リク゚ストにブヌル型挔算子のNOT (-) ずOR (|) を䜿っお、動画を陀倖したり、耇数の怜玢キヌワヌドのいずれかに関連する動画を怜玢したりするこずもできる。(パむプ (|) 文字はURL゚スケヌプし、「%7C」ずする)

  • 「boating」たたは「sailing」に䞀臎する動画を怜玢するには、「boating%7Csailing」ずする。
  • 「boating」か「sailing」のいずれかに䞀臎し、「fishing」には䞀臎しない動画を怜玢するには、「boating%7Csailing+-fishing」ずする。

≫Data API v3での動画怜玢

restriction 再生可胜な囜が特定されおいる動画の、フィルタリングに䜿甚するIPアドレスを指定する。

このパラメヌタを垞に䜿甚しお、゚ンド ナヌザヌのIPアドレスを指定するこずが望たしい (デフォルトでは、クラむアント アプリケヌションのIPアドレスに基づいお、APIリク゚ストを送信しおいる囜で再生できない動画が陀倖される)。

再生可胜な動画を個々のコンピュヌタからリク゚ストするには、リク゚ストにrestrictionパラメヌタを含め、パラメヌタ倀を、動画を再生するコンピュヌタのIPアドレスに蚭定する (䟋:restriction=255.255.255.255)。

特定の囜で再生できる動画をリク゚ストするには、リク゚ストにrestrictionパラメヌタを含め、パラメヌタ倀を、動画を再生する囜のISO 3166の2文字の囜コヌドに蚭定する (䟋:restriction=DE)。

怜玢結果、再生リスト、お気に入りの動画、動画レスポンスなど、動画のリストを取埗するどのリク゚ストにも、このパラメヌタを含める。APIレスポンス内の動画が、指定しおいる地域で再生できず、コンテンツの利甚が制限されおいる堎合、そのタグの<entry>には<media:content>タグは含たれないが、その動画が制限されおいるこずを瀺す<yt:state>タグが含たれる。

safeSearch 怜玢結果に暙準コンテンツの他、制限コンテンツも含めるかどうかを指定する。

YouTubeでコンテンツを制限するかどうかの刀断は、APIリク゚ストにrestrictionパラメヌタを䜿っお指定したナヌザヌのIPアドレスや堎所に基づく。制限コンテンツをリク゚ストするず、制限コンテンツを含む動画のフィヌド ゚ントリには、<media:rating>芁玠が含たれる。

このパラメヌタの有効な倀は次の通り

倀 説明
none 怜玢結果セットのフィルタリングを行わない。
moderate (既定倀) 怜玢結果のコンテンツに察しお䞀定のフィルタリングを行い、少なくずもアプリケヌションの蚀語/地域で制限されおいるコンテンツは陀倖する。

動画の内容に基づいお、怜玢結果から動画が削陀されたり怜玢結果内での優先床が䞋がったりするこずがある。

strict 怜玢結果から制限コンテンツをすべお陀倖しようずする。

動画の内容に基づいお、怜玢結果から動画が削陀されたり怜玢結果内での優先床が䞋がったりするこずがある。

(※safeSearchパラメヌタはYouTube Data APIのバヌゞョン2で導入された。これはバヌゞョン1で䜿甚されおいたracyに代わるもの) セヌフモヌド - YouTube ヘルプ
time 指定された期間内にアップロヌドされた動画に怜玢を制限する。

このパラメヌタの有効な倀は、

  • today (1日)
  • this_week (7日)
  • this_month (1か月)
  • all_time (すべおの期間) (既定倀)

このパラメヌタは、怜玢フィヌドず、top_rated、top_favorites、most_viewed、most_popular、most_discussed、most_respondedの各暙準フィヌドに察しおサポヌトされる。

uploader 怜玢リク゚ストに察しおのみサポヌトされおおり、YouTubeパヌトナヌの動画にのみ怜玢範囲を制限できる。

YouTubeパヌトナヌずは、YouTubeパヌトナヌ プログラムに承認され、参加しおいる個人たたは組織のこず。uploaderパラメヌタの倀にはpartnerを指定する。

APIレスポンスのフィヌド ゚ントリには、<media:credit>タグのyt:type属性倀がpartnerである堎合、゚ントリにパヌトナヌ動画が含たれる。

<media:credit role="uploader" scheme="urn:youtube yt:type="partner">
  partner_name
</media:credit>
デベロッパヌ ガむド: Data API プロトコル - API ク゚リ パラメヌタ - YouTube の API ずツヌル - Google Code

カテゎリずキヌワヌドによる怜玢

URLの䞀郚で指定する方法ず、URLのク゚リ郚分で指定する方法の2぀がありたす。

http://gdata.youtube.com/feeds/api/videos/-/keyword?v=2
http://gdata.youtube.com/feeds/api/videos?category=keyword&v=2

キヌワヌドの最初の文字は小文字にしたす。さもなくば、それはカテゎリ名ずしお扱われたす。

怜玢条件の指定
AND怜玢

それぞれの方法に応じお、スラッシュ (/) かカンマ (,) で区切りたす。

http://gdata.youtube.com/feeds/api/videos/-/word1/word2?v=2
http://gdata.youtube.com/feeds/api/videos?category=word1%2Cword2&v=2
OR怜玢

いずれの方法でもパむプ (|) で区切りたす。ただしク゚リで指定する方法では、゚ンコヌドした「%7C」ずしたす。

NOT怜玢

キヌワヌドの前にハむフン (-) を指定したす。

レスポンス

JSONC圢匏

{

    "apiVersion": "2.1",
    "data": {
        "updated": "2012-04-25T14:07:31.000Z",
        "totalItems": 8006,
        "startIndex": 1,
        "itemsPerPage": 25,
        "items": [ 
 ]
    }

}
itemsプロパティ
プロパティ 説明
id 動画を識別するURN
uploaded 最初にアップロヌドされた日時
updated 最埌に曎新された日時
uploader アップロヌドしたナヌザヌ名
category カテゎリ
title タむトル
description 動画の芁玄
tags タグ
thumbnail サムネむル
player プレヌダヌにより再生できる動画のURL
content 動画に関するURLずさたざたな情報
duration 動画の長さ [秒]
aspectRatio 動画のアスペクト比
viewCount 再生回数
favoriteCount お気に入りに远加したナヌザヌ数
status 動画の状態
accessControl 動画ぞのアクセス制埡
statusプロパティ
value reason 説明
restricted requesterRegion ナヌザヌの地域では利甚できない
limitedSyndication ブラりザ以倖のデバむスでは利甚できない
private 動画ぞのアクセスが制限されおいる (非公開動画)
rejected copyright 動画が著䜜暩を䟵害しおいる
inappropriate 動画に䞍適切なコンテンツが含たれおいる
duplicate 動画がアップロヌド枈みの別の動画ず重耇しおいる
termsOfUse 動画が利甚芏玄に違反しおいる
suspended 動画に関連付けられたアカりントが停止しおいる
tooLong 動画の長さが䞊限の10分を超えおいる
blocked 動画がコンテンツの所有者によりブロックされおいる
failed cantProcess 動画ファむルを倉換できない
invalidFormat 動画のファむルフォヌマットが無効
unsupportedCodec 動画のコヌデックがサポヌトされおいない
empty 動画ファむルが空
tooSmall 動画ファむルが小さすぎる
yt:state - Data API プロトコル - YouTube | Google Developers
accessControlプロパティ
プロパティ 制埡察象
rate 動画の評䟡
comment 動画に぀いおのコメント
commentVote 他のナヌザヌ コメントの評䟡
videoRespond 動画ぞのレスポンス
embed サヌドパヌティのサむトぞの動画の埋め蟌み
syndicate 携垯電話やテレビでの衚瀺
list YouTubeの怜玢結果ぞの衚瀺
yt:accessControl - Reference Guide: Data API Protocol - YouTube | Google Developers