🔖

Youtube動画の通常動画かshorts動画かどうかの判定

2022/09/03に公開

現状、Youtube Data API v3でやろうとすると、
shorts動画の判定60秒以内だと、
通常動画の60秒以内のものも含まれてしまう。
動画の表示サイズで判定しようにも、
動画オーナーでないと値の取得すら出来ない。
しょうがないので、
videoIDをすべて、

https://youtube.com/shorts/videoid

にして、リダイレクトされたURLがどうかで判定することに。
shorts動画ならリダイレクトされずにURLはそのまま。
もし、通常動画ならリダイレクトされて、

https://youtoube.com/watch?v=<videoid>

に変わるのでそれで判別できるよと。
海外フォーラムでも同じこと言われてました。
how do i get youtube shorts from youtube api data v3 - Stack Overflow

一つ気をつけるところがあって、
Google Apps Scriptで書いてたので、
UrlFetchAppでリダイレクトを調べようとすると、
オプション入れないと全部302になってしまったので、
What Google AppsScript method is used to get the URL of a redirect? - Stack Overflow
この投稿を参考に、リダイレクト先のURLを取得してくるようにした。
ResponseCodeが200になるまで繰り返してくれる。
これで最終的なリダイレクト先のURLを取得して、
"shorts"がURLに含まれてたらshorts動画。
入ってなければ通常の動画という判定にした。

2022年9月3日現在
他に良い方法があると良いんだけどなあ。
いちいちUrlFetchのレスポンスコード取得すると時間かかるのが問題。

お役に立てたらぜひバッジお願い致します。

Discussion