HomeBlogTranscribePlansAPI Keys

Transcription YouTube dans Google Sheets avec une fonction personnalisée

Feuille de calcul Google Sheets avec des URL YouTube dans une colonne et les transcriptions récupérées apparaissant dans la suivante

Obtenir une transcription YouTube dans Google Sheets prend une fonction Apps Script. Collez-la une fois, et =YT_TRANSCRIPT(A2) fonctionne comme n'importe quelle formule intégrée : URL dans une colonne, transcription dans la suivante. Voici le script complet, plus deux pièges spécifiques à Sheets qui vous mordraient si personne ne vous les signale.

Le script

Ouvrez votre feuille, allez à Extensions > Apps Script, et collez ceci :

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;
}

Enregistrez, et la fonction est en direct dans votre feuille. La balise @customfunction est ce qui l'enregistre auprès de l'autocomplétion ; muteHttpExceptions empêche un 404 d'exploser dans une cellule rouge avec une trace de pile que personne n'a demandée.

Pour la clé : demandez https://youtube2text.org/api/demo-key dans votre navigateur et il retourne {"success": true, "apiKey": "yt_..."} — une clé gratuite partagée, pas de compte, limitée à 5 vidéos par mois par IP. Bien pour essayer cela ; obtenez la vôtre pour une utilisation réelle.

L'utiliser

  1. Mettez les URL des vidéos dans la colonne A — les liens complets, les liens courts youtu.be, ou les identifiants nus de 11 caractères fonctionnent tous.
  2. En B2, tapez =YT_TRANSCRIPT(A2).
  3. Besoin de plus ou moins de texte ? =YT_TRANSCRIPT(A2, 20000) fixe le plafond explicitement.
  4. Faites glisser la formule vers le bas de la colonne et regardez les cellules se remplir.

Les transcriptions proviennent des propres sous-titres de YouTube — manuels quand le créateur les a téléchargés, générés automatiquement sinon, l'anglais préféré avec un repli vers la langue qui existe.

Pourquoi maxChars est plus important ici que nulle part ailleurs

Une cellule Google Sheets peut contenir au maximum 50 000 caractères. C'est une limite de plateforme difficile, et le plafond par défaut de l'API de 150 000 caractères le dépasse facilement — un long épisode de podcast ne parviendrait pas à atterrir dans la cellule. Donc dans Sheets, passez toujours maxChars à 50000 ou moins. Je définis par défaut le script à 5000, ce qui couvre les résumés, les vérifications de mots-clés, et l'alimentation d'une formule AI, sans transformer votre feuille de calcul en roman.

Le piège de recalcul

Voici l'honnête limitation de l'approche de fonction personnalisée : Sheets réexécute les fonctions personnalisées chaque fois qu'il recalcule — y compris chaque fois que le fichier est réouvert. Chaque réexécution est un vrai appel API, donc une feuille avec 40 formules de transcription récupère silencieusement 40 vidéos à l'ouverture et épuise votre quota au déjeuner. Le correctif est simple : une fois qu'une transcription arrive, sélectionnez les cellules et collez-les en tant que valeurs (Copier, puis Coller spécial > Valeurs uniquement). Le texte reste ; la formule et son appétit s'en vont.

Quand une cellule dit ERROR

La fonction retourne des codes lisibles au lieu de planter. ERROR: TRANSCRIPT_UNAVAILABLE signifie que la vidéo n'a aucun sous-titre du tout — rien à récupérer. ERROR: RATE_LIMIT_EXCEEDED signifie que le quota mensuel de la clé s'est épuisé, ce qui sur la clé démo partagée se produit rapidement. ERROR: INVALID_URL signifie que la cellule ne contient rien qui ressemble à une vidéo YouTube.

Où le prendre

Une feuille pleine de transcriptions est un outil de recherche étonnamment bon — je vous guide dans ce workflow dans le post de recherche de contenu. Et quand vous dépassez les formules et voulez que les transcriptions soient récupérées automatiquement au fur et à mesure que les vidéos sont publiées, le workflow n8n le fait sans intervention.

Pour votre propre clé — pas de quota partagé, pas de téléphone, pas de carte — connectez-vous avec Google sur youtube2text.org/app/keys. La version gratuite couvre 5 vidéos par mois ; $5.99 en obtient 50, $9.99 en obtient 500, $19.99 est illimité. Collez-la dans API_KEY et la feuille fait le reste.