ChatGPTに教えて貰いながらYoutubeのチャンネル登録者数を取得するコードを作成してみました。
最新バージョンのPythonをインストール
www.python.org
YoutubeのAPIキーを取得
qiita.com
コマンドプロンプトで以下コマンドを実行してパッケージをインストール
pip install google-api-python-client
今回は大空スバルさんのYoutubeチャンネル登録者数を取得してみます
https://www.youtube.com/@OozoraSubaru
このURLの形式の場合、ハンドル(@マークの後ろのOozoraSubaru)からチャンネルIDを取得します
from googleapiclient.discovery import build
def get_channel_id_by_handle(api_key, handle):
youtube = build('youtube', 'v3', developerKey=api_key)
request = youtube.search().list(
part='snippet',
q=handle,
type='channel'
)
response = request.execute()
for item in response['items']:
if 'snippet' in item and 'channelId' in item['snippet']:
return item['snippet']['channelId']
return None
# APIキーとハンドルを設定します
api_key = 'API_KEY' # APIキーを設定
handle = 'OozoraSubaru' # ハンドル名を設定
# チャンネルIDを取得します
channel_id = get_channel_id_by_handle(api_key, handle)
if channel_id:
print(f"Channel ID for {handle}: {channel_id}")
else:
print(f"Channel ID for {handle} not found.")
メモ帳やエディタ等で上記コードを拡張子.pyにして保存します。
api_key = 'API_KEY'の部分にYoutubeのAPIキーを入力、
handle = 'OozoraSubaru'の部分にハンドル名を入力してから保存して下さい。
コマンドプロンプトで"python コードを保存したファイル名.py"で実行するとチャンネルIDを取得できます。
取得したチャンネルIDを使ってchannel_ids = の後ろに入れます。api_key=も先ほどと同様に入力します。
from googleapiclient.discovery import build
def get_subscriber_count(api_key, channel_ids):
# YouTube Data APIのサービスをビルドします
youtube = build('youtube', 'v3', developerKey=api_key)
subscriber_counts = {}
for channel_id in channel_ids:
# チャンネル情報を取得します
request = youtube.channels().list(
part='statistics',
id=channel_id
)
response = request.execute()
if response['items']:
channel_info = response['items'][0]
subscriber_count = channel_info['statistics']['subscriberCount']
subscriber_counts[channel_id] = int(subscriber_count)
else:
subscriber_counts[channel_id] = None
return subscriber_counts
# APIキーとチャンネルIDのリストを設定します
api_key = 'API_KEY' # APIキーを設定
channel_ids = ['UCvzGlP9oQwU--Y0r9id_jnA', 'UCvzGlP9oQwU--Y0r9id_jnA', 'UCvzGlP9oQwU--Y0r9id_jnA'] #チャンネルIDを設定
# チャンネル登録者数を取得します
subscriber_counts = get_subscriber_count(api_key, channel_ids)
# 結果を表示します
for channel_id, subscriber_count in subscriber_counts.items():
print(f"Channel ID: {channel_id}, Subscriber Count: {subscriber_count}")
そうすると以下のようにチャンネル登録者数を取得できました。
d:\>python get_youtube_subscribers.py
Channel ID: UCvzGlP9oQwU--Y0r9id_jnA, Subscriber Count: 1680000
この先は適当にコードを改変してみて結果の出力を変えてみたり、他の情報も取得してみたり、使いやすいようにしてみようと思います。
にしてもAPIなんて初めて叩いたし、Pythonのコードなんてまともに実行した事なかったけど、ChatGPTに教えて貰いながら分からないところとかエラーの原因とか聞いてやったら5分くらいで出来たんだがChatGPT凄すぎないか???あまりにも優秀すぎる...