業務の自動化には、だいたい3つの選択肢があります。ノーコードツール、API直叩き、そしてその中間。この検証は「中間がちょうどいい場面がある」という仮説の確認です。
GAS(Google Apps Script)とスプレッドシートでYouTubeのトレンド動画リサーチを自動化し、図形ボタンを押すだけで非エンジニアも実行できる形まで持っていきました。初期設定は約10分、費用は0円です。
この検証の概要
検証時期 | 2026年5月3日〜(検証中) |
|---|---|
構成 | GAS拡張サービス経由の YouTube Data API v3 + スプレッドシート + 図形ボタン |
やりたかったこと | トレンドキーワードに対する人気動画リサーチの自動化/非エンジニアでも実行可能な配布形態にする |
初期設定時間 | 約10分(スプシ作成〜API有効化〜サンプル実行) |
費用 | 0円(GAS / YouTube Data API いずれも無料枠内) |
効果 | 1キーワードあたりの手動リサーチ30分 → 数秒 |
判定 | 条件付きで導入可 |
結論:「画数がちょうどいい」ラインが存在する
この検証の仮説は、次のものでした。
- YouTube Data APIを直接叩くのは非エンジニアには敷居が高い
- ノーコードツール(Make / n8n等)で組むのも面倒で過剰
- その中間として、GAS + スプレッドシート + 図形ボタンが適切なのではないか
結果は概ねYesでした。
項目 | GAS × YouTube API | Make / n8n | API直接(Python等) |
|---|---|---|---|
機能性 | ◎(APIフル機能) | ○(コネクタ依存) | ◎ |
コスト | 無料 | 有料プラン必要なことが多い | 無料 |
使いやすさ | ○ | ◎ | △(環境構築が必要) |
連携性 | ◎(スプシ・Gmail等と直結) | ◎ | △ |
配布のしやすさ | ◎(スプシ共有+ボタン) | △(アカウント共有が面倒) | × |
差がつくのは「配布のしやすさ」です。スプレッドシートを共有してボタンを押してもらうだけなら、相手側に何の準備も要りません。
APIキー管理が不要になる
技術的に効いたのがこれです。
GASのエディタから「サービス」としてYouTube Data API v3を追加すると、YouTube.Search.list() などのメソッドがGASのネイティブ関数のように呼び出せます。
OAuthスコープは初回実行時に承認ダイアログが出るので、そこで許可するだけです。APIキーの発行・保管・ローテーションといった作業が発生しません。
この方式は他のGoogle APIにも使えます。Gmail API、Tag Manager API、YouTube Analytics APIも同様に有効化できます。
AIにコードを書かせる前提の作り方
この検証で実際に回したワークフローです。
- Claude Codeに「再生数降順 / トップ50 / 公開日・URL含む / シートに書き出し」を自然言語で依頼
- 生成コードをGASに貼り付け
- 実行して結果を確認
条件を箇条書きで投げるだけで、生成コードは一発で動きました。
精度を上げるコツも記録されています。参考サイトのURL(GAS YouTube Data APIのリファレンス等)も併せて渡すと精度が上がります。
さらに運用の形として、既存のGASコードをAIに貼り付け → 自然言語でアップデート要件を伝える → 修正版コードをGASに戻す、というループが回ります。コードを書けなくても、改修を続けられる状態になります。
「人気順」と「トレンド」は別物
この検証で最も実用的な発見です。
order=viewCount で再生数降順は問題なく機能します。しかし「全期間で人気順」と「直近のトレンド」は別物です。
実際に「ポケモンカード」で実行したところ、2024年公開・7200万再生の動画がトップに来ました。トレンドを知りたい目的には合いません。
対策は publishedAfter による期間フィルタの併用です。これを設計に入れないと、古い超人気動画ばかりが上位を占めます。
この検証では、「人気順」「直近3ヶ月」など条件別に関数を分け、シートも分ける構成にしました。あとから条件を追加しやすくなります。
Quota(利用上限)に注意
YouTube Data APIには1日あたりのユニット消費上限があります(無料枠で1日10,000ユニット程度)。
search.list は1リクエストあたり100ユニットを消費するため、ループで投げると上限に到達しやすくなります。
実務的な制限として、一度に投げるキーワードは5件程度が現実的という結論です。
その他の制約も整理しておきます。
- 1回の
search.listで取得できるのは最大50件。それ以上はページトークン連結が必要(200件程度まで) - 動画URLはAPIレスポンスに含まれない →
https://www.youtube.com/watch?v=+ 動画IDで文字列結合して生成 - GASの実行時間制限(6分)があるため、大規模並列処理・長時間処理には向かない
非エンジニアに渡す形にする
配布形態の設計もこの検証の目的でした。
スプレッドシートのA1以降にキーワードを並べ、図形ボタンに実行関数を割り当てる——この構成で、非エンジニアがそのまま使える状態になります。
細かい配慮も記録されています。完了通知の Browser.msgBox() は非エンジニアには却って分かりづらいため、コメントアウトするかそもそも実装しないほうがよいという点です。
作る側が「親切」と思う機能が、受け取る側には邪魔になることがあります。
つまずいた点
症状 | 原因 | 対処 |
|---|---|---|
| サーバー側の問題 | 少し待って再実行(リトライ実装で解消) |
書き込み先シートでエラー | ヘッダー行が空 | 事前にヘッダー行をコピーしておく |
一部キーワードの結果が取得できない | 要デバッグ | Quota上限を考えると一度に5件程度までが現実的 |
「サービス追加」が見つからない | UI上わかりにくい | 薄い「+」ボタンを探す |
よくある質問
なぜノーコードツールを使わないのですか?
この用途では過剰であり、配布も面倒だからです。スプレッドシート1枚で完結し、共有してボタンを押してもらうだけで使えるほうが展開しやすくなります。
APIキーの管理は必要ですか?
不要です。GASの拡張サービス方式ならOAuth承認だけで済み、APIキーの発行・保管が発生しません。
「人気順」で取得すればトレンドが分かりますか?
分かりません。全期間の再生数降順では古い超人気動画が上位を占めます。トレンドを見るには publishedAfter による期間フィルタの併用が必須です。
1日にどのくらい実行できますか?
search.list は1リクエスト100ユニット消費し、無料枠は1日10,000ユニット程度です。一度に投げるキーワードは5件程度が現実的です。
まとめ
- ノーコードとAPI直叩きの中間(GAS + スプレッドシート + 図形ボタン)がちょうどいい場面がある
- 差がつくのは配布のしやすさ。スプシを共有してボタンを押してもらうだけで済む
- GAS拡張サービス方式ならAPIキー管理が不要(OAuth承認のみ)。Gmail・Tag Manager等も同方式
- 「全期間で人気順」と「直近のトレンド」は別物。
publishedAfterの併用が必須 search.listは1リクエスト100ユニット消費。一度に5件程度が現実的- 動画URLはAPIが返さないため、動画IDから組み立てる
- 既存コードをAIに渡して自然言語で改修するループが回るため、コードを書けなくても改修を続けられる
自動化の手段は、機能の多さより「渡す相手が使えるか」で選ぶと外しません。実行のハードルが下がるほど、実際に使われる回数が増えます。
株式会社AI棒では、こうしたAI活用の検証を日々行い、企業のマーケティング業務の自動化を支援しています。ご相談はお問い合わせフォームから、継続的な伴走支援についてはAI参謀をご覧ください。
