【メモ】Youtube API Data (v3)のクオータについて


この文章は自分用のメモです

Youtube API Data v3クオータドキュメント
YoutubeのAPI利用時にはリクエストとは別の概念の利用制限がある。
それが、クオータと呼ばれるQueryっぽい感じの単位。
別にユニットと呼ばれる単位もある。
Googleのコンソールから利用申請をしてAPIキーを取得すると今現在(2018/03/22)1,000,000ユニット/user/day与えられる。これは利用申請で拡張することができるみたい。

各リソースの ID を取得するだけの単純な読み取り操作の場合、コストは約 1 ユニットです。
~~~
videos.list リクエストのコストは約 21 クォータ ユニットになります。

こんな感じのドキュメントがあるので実際どうなのかを検証してみた。

検索ワード(ほげふが)にマッチする動画をアップロード順で最新50件の情報を取得するスクリプト

from googleapiclient.discovery import build
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=develop_key)

# 検索文字にマッチするidを取得
id_response = youtube.search().list(
    q='ほげふが',
    part="id",
    fields="items(id(videoId))",
    safeSearch="strict",
    order="date",
    type='video',
    maxResults=50
).execute()

# responseからidを取り出す
video_id = 'id_responseからvideo_idを取り出す'

# idからYoutubeの詳細な情報(タイトルや説明文、viewCountなど)を取得
videos_response = youtube.videos().list(
    part='id,snippet,statistics,contentDetails',
    id=video_id
).execute()

実際にコードを書いてリクエストを実行してみた。
Googleコンソールで確認してみたら、上記コードだけで 109ユニット 使用していた。
ちなみに内訳は

API 利用ユニット数
youtube.search().list 101
youtube.videos().list 8

もしかしたら、環境や検索ワードによって違うかもしれないのであくまで参考までに。

感想

ユニットの対応表が欲しい。
あと、GoogleAPIのドキュメントはいつ読んでも天才向けに書かれているなと思う。一般人には読み解くのにかなり時間がかかってキツイ。