kanemeate

働きたくない

YouTube APIとか

YouTube APIにはquotaという概念があり、簡単に言えば叩けるAPIのリミットの指標で、叩くAPIによって値が異なる。今はこの値が10000/日となっている(昔は1000000とかあったらしい)。

https://developers.google.com/youtube/v3/determine_quota_cost?hl=ja でざっくり計算できて、videoとかchannnelとかのlistを一項目やると3消費するらしい。要するにこの辺のリクエストを飛ばすなら3000回/日くらいということになる。検索とか投稿とか色々やろうと思うともっと大きいquotaを消費する。ページングがあるAPIの場合、全部拾うならページ分のリクエスト数×quotaが消費されてしまう。

昨日は二種類のpartから情報を取るリクエストをそれぞれ動画ごとに叩くということをやっており、結果として1000動画かそこらでリミットに引っかかってしまった。動画1本につき6quotaを消費していたことになるので、妥当っちゃ妥当。

partもそうだが、idもカンマ区切りで入力できるとちゃんとドキュメントに書いてあり、ちゃんとまとめて取得するように改修した結果、余裕で足りるようになった。1リクエストで50本分の情報が取得でき、まとめて二種類のpart情報を取得すると5quotaになるので、動画50本で5quota消費ということになって単純計算で約60倍の効率(ほんとかなあ)。現状にじさんじの動画投稿数はおよそ15000程度であり、とりあえず問題ない水準になったことは間違いなさそう。

RustでDBのcount関数の値を引っ張ってきた値をi32に格納しようとしたらtype conversion error: cannot convert to or from a Postgres value of type int4とかいうのから逃れられず死んでしまった。最終的に↓みたいな感じになって最悪になった。

conn.query("SELECT ~", &[]).unwrap().len().to_string().parse().unwrap()

ローカルで回してるバッチだから別によい(よくない)。

あとはAPIと評価用アプリって感じか。

にじさんじのおたくならご存知だと思いますが再生数トップはぶっちぎりで笹木は嫌われているでした。

f:id:i_ll:20190925002155p:plain