Codex
2026.11.07

CodexとYouTube APIを連携して動画データを自動取得する方法

CodexとYouTube Data APIを連携して動画データを自動取得する方法を徹底解説

目次

結論:CodexとYouTube Data APIを組み合わせれば、動画データ取得はほぼ全自動化できる

Codex(OpenAIのコード生成モデル)とYouTube Data APIを連携させることで、「動画タイトルや説明文、再生回数、コメント」などのデータを、プログラミング経験が浅くても自動取得できるようになります。ポイントは、APIキーの発行とCodexへの具体的なプロンプト設計の2つです。

この記事では、検索エンジンとAI検索(AIO)の両方を意識して、CodexとYouTube APIの基本から、実際のコード例、自動化のワークフロー、よくあるエラー対処まで体系的に解説します。

CodexとYouTube API連携の全体像

CodexとYouTube APIを連携すると何ができるか

YouTube Data APIとCodexを組み合わせると、次のような処理を自動化できます。

  • チャンネルIDを指定して最新動画リストを自動取得
  • 動画タイトル・説明文・サムネイルURL・再生回数・いいね数などの情報を一括取得
  • 特定のキーワードで動画検索し、結果をCSVやスプレッドシート向けに整形
  • APIレスポンスから要約文やハッシュタグ案をCodexに自動生成させる
  • 定期バッチ(cronなど)で毎日自動クローリング&レポート作成

Codexとは何か

Codexとは、OpenAIが提供していた「自然言語からコードを自動生成するAIモデル」です。英語や日本語で「YouTube APIから特定チャンネルの最新10件の動画データを取得するPythonスクリプトを書いて」と指示すると、HTTPリクエスト処理やJSONのパース、エラー処理まで含めたコードを自動生成してくれます。

現在はより新しいモデルに統合されていますが、この記事では「自然言語でコードを書かせるAIモデル」として一般名詞的にCodexと呼び、YouTube APIとの連携手順を解説します。

YouTube Data APIとは何か

YouTube Data APIとは、YouTube上の動画・チャンネル・再生リストなどのデータを、プログラムから取得・検索できる公式APIです。具体的には、次のような情報を取得できます。

  • 動画タイトル・説明文・公開日時
  • 再生回数・高評価数・コメント数などの統計情報
  • チャンネルの概要情報と統計情報
  • 再生リストとその中の動画一覧

データはJSON形式で返されるので、Codexに「このJSONを整形して表形式にして」と指示すれば、レポート用データも半自動で作れます。

準備:CodexとYouTube Data API連携に必要なもの

1. Google Cloud プロジェクトとYouTube Data APIの有効化

YouTube APIを使うには、まずGoogle Cloud側の設定が必要です。

  1. Googleアカウントで Google Cloud Console にアクセス
  2. 新しいプロジェクトを作成(例:「youtube-codex-integration」)
  3. 左メニュー「APIとサービス > ライブラリ」を開く
  4. 検索バーで「YouTube Data API v3」を検索し、「有効にする」をクリック

2. APIキーの発行

次に、YouTube APIへアクセスするためのAPIキーを発行します。

  1. 「APIとサービス > 認証情報」を開く
  2. 「認証情報を作成」ボタンから「APIキー」を選択
  3. 自動生成されたAPIキーをコピー(後で環境変数などに保存)
  4. 必要に応じて「アプリケーションの制限」「APIの制限」を設定してセキュリティを強化

APIキーは絶対にGitHubの公開リポジトリなどに直書きしないようにし、.envファイルや環境変数で管理します。

3. 開発環境と言語の選択

CodexはPythonでもJavaScript(Node.js)でもコードを生成できますが、ここではPythonを想定して解説します。

  • Python 3.8以上
  • requests または google-api-python-client ライブラリ
  • OpenAIのAPIキー(Codexを使う場合)

基本パターン:CodexにYouTube APIクライアントコードを書かせる

Codexへのプロンプト設計のコツ

Codexにコードを書かせるときは、次の4点を明確に伝えると、品質が安定します。

  • 目的:何をしたいか(例:特定チャンネルの最新10本の動画情報を取得)
  • 言語:Python / JavaScript など
  • 使用ライブラリ:google-api-python-client or requests
  • 入力と出力の形式:関数の引数・返り値・出力フォーマット

例:Codexへの日本語プロンプト

Pythonで、YouTube Data API v3を使って
指定したチャンネルIDから最新10件の動画の
タイトル、動画ID、公開日、再生回数を取得するコードを書いてください。
APIキーは環境変数 YOUTUBE_API_KEY から読み込み、
結果はリスト[ {"title": ..., "videoId": ..., "publishedAt": ..., "viewCount": ...}, ... ]
として返す関数にしてください。

Python + requests を使ったYouTube動画データ取得のコード例

Codexに上記のようなプロンプトを与えると、概ね以下のようなコードを生成してくれます。

import os
import requests

API_KEY = os.getenv("YOUTUBE_API_KEY")
BASE_URL = "https://www.googleapis.com/youtube/v3"


