HomeBlogTranscribePlansAPI Keys

Google Sheets での YouTube 文字起こし (カスタム関数1つ)

Google Sheetsスプレッドシート(1つの列にYouTube URLがあり、取得した文字起こしが次に表示される)

YouTubeトランスクリプトをGoogle Sheetsに取得することは、1つのApps Script関数を要します。1回貼り付けて、=YT_TRANSCRIPT(A2)は組み込み関数のように機能します: 1つの列のURL、次の文字起こし。完全なスクリプト、およびSheets固有の2つの落とし穴があります。

スクリプト

スプレッドシートを開いて、拡張機能 > Apps Scriptに移動し、これを貼り付けてください:

const API_KEY = 'yt_YOUR_KEY';

/**
 * Fetches the transcript of a YouTube video.
 * @param {string} url Any YouTube URL or a bare 11-char video id.
 * @param {number} maxChars Optional length cap (default 5000).
 * @return {string} The transcript text.
 * @customfunction
 */
function YT_TRANSCRIPT(url, maxChars) {
  if (!url) return '';
  const endpoint = 'https://youtube2text.org/api/transcribe'
    + '?url=' + encodeURIComponent(url)
    + '&maxChars=' + (maxChars || 5000);
  const response = UrlFetchApp.fetch(endpoint, {
    headers: { 'x-api-key': API_KEY },
    muteHttpExceptions: true
  });
  const body = JSON.parse(response.getContentText());
  if (body.error) return 'ERROR: ' + body.error.code;
  return body.result.content;
}

保存すると、関数はシート内でライブになります。@customfunctionタグはオートコンプリートに登録するもの; muteHttpExceptionsは404からスタックトレースを誰も求めなかった赤いセルに爆発するのを防ぎます。

キーの場合: ブラウザでhttps://youtube2text.org/api/demo-keyをリクエストし、{"success": true, "apiKey": "yt_..."}を返します―無料共有キー、アカウントなし、月5ビデオあたりIPに制限。これを試すのは良いですが、実際に使用するために自分のものを取得してください。

それを使用する

  1. 列AにビデオURL―完全なリンク、youtu.be短いリンク、または裸の11文字IDをすべて機能させます。
  2. B2で、=YT_TRANSCRIPT(A2)を入力します。
  3. もっとまたは少ないテキストが必要ですか? =YT_TRANSCRIPT(A2, 20000)キャップを明示的に設定します。
  4. 数式を列の下にドラッグして、セルが埋まるのを見てください。

文字起こしはYouTubeの字幕から来ます―クリエイターがアップロードしたときは手動、そうでなければ自動生成、英語を優先し、存在する言語にフォールバック。

maxChars が他のどこよりも重要である理由

Google Sheetsセルは最大50,000文字を保持します。これはハードプラットフォーム制限であり、APIのデフォルトキャップ150,000文字はそれを航行します―長いポッドキャストエピソードはセルに到着するのに失敗します。Sheetsでは、常に50000以下のmaxCharsを渡します。スプレッドシートを小説に変えることなく、要約、キーワードチェック、AIフォーミュラにフィードするのをカバーしています。

再計算の落とし穴

カスタム関数アプローチの正直な制限: Sheets は再計算されるたびにカスタム関数を再実行します―ファイルが再度開かれるたびに含まれます。各再実行は実際のAPI呼び出しなので、40のトランスクリプト公式を持つシートはオープン時に静かに40ビデオを再取得し、クォータを朝食で消費します。修正は簡単です: トランスクリプトが到着したら、セルを選択して値として貼り付け直します(コピー、その後貼り付け特別>値のみ)。テキストは残り、数式、および食欲が消えます。

セルがERRORを言うとき

関数は衝突する代わりに読みやすいコードを返します。ERROR: TRANSCRIPT_UNAVAILABLEはビデオに字幕がまったくないことを意味します―取得するものはありません。ERROR: RATE_LIMIT_EXCEEDEDはキーの月間クォータが不足したことを意味し、共有デモキーで速く起こります。ERROR: INVALID_URLはセルがYouTubeビデオのように見えるものを含まないことを意味します。

それを取り続ける場所

文字起こしで満たされたシートは、驚くほど良い研究ツールです―コンテンツ研究投稿でそのワークフローを説明します。公式を成長させ、ビデオが公開されるときに文字起こしを自動的に取得したい場合、n8nワークフローはハンズフリーです。

独自のキーの場合―共有クォータなし、電話なし、カードなし―youtube2text.org/app/keysでGoogleサインインしてください。無料は月5ビデオをカバーし、$5.99は50を取得し、$9.99は500を取得し、$19.99は無制限です。API_KEYに貼り付けて、シートは残りをやります。