さくらおかひろのり
YouTube の A/B テスト設定、API ないけど Playwright Skills で自動化した
2026年05月05日
要約を生成中...
YouTube Data APIは動画のアップロード・予約投稿・タイトル/サムネ更新まで一通りできます。ただしタイトル/サムネのA/Bテスト設定だけはWeb UI必須。スキーマにエンドポイントが存在しません。
YouTubeは最近サムネに加えてタイトルもA/B比較できるようになりました。最大3案、勝った方を自動採用までやってくれる、地味に強い機能です。ただAPIがないせいで、毎回Studioを手で開いて画像をドラッグして…という手作業に逆戻りしていました。
そこでClaude Code Skills + Playwright CLIで自動化しました。
~/.claude/skills/youtube-abtest/run.sh /tmp/input.json
入力JSONの例:
[
{
"videoId": "txXWWjOIHf4",
"titleB": "B案として登録したいタイトル",
"thumbBPath": "/abs/path/to/thumbnail-b.png"
}
]
これだけでStudioの編集ページに飛んで、A/Bダイアログを開き、タイトルとサムネをB案として登録、保存まで完走します。複数動画を配列で渡せばまとめて処理できます。
自社で運営しているYouTubeチャンネルの最新動画で実演しました。
緑チェックで「タイトルとサムネイルのテストの準備ができました」が出れば成功です。
中で動いているのは、Playwright CLI経由でこんなフローを回しているだけです:
UIに出ている要素を都度snapshotから探してクリックしているだけです。複雑な状態管理はしていません。
このフロー、ログイン済みのChromeにPlaywrightをCDPでattachする仕組みが必要です。そこは別のSkillsで用意してあるので、前回の記事に詳細を書いています:
→ Claude Codeでブラウザ操作するならPlaywright CLI + Skills一択だった
要は/chrome Skillsを起動しておけば、普段使いのChromeのCookieを継承した別プロファイルChromeが立ち上がってattach済みになります。あとはplaywright-cliから自由に操作できます。
実装中に気づいた、地味だけど大事な3点です。
playwright-cliはセキュリティ上、対象ファイルが許可ディレクトリ(~/Downloads/.playwright-cli/)の中にないと弾きます。Skills内では一旦そこにコピーしてからuploadしています。
snapshotで取れる[ref=eXXX]は毎回採番が変わります。テキストマッチ(button "A/B テスト"の行をgrep)で動的に取ります。
A/Bテスト機能はチャンネル要件 + 公開済み動画が前提です。新規チャンネルやscheduled動画では、設定保存はできるけど「対象外」と表示され、要件達成・公開時刻到来後に自動的に走り始めます。Skills側ではこれをエラー扱いせずset_ineligibleステータスでログに残しています。
| status | 意味 |
|---|---|
set | 正常登録 + 要件も達成 |
set_ineligible | 登録完了だが「対象外」(公開後に自動開始) |
already_set | すでに設定済み、skip |
error_no_ab_button | ABボタンが見つからず |
error_validation | 入力検証失敗 |
error_save | 保存ボタンが押せず |
APIでできない領域こそSkillsの出番です。ブラウザ自動化を一度Skillsに閉じ込めておくと、その上に積層的にサイト固有Skills(YouTube Studio / note / Vibely / Slackなど)を作れます。
コメント
まだコメントはありません。