トーク:YouTube

提供:エケペディア
ナビゲーションに移動 検索に移動

Youtubeチャンネルの情報取得

@管理者殿、BOT管理者殿、関係者殿各位

Youtubeチャンネルのタイトル、登録者数、再生回数の取得するサンプルコードを記載しましたので、運用時の参考になれば幸いです。
ご確認後、削除(白紙化)のほど、お願い致します。
(小生は、Web系のエンジニアではないので、Pythonで失礼します。)


APIのインストール:

pip install google-api-python-client


Pythonのコード:

from googleapiclient.discovery import build

# Youtube Data API v3のAPIキーを取得が必要
# https://console.cloud.google.com/
YOUTUBE_API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxx'

def youtube_channel_detail(channel_id, api_key):
    api_service_name = 'youtube'
    api_version = 'v3'
    youtube = build(api_service_name, api_version, developerKey=api_key)
    search_response = youtube.channels().list(
        part='snippet,statistics',
        id=channel_id,
    ).execute()

    return search_response['items'][0]


def main():
    # 松井珠理奈さんのチャンネルは、チャンネルの登録者数を非公開にしているため、テストケースとして利用
    d = youtube_channel_detail('UCA6XWTTtC2f88M2xpmhLRBg', YOUTUBE_API_KEY)

    # プロパティの参考ページ
    # https://developers.google.com/youtube/v3/docs/channels?hl=ja

    # チャンネルのタイトルを取得
    title = (d['snippet']['title'])
    
    # チャンネルの登録者数(万人)を取得
    # チャンネルの登録者数を非公開を判定
    if (d['statistics']['hiddenSubscriberCount']):
        subscriberCount = "非公開"
    else:
        subscriberCount = str(int(d['statistics']['subscriberCount']) / 10000)

    # チャンネルの再生回数を取得
    viewCount = (d['statistics']['viewCount'])

    # チャンネルのタイトルを表示
    print(title)
    # チャンネルの登録者数(万人)を表示
    print(subscriberCount)
    # チャンネルの再生回数を表示
    print(viewCount)
-----Riyosya0922 (トーク) 2020年11月8日 (日) 12:09 (JST)
{コメント}とりあえず、Riyosya0922さんの加筆分について、タイトルと署名を追加しました。また、コメントとしては以下の課題をあげときます。TwitterInstagramと比較すると手間が煩雑なのとセキュリティリスクがあります。
  • Youtube Data v3 API を利用するためには、こちらのやり方のようにGoogle のサービスを利用するために、48pediaのオーナーである「48wiki」さんに、API Keyを登録していただかないといけません。
  • API Key を使った呼び出しは無料であるとはいえ、上限が決まっている(無料だと1日10,000回?だったかと)ので、YouTubeのデータはページ呼び出しごとにAPIを叩くのではなく、1日1回APIをバッチ処理で叩いて、登録者数など値をどこかに保存して置く必要があります。で、({{Youtube登録者数:ID}}みたいにテンプレを使って呼び出すのが理想でしょうね。)
  • (これがやっかい)API Key 登録は、他の人に悪用されないように、48wikiさん以外から見えないようにする必要があります。うっかり、「https:://48pedia.org/XXX/YYY 」と叩いたら、誰からでも直接見えてしまうと、悲惨では済まないです。--Motodai (トーク) 2020年11月8日 (日) 22:22 (JST)