トーク: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さんの加筆分について、タイトルと署名を追加しました。また、コメントとしては以下の課題をあげときます。TwitterやInstagramと比較すると手間が煩雑なのとセキュリティリスクがあります。
- 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)
- {コメント}とりあえず、Riyosya0922さんの加筆分について、タイトルと署名を追加しました。また、コメントとしては以下の課題をあげときます。TwitterやInstagramと比較すると手間が煩雑なのとセキュリティリスクがあります。