Skip to content
マーケティングとかPythonとか
マーケティングとかPythonとか
  • Home
  • About
  • Blog
マーケティングとかPythonとか

【Python】Youtube APIを使って動画情報取得してみた

Ken Ando, 2024年11月9日

本業マーケティング、趣味プログラミングのKenです。

私は作業中にライブカメラをスクリーンに流しておくのが好きで、よくYoutubeで猫とかリスのライブ映像や海外の街を流しています。

気分によって見る動画を変えているのですが、Youtubeで調べてもアルゴリズムのせいで似た動画しか表示されません。そこでYoutubeのAPIを使って、ライブ配信をしている動画をリスト化してやろうと思い立ちました。

YouTube APIでできること

Youtube APIでは以下の情報を取得できます。

  • 動画情報:タイトル、説明、再生回数、評価数、コメント数、サムネイル画像、公開日、タグ、ライセンス情報など。
  • チャンネル情報:チャンネル名、説明、登録者数、作成した再生リスト、バナー画像など。
  • 再生リスト情報:再生リストのタイトル、説明、動画のリスト、各動画の詳細情報など。
  • コメント情報:動画やチャンネルに投稿されたコメントの内容、投稿者情報、コメントの返信など。
  • 検索結果:特定のキーワードや条件に基づく動画、チャンネル、再生リストの検索結果。

今回は動画IDからタイトル、説明、サムネ画像、タグを取得していきたいと思います。

Youtube APIキーを取得

まずはAPIキーとかを取得します。細かいことを書くのはめんどくさいので、以下ChatGPTにまとめてもらいました。

1. Google Cloud Consoleでプロジェクトを作成

Google Cloud Consoleにアクセスし、Googleアカウントでログインします。

左上のメニューから「プロジェクトを選択」をクリックして新しいプロジェクトを作成します。

2. YouTube Data APIを有効化

プロジェクトを選択した状態で、左側の「APIとサービス」→「ライブラリ」を選択します。

「YouTube Data API v3」を検索し、選択して「有効にする」をクリックします。

3. APIキーの取得

「APIとサービス」→「認証情報」をクリックします。

「認証情報を作成」ボタンをクリックして「APIキー」を選択します。生成されたAPIキーをコピーしておきます(このキーはAPIリクエストで使用します)。

コーディング

YOUTUBE_API_KEY = 'ここにAPIキー'
VIDEO_ID = 'OmWt0efvmNQ'

さっきコピーしたAPIキーを「YOUTUBE_API_KEY」にいれておきます。あと情報を取得したい動画のIDをVIDEO_IDにいれます。

#YouTube APIクライアントの設定
youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)

# 動画情報を取得用関数
def get_video_info(youtube, video_id):
    request = youtube.videos().list(part="snippet,recordingDetails", id=video_id)
    response = request.execute()
    if "items" in response and response["items"]:
        video_info = response["items"][0]
        title = video_info["snippet"]["title"]
        description = video_info["snippet"]["description"]
        thumbnail_url = video_info["snippet"]["thumbnails"]["high"]["url"]
        channel_name = video_info["snippet"]["channelTitle"]
        channel_id = video_info["snippet"]["channelId"]
        channel_url = f"https://www.youtube.com/channel/{channel_id}"  # チャンネルリンク生成
        category_name = get_category_name(video_info["snippet"]["categoryId"])
        tags = video_info["snippet"].get("tags", [])
        location = video_info.get("recordingDetails", {}).get("location", None)

        # 位置情報から場所の名前を取得
        if location:
            location_name = get_location_name(location["latitude"], location["longitude"])
        else:
            location_name = "位置情報なし"

        update_google_sheet(video_id, channel_name, channel_url, category_name, tags, location_name, thumbnail_url)

  • snippet にはタイトル、説明、タグ、チャンネル情報などの基本情報が含まれます。recordingDetails には位置情報が含まれます。
  • responseの中身は
    • title: 動画のタイトル
    • description: 動画の説明
    • thumbnail_url: 動画のサムネイル画像URL(高解像度版)
    • channel_name: 動画をアップロードしたチャンネル名
    • channel_id: チャンネルのID
    • channel_url: チャンネルリンクを生成するために channel_id を利用し、チャンネルURLを構築します
    • category_name: 利用してカテゴリー名を取得
    • tags: 動画に関連付けられたタグのリスト。タグが存在しない場合は空のリスト
    • location: recordingDetails に含まれる位置情報(緯度と経度)。位置情報がない場合は None。
  • update_google_sheet(…)で取得情報をスプレッドシートに追記

自分用メモすぎで、全く優しくない説明ですみません。わからない点があれば、お気軽にコメントください!お手伝いします!

API APIPythonYouTube

投稿ナビゲーション

Previous post
Next post

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

最近の投稿

  • Instagram広告の仕組みとは?費用や種類、成功ポイントを解説
  • 2025年版 Google 広告初心者向けチュートリアル:ステップバイステップガイド
  • クリック課金型広告(PPC広告)とは?基本から成功のポイントまで徹底解説!
  • 【Python】Youtube APIを使って動画情報取得してみた
  • Googleアナリティクス(GA4)管理画面を言語変更するための5ステップ

カテゴリー

  • API
  • GA4
  • Google広告
  • Instagram広告
  • Web広告

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Elit feugiat sit purus varius. Non in turpis tincidunt nulla. Condimentum ultrices nunc odio ante.

©2025 マーケティングとかPythonとか | WordPress Theme by SuperbThemes