インフラエンジニアは人間じゃない

インターネットの闇、炎上ネタ、迷惑メールや詐欺、あらゆる危険な情報を扱うブログです。

MENU

【備忘録】Pythonを使ってYoutubeのチャンネル登録者数を取得する方法(サンプルコード有り)

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凄すぎないか???あまりにも優秀すぎる...