【目的】:登録者数が少ないVtuberの配信を検索する
【利用】:YouTube Data API v3
Youtube Data APIの使い方は他記事をご参照ください。
【参考にした記事】
https://qiita.com/k8uwall/items/b3a2c09d15f827fe888e
https://qiita.com/Charlesmiwakuno/items/78caaaf5b83559843d44
【実装コード】
from apiclient.discovery import build
YOUTUBE_API_KEY = 'ここに取得したAPIキー' #APIキー
CHANNEL_MIN = 0 #チャンネル登録者数下限
CHANNEL_MAX = 1000 #チャンネル登録者数上限
QUERY = "歌枠 and Vtuber" #検索キーワード
youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)
def get_video_info(part, q, order, type, eventType, maxResults):
search_response = youtube.search().list(part=part, q=q, order=order, type=type, eventType=eventType, maxResults=maxResults).execute()
return search_response['items']
def youtube_channel_detail(channel_id):
search_response = youtube.channels().list(
part='snippet,statistics',
id=channel_id,
).execute()
return search_response['items'][0]
if __name__ == '__main__':
video_out = get_video_info(part='snippet',q=QUERY,order='date',type='video', eventType='live',maxResults=50)
for item in video_out:
video_id = item['id']['videoId']
channel_id = item['snippet']['channelId']
details = youtube_channel_detail(channel_id)
if len(details) == 0:
continue
title = details['snippet']['title']
count = details['statistics']['subscriberCount']
if CHANNEL_MIN < int(count) < CHANNEL_MAX:
print("タイトル:" + title)
print("チャンネル登録者数:" + count)
print("https://www.youtube.com/watch?v=" + video_id)
【実行結果(例)】
タイトル:<チャンネル名1>
チャンネル登録者数:331
https://www.youtube.com/watch?v=aaaaaaaaaaaa
タイトル:<チャンネル名2>
チャンネル登録者数:283
https://www.youtube.com/watch?v=iiiiiiiiiiii
【コード解説】
キーワードで生配信を検索して、チャンネル登録者数で絞って表示する仕組み
【感想】
Youtube Data APIは無料だが、APIを利用するためにGoogle Cloudに登録する必要があり、そのGoogle Cloudが有料だった。現在(2024年11月13日時点)では、Google Cloudが無料で試用できる期間があったため、無料で実験をした。
APIを利用したクエリの発行には上限があり、そこまで何回も実行することはできなそうである。
実験結果としては、求めていたチャンネル登録者数が少ないVtuberを検索することができたので良し(*´ω`)