質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

YouTube

YouTubeとはユーザーがビデオをアップロード・共有・閲覧できるビデオ共有ウェブサイトです。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

795閲覧

YoutubeAPIで、「n件ずつ」の「複数タイプ」を取得

waitapi

総合スコア4

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

YouTube

YouTubeとはユーザーがビデオをアップロード・共有・閲覧できるビデオ共有ウェブサイトです。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/01/05 05:50

編集2022/01/12 10:55

前提・実現したいこと

YoutubeAPIをいじっています。

「video,channel,playlist」の3つのタイプについて、10件ずつ取得したいです。

発生している問題

APIでは取得情報としてパラメータを渡します。
取得対象は「type」を「video,channel,playlist」と指定できます。
取得件数は「maxResults」を「整数」で指定です。

そこで「10件ずつ」取得すべく
パラメータを?type=video,channel,playlist&maxResults=10と指定しても、
なんと「合計で10件」しか取得できません。

お試しください

こちらの「実際に試してみる」で試せます。

(読み込みに数秒かかるので、「実際に試してみる」が表示されるまでスクロール等しないでください。)

上の「実際に試してみる」はAPIキー不要でパラメータが入力できるので、以下の値で試してみてください。

パラメータ
partsnippet
maxResults10
q猫 ハッピー
typevideo,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です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/05 06:03

maxResults => 検索結果の最大件数 type or 条件(もしくは and 条件) なにかAPIの説明で問題があるならAPIの発行元にいったほうがいいよ
waitapi

2020/01/05 06:25

よく理解できないです。 maxResult以外に件数を指定するパラメータはないのでは? 論理演算子をtypeに使うことで何が解決しますでしょうか? 発行元に行けと言われると…(笑)
gouf

2020/01/05 07:32

video,channel,playlist の3種の結果を得たいのであれば; タイプの指定を1つに絞って3つのリクエストに分けた場合、なにか変化は見られますか?
waitapi

2020/01/05 07:37

もちろん3つに分ければ 「?type=video&maxResults=10」からは「youtube#videoを10件」 「?type=channel&maxResults=10」からは「youtube#channelを10件」 「?type=playlist&maxResults=10」からは「youtube#playlistを10件」 が無事取得できます。 このことは質問にある「実際に試してみる」でお試しいただける通りです。
gouf

2020/01/05 07:50

問題としている部分がわかりません あくまで提供されている API なので、ドキュメントに書かれている内容や実際の振る舞いがすべてではないのでしょうか
waitapi

2020/01/05 08:13 編集

なるほど、コメントどうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問