Python

YouTubeの再生データで明日の動画スクリプトを自動調整!パフォーマンス分類器の作り方

「動画を毎日自動生成しているけど、どのコンテンツが受けているのか全然フィードバックできていない…」そんな悩みを抱えている方、いませんか? 📊

今回は、YouTubeの再生パフォーマンスデータをもとに動画スクリプトのバイアスを自動調整する分類器の仕組みを、実際の実装アイデアをまじえて解説します。海外エンジニアが実践した面白いアプローチで、自動化チャンネル運営をしている方には特に刺さる内容ですよ!

🎯 どんな仕組みなの?ざっくりイメージ

machine learning dashboard
machine learning dashboard / Photo by ThisIsEngineering via Pexels

イメージとしては、こんな感じです。

  • ✅ 毎日の動画再生データ(視聴回数・クリック率など)を YouTube Data API で取得
  • ✅ そのデータを「好調 / 普通 / 不調」の3クラスに分類する機械学習モデルを作成
  • ✅ 分類結果を翌日のスクリプト生成プロンプトに反映してバイアスを調整

つまり、「昨日うまくいった要素を明日の台本に活かす」という、人間なら当たり前にやるPDCAサイクルをコードで自動化しているわけです。

🔧 実装の核心:パフォーマンス分類器


分類器の部分はシンプルなロジスティック回帰やランダムフォレストで十分機能します。以下のようなコードがベースになります。

# YouTube動画パフォーマンス分類器(簡易版)
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import LabelEncoder

# --- 動画データの読み込み(YouTube Data APIで取得済みと仮定)---
df = pd.DataFrame({
    'views':        [1200, 300, 8500, 450, 9200],
    'ctr':          [0.05, 0.02, 0.08, 0.03, 0.09],  # クリック率
    'avg_watch_sec':[180,   60,  240,   90,  260],    # 平均視聴時間(秒)
    'label':        ['good', 'bad', 'good', 'bad', 'good']  # 手動ラベル
})

# --- ラベルをエンコード ---
le = LabelEncoder()
df['label_enc'] = le.fit_transform(df['label'])

X = df[['views', 'ctr', 'avg_watch_sec']]
y = df['label_enc']

# --- モデル学習 ---
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X, y)

# --- 新しい動画データで予測 ---
new_video = pd.DataFrame([{'views': 700, 'ctr': 0.04, 'avg_watch_sec': 150}])
pred = model.predict(new_video)
print(f"パフォーマンス予測: {le.inverse_transform(pred)[0]}")

ポイントをまとめるとこんな感じです。

  • 📌 特徴量は「再生数・CTR・平均視聴時間」の3つでOK(シンプルに始めましょう)
  • 📌 ラベルは最初は手動で付けて、データが溜まったら自動化する流れが現実的
  • 📌 RandomForestClassifier は少ないデータでも比較的安定して動く優れもの

📝 分類結果をスクリプト生成に反映する方法


分類結果をプロンプトに入れ込む部分は、こんなイメージで実装できます。

# 分類結果に応じてプロンプトのバイアスを変える
def build_prompt(performance_label: str, topic: str) -> str:
    bias_map = {
        'good': "視聴者の反応が良かった要素(テンポ・具体例・比較)を多く盛り込んでください。",
        'bad':  "前回は反応が薄かったため、導入部分を短くし、結論から入る構成にしてください。",
        'neutral': "バランスの取れた構成で作成してください。"
    }
    bias_instruction = bias_map.get(performance_label, "")
    prompt = f"""
以下のトピックで動画スクリプトを作成してください。
トピック: {topic}
構成の方針: {bias_instruction}
"""
    return prompt

result_label = 'good'  # 分類器の出力
print(build_prompt(result_label, "Pythonの型ヒントの使い方"))

まとめ

今回のポイントは、「過去のパフォーマンスデータを機械学習で分類し、翌日のコンテンツ生成プロンプトに自動反映する」というフィードバックループの構築です。

自動化チャンネル運営に限らず、コンテンツ制作 × 機械学習の組み合わせは今後もっと広がっていきそうですよね。まずはシンプルな3クラス分類から、ぜひ試してみてください! 🚀

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

もしも

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

FastAPIでWebAPI開発を実践的に学ぶ

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

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