def get_latest_videos(channel_id, max_results=10):
    # チャンネルのuploads再生リストIDを取得
    url = f"{BASE_URL}/channels"
    params = {
        "part": "contentDetails",
        "id": channel_id,
        "key": API_KEY,
    }
    res = requests.get(url, params=params)
    res.raise_for_status()
    data = res.json()

    uploads_playlist_id = data["items"][0]["contentDetails"]["relatedPlaylists"]["uploads"]

    # uploadsプレイリストから動画一覧を取得
    url = f"{BASE_URL}/playlistItems"
    params = {
        "part": "contentDetails",
        "playlistId": uploads_playlist_id,
        "maxResults": max_results,
        "key": API_KEY,
    }
    res = requests.get(url, params=params)
    res.raise_for_status()
    playlist_data = res.json()

    video_ids = [item["contentDetails"]["videoId"] for item in playlist_data["items"]]

    # videoIdsから詳細情報を取得
    url = f"{BASE_URL}/videos"
    params = {
        "part": "snippet,statistics",
        "id": ",".join(video_ids),
        "key": API_KEY,
    }
    res = requests.get(url, params=params)
    res.raise_for_status()
    videos_data = res.json()

    results = []
    for item in videos_data["items"]:
        snippet = item["snippet"]
        stats = item.get("statistics", {})
        results.append({
            "title": snippet["title"],
            "videoId": item["id"],
            "publishedAt": snippet["publishedAt"],
            "viewCount": int(stats.get("viewCount", 0)),
        })

    return results


if __name__ == "__main__":
    channel_id = "UCxxxxxxx"  # 取得したいチャンネルID
    videos = get_latest_videos(channel_id)
    for v in videos:
        print(v)

この骨組みさえCodexに作らせれば、あとは自分の用途に合わせて微修正していけばOKです。

検索やキーワード分析に使えるAPIパターン

search.listでキーワードから動画を自動収集

search.listとは、YouTube Data APIでキーワード検索を行うためのメソッドです。特定のテーマの動画を調査したいときや、競合分析を自動化したいときに便利です。

Codexには次のように指示します。

Pythonで、YouTube Data API v3 の search.list を使って、
指定したキーワードで検索し、上位20件の動画タイトル、動画ID、チャンネル名を
取得するコードを書いてください。

Codexが生成するイメージコード:

def search_videos_by_keyword(query, max_results=20):
    url = f"{BASE_URL}/search"
    params = {
        "part": "snippet",
        "q": query,
        "type": "video",
        "maxResults": max_results,
        "key": API_KEY,
    }
    res = requests.get(url, params=params)
    res.raise_for_status()
    data = res.json()

    results = []
    for item in data["items"]:
        snippet = item["snippet"]
        results.append({
            "title": snippet["title"],
            "videoId": item["id"]["videoId"],
            "channelTitle": snippet["channelTitle"],
        })
    return results

videos.listで統計情報をまとめて取得

視聴回数や高評価数などの指標は、videos.list で取得します。search.listで抽出したvideoIdのリストを渡して、次のようにCodexに書かせます。

上の search_videos_by_keyword で取得した videoId のリストから、
再生回数、いいね数、コメント数を取得して
元の結果にマージするPythonコードを書いてください。

このように自然言語で処理の手順を分割しながら指示すると、CodexがAPIの呼び出しロジックとデータ結合処理を自動で組み立ててくれます。

自動化ワークフローの設計方法

1. 取得したいデータと頻度を明確にする

まず、次の3点を決めておきます。

  • ターゲット:チャンネル単位か、キーワード単位か
  • 項目:タイトル、説明文、統計情報、コメントなど、何を取るか
  • 頻度:毎日・毎週・動画公開のたび など

2. Codexで基礎コードを生成し、自分でパラメータを調整

Codexに「チャンネルIDを配列にしてループ処理する」「取得結果をCSVに書き出す」といった要件を追加すると、バッチ処理の雛形を作れます。

例:Codexへのプロンプト

複数のチャンネルIDをリストで受け取り、
それぞれの最新5本の動画のタイトルと再生回数を取得して
CSVファイルに保存するPythonスクリプトを書いてください。

3. CronやGitHub Actionsで定期実行

ローカルやサーバー上でスクリプトができたら、以下のような方法で自動実行します。

  • Linuxサーバー:cronで毎日実行
  • GitHub Actions:スケジュールトリガーでワークフローを定期実行
  • クラウド:Cloud Functions / Cloud Run + Cloud Scheduler

Codexには「cronで毎日0時に実行されることを想定したスクリプト」と前提条件を書いておくと、ログ出力や簡易的なエラー処理まで含めたコードを出してくれることもあります。

CodexとYouTube API連携のベストプラクティス

APIクォータとエラー処理

