Générez des résumés de vidéos YouTube avec LangChain

Ce workflow n8n permet d'automatiser la génération de résumés de vidéos YouTube en utilisant LangChain. En intégrant une API de transcription et un modèle de langage avancé, il transforme le contenu vidéo en résumés textuels et questions pertinentes. Cela vous permet de tirer parti du contenu existant pour améliorer l'engagement utilisateur, créer du contenu dérivé et enrichir vos ressources éducatives. L'intégration facile avec OpenAI garantit des résultats précis et personnalisables, tout en vous faisant gagner du temps et des efforts considérables.

10,003 vues
3,392 copies
Automatisation

Documentation Complète

📋 Générez des résumés de vidéos YouTube avec LangChain

💡 Description

Ce workflow n8n permet d'automatiser la génération de résumés de vidéos YouTube en utilisant LangChain. En intégrant une API de transcription et un modèle de langage avancé, il transforme le contenu vidéo en résumés textuels et questions pertinentes. Cela vous permet de tirer parti du contenu existant pour améliorer l'engagement utilisateur, créer du contenu dérivé et enrichir vos ressources éducatives. L'intégration facile avec OpenAI garantit des résultats précis et personnalisables, tout en vous faisant gagner du temps et des efforts considérables.

📈 Impact & ROI: Amélioration significative de l'efficacité grâce à l'automatisation, réduction du temps passé sur la création de résumés manuels, et meilleure utilisation du contenu vidéo pour engager votre audience.

🚀 Fonctionnalités Clés

  • ✅ Automatisation complète du processus de résumé vidéo
  • ✅ Intégration fluide avec les modèles OpenAI pour des résultats précis
  • ✅ Gain de temps dans la création de contenus dérivés
  • ✅ Possibilité d'enrichir les ressources éducatives avec des questions pertinentes

📊 Architecture Technique

6
Nodes
3
Connexions
4
Services

🔌 Services Intégrés

n8n-nodes-base.stickyNoten8n-nodes-base.manualTrigger@n8n/n8n-nodes-langchain.code@n8n/n8n-nodes-langchain.lmChatOpenAi

🔧 Composition du Workflow

NodeTypeDescription
Sticky Note7stickyNoteTraitement des données
When clicking "Execute Workflow"manualTriggerTraitement des données
Sticky NotestickyNoteTraitement des données
LangChain Code@n8n/n8n-nodes-langchain.codeTraitement des données
Set YouTube video IDsetTraitement des données
OpenAI Chat Model@n8n/n8n-nodes-langchain.lmChatOpenAiTraitement des données

📖 Guide d'Implémentation

  1. Import du workflow: Téléchargez le fichier JSON et importez-le dans votre instance n8n
  2. Configuration des credentials: Configurez les accès pour chaque service utilisé
  3. Personnalisation: Adaptez les paramètres selon vos besoins spécifiques
  4. Test: Exécutez le workflow en mode test pour vérifier le bon fonctionnement
  5. Activation: Activez le workflow pour une exécution automatique

🏷️ Tags

YouTubeRésuméLangChain

Structure JSON

