Workflow n8n de transcription YouTube : RSS au résumé AI

Si vous voulez un workflow n8n de transcription YouTube qui s'exécute seul, le voici : quatre nœuds qui regardent un canal, tirent la transcription de chaque nouvelle vidéo, la résument avec un LLM, et postent le résultat sur Slack. Pas de projet YouTube Data API, pas d'écrans OAuth, pas de grattage.
L'astuce qui rend ça propre est une que la plupart des gens ne connaissent pas : chaque canal YouTube a déjà un flux RSS. n8n a un déclencheur RSS. Le reste est un seul appel HTTP.
Le workflow en un coup d'œil
- RSS Feed Trigger — se déclenche quand le canal publie une vidéo
- HTTP Request — récupère la transcription de youtube2text.org
- OpenAI (ou n'importe quel nœud LLM) — transforme la transcription en résumé
- Slack (ou Notion, ou email) — la livre
Nœud 1 : Déclencheur de flux RSS
Ajoutez le nœud RSS Feed Trigger et donnez-lui cette URL de flux :
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
Pour trouver l'ID d'un canal, ouvrez n'importe laquelle de ses vidéos, consultez la source de la page, et cherchez channel_id — ou tirez-la de l'URL du canal si c'est la forme /channel/UC.... Le flux retourne les derniers uploads ; le nœud de déclencheur gère le sondage et la déduplication, donc chaque vidéo passe exactement une fois. Chaque élément inclut un champ link avec l'URL complète de la vidéo, qui est exactement ce que le nœud suivant a besoin.
Nœud 2 : HTTP Request
C'est l'intégration entière. Ajoutez un nœud HTTP Request avec :
- Method: GET
- URL:
https://youtube2text.org/api/transcribe - Query parameters:
url={{ $json.link }},maxChars=20000 - Headers:
x-api-key=yt_YOUR_KEY
Pas encore de clé ? Récupérez la partagée gratuite — pas de compte nécessaire :
curl -s https://youtube2text.org/api/demo-key
Cela retourne {"success": true, "apiKey": "yt_..."}. Elle est limitée à 5 vidéos par mois par IP, ce qui est bien pour tester le workflow mais pas pour suivre un canal actif.
L'API accepte n'importe quelle forme d'URL YouTube (watch?v=, youtu.be, même un identifiant vidéo nu de 11 caractères), donc le lien RSS fonctionne tel quel. Je règle maxChars à 20000 ici parce que la transcription va être envoyée à un LLM ensuite et vous payez pour ces jetons ; la valeur par défaut et le maximum est 150000.
La réponse arrive en JSON structuré :
{"result": {"videoId": "...", "title": "...", "pubDate": "...",
"content": "transcript text ...", "contentSize": 12345, "truncated": false}}
Nœud 3 : Résumer avec un LLM
Ajoutez le nœud LLM de votre choix et référencez la transcription avec une expression comme {{ $json.result.content }}. Un prompt qui a bien fonctionné pour moi :
> Summarize this video transcript in 5 bullet points, then list any tools, links, or numbers mentioned. Title: {{ $json.result.title }}
Gardez le titre dans le prompt — les auto-sous-titres garbuillent occasionnellement les noms de produits, et le titre donne au modèle quelque chose sur lequel s'ancrer.
Nœud 4 : La livrer
Ajoutez un nœud Slack postant à votre canal, avec le titre vidéo, le résumé et le lien original. Remplacez par un nœud Notion si vous préférez construire une archive consultable — j'ai écrit cette variante dans le guide Notion.
L'erreur que vous devriez réellement gérer
Pas toutes les vidéos ont des sous-titres. Les retransmissions en direct juste après diffusion, certains clips musicaux, et les canaux qui désactivent les sous-titres retourneront :
{"error": {"code": "TRANSCRIPT_UNAVAILABLE", "message": "...", "status": 404}}
Dans le nœud HTTP Request, activez l'option pour continuer en cas d'échec (ou capturez-la avec une branche d'erreur) pour qu'une vidéo sans sous-titre n'arrête pas le workflow. L'autre code qui mérite une branche est RATE_LIMIT_EXCEEDED (429) — la réponse inclut retryAfterSeconds, donc un nœud Wait plus une boucle de nouvelle tentative le gère si vous traitez un arriéré.
Clés et quotas
Pour tout au-delà d'une exécution de test, connectez-vous avec Google sur youtube2text.org/app/keys et créez votre propre clé — pas de numéro de téléphone, pas de carte. Le plan gratuit couvre 5 vidéos par mois ; les plans payants vont de $5.99 pour 50 vidéos à $19.99 pour illimité, ce qui couvre confortablement même une configuration multi-canal.
Si votre équipe vit dans Make ou Zapier au lieu de n8n, la même architecture se traduit directement — voir la version Make et la version Zapier. Mais si vous choisissez frais : la limite gratuite auto-hébergée de n8n en fait le moyen le moins cher d'exécuter cette boucle illimitée.