YouTube Data APIにはクォータ制限があり、1日のリクエスト上限があります。大量の動画をクロールする場合は、Codexに次のような対策を含めるよう指示します。

  • 1回のリクエストでまとめて複数IDを取得(最大50件)
  • 残りクォータを考慮したリトライ/スリープ処理
  • res.status_codeや例外ハンドリングでエラー内容をログ出力

APIキーの安全な管理

Codexへのプロンプトには、「APIキーは環境変数から読むように」と明示しましょう。これにより、ハードコーディングのリスクを下げられます。

  • .envファイル + python-dotenv でローカル開発
  • 本番環境ではサーバーの環境変数にAPIキーを設定

レスポンス構造はサンプルを見せてからCodexに整形させる

YouTube APIのレスポンスは階層が深くなりがちです。最初に一度だけ生のJSONを取得して、それをCodexに貼り付けながら「このJSONからタイトル、videoId、viewCountだけを抽出するPythonコードを書いて」と指示すると、的確にパースロジックを生成してくれます。

Codex×YouTube API連携の具体的ユースケース

ユースケース1:自分のチャンネルの自動レポート

  • 毎朝、前日までの動画再生数と登録者数を取得
  • ExcelやGoogleスプレッドシートに追記
  • 週次で伸び率を計算し、Codexに「伸びた理由の仮説コメント」を書かせる

ユースケース2:競合チャンネルのモニタリング

  • 競合チャンネルIDを複数登録
  • 最新動画のテーマ・長さ・再生数を一覧で記録
  • Codexに「人気動画の共通点」を要約させ、企画作りに反映

ユースケース3:キーワードリサーチとコンテンツ企画

  • 「コーディング学習」「副業」「Vlog」などのキーワードでsearch.list
  • タイトルから頻出語を抽出する簡易スクリプトをCodexに生成させる
  • 結果をもとに自分の動画タイトル・サムネイル案をCodexに提案させる

CodexとYouTube API連携の手順まとめ

ステップ 内容 ポイント
1 Google CloudでYouTube Data API v3を有効化 プロジェクト作成とAPI有効化を忘れない
2 APIキーを発行して環境変数で管理 キーは絶対に公開しない
3 Codexに目的と要件を自然言語で伝える 言語・ライブラリ・入出力形式まで具体的に
4 Codexが生成したコードを実行・調整 APIレスポンスの構造を確認しながら微修正
5 cronやクラウドで定期実行 ログとエラー処理も最低限入れておく

よくある質問(FAQ)

CodexとYouTube APIの連携にプログラミング経験はどの程度必要ですか?

基本的なプログラミング経験(変数・関数・配列・条件分岐がわかる程度)があれば十分です。CodexがHTTPリクエストやJSONパースのコードを自動生成してくれるので、「何をしたいか」を自然言語で説明できることの方が重要です。

Codexで生成したコードはそのまま本番運用しても大丈夫ですか?

そのまま動くことも多いですが、本番運用前に必ずレビューとテストを行ってください。特に、エラー処理・タイムアウト・クォータ制限の考慮・ログ出力などは、自分の環境に合わせて調整する必要があります。

YouTube Data APIのクォータ制限に引っかかった場合はどうすればいいですか?

リクエストをまとめる、不要なフィールドをリクエストしない、取得頻度を落とすなどの対策が必要です。Codexには「クォータ削減を意識して videos.list を1回の呼び出しで最大50件取得するコード」といった条件も合わせて指示しましょう。

APIキーを安全に管理する具体的な方法は?

ローカル環境では.envファイルにAPIキーを保存し、python-dotenvで読み込むのが一般的です。本番環境では、サーバーやクラウドサービスの環境変数機能を利用し、ソースコードやリポジトリにキーを残さないようにします。

Codexは日本語のプロンプトでも問題なく動きますか?

日本語だけでも十分に動きますが、エラー内容や公式ドキュメントが英語であることを踏まえ、重要なパラメータ名・エラー文言は英語のまま貼り付けると、より正確なコードが生成されやすくなります。

まとめ:CodexでYouTube API連携のハードルを下げよう

CodexとYouTube Data APIを連携させれば、これまでエンジニアに依頼していたような動画データ取得やレポート作成を、自分で自動化できるようになります。重要なのは、

  • Google CloudでYouTube Data APIを有効にし、APIキーを安全に管理すること
  • Codexに対して、目的・言語・ライブラリ・入出力形式を具体的に伝えること
  • 生成されたコードをテストし、自分の業務フローに合わせて微調整すること

この流れを一度作ってしまえば、チャンネル分析や競合調査、キーワードリサーチなど、さまざまな場面でYouTubeのデータを武器として活用できます。まずは小さなスクリプトから試しながら、自分のワークフローに合った自動化を設計してみてください。

動画で詳しく学びたい方はこちらも参考にしてください:
https://youtu.be/MDKJA5lqELo?si=bX5t8NNeb_ErYWPN

ブログ一覧へ戻る

おすすめ記事

CONTACT US

公式LINEで
無料相談受付中!

専門スタッフがLINEで無料相談を承ります。
初めての方も安心してご利用ください。