Voir le code JSON complet
{
    "meta": {
        "instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
        "templateCredsSetupCompleted": true
    },
    "nodes": [
        {
            "id": "b7e2de27-e52c-46d1-aaa9-a67c11c48a8f",
            "name": "Sticky Note7",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -420,
                -60
            ],
            "parameters": {
                "width": 328.41313484548044,
                "height": 211.30313955500145,
                "content": "Before executing, replace `YOUR_API_KEY` with an API key for searchapi.io"
            },
            "typeVersion": 1
        },
        {
            "id": "fd2ac655-73fd-434a-bba4-e460af8dfa8a",
            "name": "When clicking \"Execute Workflow\"",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                -820,
                20
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "e1bd87f7-283b-496d-910d-b92d1cb19237",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -1140,
                -20
            ],
            "parameters": {
                "color": 7,
                "height": 220.82906011310624,
                "content": "## About\nThis workflow shows how you can write LangChain code in n8n (and import its modules if required).\n\nThe workflow fetches a video from YouTube and produces a textual summary of it."
            },
            "typeVersion": 1
        },
        {
            "id": "a43bb1c5-dd90-4331-930c-128ef0ecb38a",
            "name": "LangChain Code",
            "type": "@n8n\/n8n-nodes-langchain.code",
            "position": [
                -380,
                20
            ],
            "parameters": {
                "code": {
                    "execute": {
                        "code": "\/\/ IMPORTANT: add in your API key for searchapi.io below\nconst searchApiKey = \"<YOUR API KEY>\"\n\nconst { loadSummarizationChain } = require(\"langchain\/chains\");\nconst { SearchApiLoader } = require(\"@n8n\/n8n-nodes-langchain\/node_modules\/@langchain\/community\/document_loaders\/web\/searchapi.cjs\");\nconst { PromptTemplate } = require(\"@langchain\/core\/prompts\");\nconst { TokenTextSplitter } = require(\"langchain\/text_splitter\");\nconst loader = new SearchApiLoader({\n  engine: \"youtube_transcripts\",\n  video_id: $input.item.json.videoId,\n  apiKey: searchApiKey,\n});\n\nif (searchApiKey == \"<YOUR API KEY>\") {\n  throw new Error(\"Please add your API key for searchapi.io to this node\")\n}\n\nconst docs = await loader.load();\n\nconst splitter = new TokenTextSplitter({\n  chunkSize: 10000,\n  chunkOverlap: 250,\n});\n\nconst docsSummary = await splitter.splitDocuments(docs);\n\nconst llmSummary = await this.getInputConnectionData('ai_languageModel', 0);\n\nconst summaryTemplate = `\nYou are an expert in summarizing YouTube videos.\nYour goal is to create a summary of a podcast.\nBelow you find the transcript of a podcast:\n--------\n{text}\n--------\n\nThe transcript of the podcast will also be used as the basis for a question and answer bot.\nProvide some examples questions and answers that could be asked about the podcast. Make these questions very specific.\n\nTotal output will be a summary of the video and a list of example questions the user could ask of the video.\n\nSUMMARY AND QUESTIONS:\n`;\n\nconst SUMMARY_PROMPT = PromptTemplate.fromTemplate(summaryTemplate);\n\nconst summaryRefineTemplate = `\nYou are an expert in summarizing YouTube videos.\nYour goal is to create a summary of a podcast.\nWe have provided an existing summary up to a certain point: {existing_answer}\n\nBelow you find the transcript of a podcast:\n--------\n{text}\n--------\n\nGiven the new context, refine the summary and example questions.\nThe transcript of the podcast will also be used as the basis for a question and answer bot.\nProvide some examples questions and answers that could be asked about the podcast. Make\nthese questions very specific.\nIf the context isn't useful, return the original summary and questions.\nTotal output will be a summary of the video and a list of example questions the user could ask of the video.\n\nSUMMARY AND QUESTIONS:\n`;\n\nconst SUMMARY_REFINE_PROMPT = PromptTemplate.fromTemplate(\n  summaryRefineTemplate\n);\n\nconst summarizeChain = loadSummarizationChain(llmSummary, {\n  type: \"refine\",\n  verbose: true,\n  questionPrompt: SUMMARY_PROMPT,\n  refinePrompt: SUMMARY_REFINE_PROMPT,\n});\n\nconst summary = await summarizeChain.run(docsSummary);\n\nreturn [{json: { summary } } ];"
                    }
                },
                "inputs": {
                    "input": [
                        {
                            "type": "main",
                            "required": true,
                            "maxConnections": 1
                        },
                        {
                            "type": "ai_languageModel",
                            "required": true,
                            "maxConnections": 1
                        }
                    ]
                },
                "outputs": {
                    "output": [
                        {
                            "type": "main"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "a36440c5-402e-44e6-819c-2a19dc9e3e1e",
            "name": "Set YouTube video ID",
            "type": "n8n-nodes-base.set",
            "position": [
                -600,
                20
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "c2dc2944-a7c7-44c3-a805-27a55baa452a",
                            "name": "videoId",
                            "type": "string",
                            "value": "OsMVtuuwOXc"
                        }
                    ]
                }
            },
            "typeVersion": 3.4
        },
        {
            "id": "02386530-9aef-4732-9972-5624b78431a6",
            "name": "OpenAI Chat Model",
            "type": "@n8n\/n8n-nodes-langchain.lmChatOpenAi",
            "position": [
                -340,
                220
            ],
            "parameters": {
                "model": {
                    "__rl": true,
                    "mode": "list",
                    "value": "gpt-4o-mini"
                },
                "options": []
            },
            "credentials": {
                "openAiApi": {
                    "id": "8gccIjcuf3gvaoEr",
                    "name": "OpenAi account"
                }
            },
            "typeVersion": 1.2
        }
    ],
    "pinData": [],
    "connections": {
        "OpenAI Chat Model": {
            "ai_languageModel": [
                [
                    {
                        "node": "LangChain Code",
                        "type": "ai_languageModel",
                        "index": 0
                    }
                ]
            ]
        },
        "Set YouTube video ID": {
            "main": [
                [
                    {
                        "node": "LangChain Code",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "When clicking \"Execute Workflow\"": {
            "main": [
                [
                    {
                        "node": "Set YouTube video ID",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
                                

Workflows Similaires

Automatisez le Résumé de Vos Emails avec A.I. et Messagerie

Ce workflow n8n vous permet d'automatiser la gestion de vos emails en utilisant l'intelligence artificielle pour résume...

Automatisation de gestion des réunions Zoom et communication

Ce workflow est conçu pour automatiser le processus de planification et de gestion des réunions Zoom tout en assurant ...

Automatisez vos Tweets d'images humoristiques à 17h

Ce workflow n8n est conçu pour les professionnels des réseaux sociaux cherchant à automatiser leur contenu humoristiq...