(移行しました!) タグ: 白紙化 |
細 (コメントの修正) |
||
(2人の利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
== Youtubeチャンネルの情報取得 == | |||
@管理者殿、BOT管理者殿、関係者殿各位 | |||
Youtubeチャンネルのタイトル、登録者数、再生回数の取得するサンプルコードを記載しましたので、運用時の参考になれば幸いです。<br> | |||
ご確認後、削除(白紙化)のほど、お願い致します。<br> | |||
(小生は、Web系のエンジニアではないので、Pythonで失礼します。)<br> | |||
'''APIのインストール:''' | |||
:<code>pip install google-api-python-client</code> | |||
'''Pythonのコード:''' | |||
<syntaxhighlight lang="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) | |||
</syntaxhighlight> | |||
::-----[[利用者:Riyosya0922|Riyosya0922]] ([[利用者・トーク:Riyosya0922|トーク]]) 2020年11月8日 (日) 12:09 (JST) | |||
:::'''{コメント}'''とりあえず、Riyosya0922さんの加筆分について、タイトルと署名を追加しました。また、コメントとしては以下の課題をあげときます。[https://stackoverflow.com/questions/4084909/how-to-get-a-count-of-followers-from-twitter-api-and-trendline Twitter]や[https://stackoverflow.com/questions/39822860/grab-instagram-follower-count/39842490 Instagram]と比較すると手間が煩雑なのとセキュリティリスクがあります。 | |||
:::* Youtube Data v3 API を利用するためには、[https://developers.google.com/youtube/v3/getting-started?hl=ja こちらのやり方]のようにGoogle のサービスを利用するために、48pediaのオーナーである「48wiki」さんに、API Keyを登録していただかないといけません。 | |||
:::* API Key を使った呼び出しは無料であるとはいえ、上限が決まっている(無料だと1日10,000回?だったかと)ので、YouTubeのデータはページ呼び出しごとにAPIを叩くのではなく、1日1回APIをバッチ処理で叩いて、登録者数など値をどこかに保存して置く必要があります。で、(<nowiki>{{Youtube登録者数:ID}}</nowiki>みたいにテンプレを使って呼び出すのが理想でしょうね。) | |||
:::* (これがやっかい)API Key 登録は、他の人に悪用されないように、48wikiさん以外から見えないようにする必要があります。うっかり、「<nowiki>https:://48pedia.org/XXX/YYY </nowiki>」と叩いたら、誰からでも直接見えてしまうと、悲惨では済まないです。--[[利用者:Motodai|Motodai]] ([[利用者・トーク:Motodai|トーク]]) 2020年11月8日 (日) 22:22 (JST) |
2020年11月8日 (日) 22:40時点における最新版
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と比較すると手間が煩雑なのとセキュリティリスクがあります。