おはようございます。
YouTubeAPIを使って自分のYouTubeチャンネルを見やすくするプロジェクトですが、ようやくキーワード検索機能を実装することができました。
目次
キーワード検索を実装するときにはまったこと
APIのリクエストにqというパラメーターをつけてそのあとにキーワードをいれればよいのですが、ちょっとはまりました。
はまったことの1番目はURLエンコードしなかったこと……とおもったら、実はurlエンコードしなくても大丈夫なことが今、わかりました。なんということでしょう。
本当にはまったのは、レスポンスで返ってくるtotalResultsの数と、itemsの数があわなかったこと。totalResultsは12とかでているのに、itemsには2こしかないということがありました。
当初はurlエンコードしてなかったからな、とおもって即解決するのかとおもいきや、まったく解決しません。
で、自分のリクエストURLの作り方がどこか間違っているのかと思い、いろいろ試したのですが、実はリファレンスのページで、フォームにデータをいれると、リクエストURLと結果を表示してくれる機能があるのですが、そこでいれても同じようにtotalResultsの数とitemsの数があわないことがわかりました。
https://developers.google.com/youtube/v3/docs/search/list?hl=ja
犯人はパラメーターのorderだった!
たしか、時系列に並べるべくorderのパラメータを入れる前はちゃんと表示できたイメージがあったので、リクエストURLからこのorderのパラメーターを外したところ、無事に表示されました。
まとめ
ということで、なんとかキーワードで自分の動画を検索する機能を実装することができました。
ただし、この検索はちょっとイマイチです。どうしてそのキーワードが入ったの?というような結果も表示されます。
あと今後は、最新の動画5つとか、おすすめ動画とか、表示させたいなと思っています。
ということで、引き続きがんばります。
あと、YouTubeAPI V2で今話題の動画とかのフィードを出しているのですが、V3でもここらへんの情報を取得する方法をしらべていきたいと思います。 知っている人いたら、ぜひ、友達になってください。
YouTubeの話題の動画や再生回数の多い動画を表示 – Google AJAX Feed API入門
それから、Facebookで、YouTubeAPI V3を使っている&使いたい人のグループをつくりました。こちらもぜひご参加を!