前提・実現したいこと
YoutubeAPIをいじっています。
「video,channel,playlist」の3つのタイプについて、10件ずつ取得したいです。
発生している問題
APIでは取得情報としてパラメータを渡します。
取得対象は「type」を「video,channel,playlist」と指定できます。
取得件数は「maxResults」を「整数」で指定です。
そこで「10件ずつ」取得すべく
パラメータを?type=video,channel,playlist&maxResults=10
と指定しても、
なんと「合計で10件」しか取得できません。
お試しください
こちらの「実際に試してみる」で試せます。
(読み込みに数秒かかるので、「実際に試してみる」が表示されるまでスクロール等しないでください。)
上の「実際に試してみる」はAPIキー不要でパラメータが入力できるので、以下の値で試してみてください。
パラメータ | 値 |
---|---|
part | snippet |
maxResults | 10 |
q | 猫 ハッピー |
type | video,channel,playlist |
上記入力後、入力枠の下にある青い「EXECUTE」をクリックすると、その下にjsonが表示されます。
jsonのitems.id.kind
の値がyoutube#video
ならvideo
の取得結果ということを示します。
なのでyoutube#video
を10件、youtube#channel
を10件、youtube#playlist
を10件という取得を実現したいです。
それが合計で10件の取得になるとは、一体なんの冗談でしょうか…
現状の対策
使う言語はPHPかJSです。現状の対策としては、
➀PHPのcurlを非同期とし、typeを1つずつ取得する
➁JSのAJAXで、typeを1つずつ取得する
のような方法になります。
しかし➀も➁も結局1つのタイプを3回リクエストしなければなりません。
これを1回で済ませる方法を模索しているわけです。
宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
バージョンはもちろん最新のYouTube Data api v3
です。
あなたの回答
tips
プレビュー