Conversión automática de videos de YouTube en artículos de blog con transcripción de Gemini AI

Intermedio

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 12 nodos.Utiliza principalmente nodos como Set, Webhook, ReadWriteFile, ExecuteCommand, Agent. Conversión automática de videos de YouTube a artículos de blog, integrando la transcripción con Gemini AI

Requisitos previos
  • Punto final de HTTP Webhook (n8n generará automáticamente)
  • Clave de API de Google Gemini
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "afca6c018fd85ecd6bb793dc620b1f9d2de9ea7edb2532dd2708b1a0cf01d640",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "e45b22bd-caa4-4adc-8da0-5229cea720cf",
      "name": "Agente de IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        624,
        -112
      ],
      "parameters": {
        "text": "=Please create a blog post from the following video transcript. Identify the key themes, structure the content logically, and generate a title, category, and tags.\n\nTranscript:\n{{ $json.content.parts[0].text }}",
        "options": {
          "systemMessage": "=You are an expert content strategist and editor. Your task is to transform a raw video transcript into a well-structured and engaging blog post.\n\nYou must adhere to the following rules:\n1.  Your entire response must be a single JSON object enclosed in a markdown code block (```json ... ```).\n2.  Do NOT include any introductory phrases, explanations, apologies, or any text whatsoever outside of the JSON markdown block.\n3.  The tone should be informative, clear, and engaging, transforming the conversational transcript into polished written content.\n4.  The language of all generated text in the output JSON must match the primary language of the input transcript.\n5.  The JSON object must have this exact structure:\n{\n  \"category\": \"A single, top-level category based on the content.\",\n  \"tags\": [\n    \"An array of 3 to 5 relevant, lowercase string tags.\"\n  ],\n  \"title\": \"A creative, compelling title for the blog post.\",\n  \"short_description\": \"A concise, one-to-two sentence summary of the blog post, optimized for search engines (around 150-160 characters).\",\n  \"body\": \"The full blog post content formatted in HTML, including <h1>, <h2>, and <p> tags.\"\n}\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "b5606a62-9672-41f0-9a97-26994256e409",
      "name": "Modelo de Chat Google Gemini",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        672,
        240
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "id": "vppVWKsiofTY92Ht",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "74a9a1c6-af62-4e4e-8295-86550691525f",
      "name": "Analizador de Salida Estructurada",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        768,
        96
      ],
      "parameters": {
        "autoFix": true,
        "jsonSchemaExample": "{\n  \"category\": \"Travel\",\n  \"tags\": [\n    \"breda\",\n    \"summer travel\",\n    \"netherlands\",\n    \"city trip\",\n    \"north brabant\"\n  ],\n  \"title\": \"Soaking Up the Last Days of Summer: A Weekend Guide to Breda\",\n  \"short_description\": \"Don't let summer slip away! Discover the best things to do in Breda for a perfect late-summer weekend, from historic sites to vibrant terrace cafes.\",\n  \"body\": \"<h1>Soaking Up the Last Days of Summer: A Weekend Guide to Breda</h1><p>As the golden light of late August settles over the Netherlands, there's no better place to capture the final, perfect moments of the season than Breda. This historic city in North Brabant, with its relaxed atmosphere and beautiful scenery, is the ideal destination for a memorable summer weekend. Here’s how to make the most of it.</p><h2>Morning: History and Coffee on the Grote Markt</h2><p>Start your day in the heart of the city, the Grote Markt. The square is dominated by the impressive Grote Kerk (Great Church), a must-see landmark. After exploring the church, find a spot at one of the many bustling terrace cafes. Ordering a coffee and watching the city wake up is a quintessential Breda experience.</p><h2>Afternoon: A Royal Stroll in Valkenberg Park</h2><p>Escape the midday heat with a walk through the shady paths of Valkenberg Park. This stunning park, once the garden of the Castle of Breda, is filled with ancient trees, fountains, and remnants of the old city fortifications. It's the perfect place for a picnic or simply to relax with a book and enjoy the sunshine.</p><h2>Evening: Sunset by the Harbor</h2><p>As the day winds down, head to Breda's charming harbor (Haven). The waterfront comes alive in the evening, with boats gently bobbing and restaurant lights reflecting on the water. Enjoy dinner with a view or simply take a stroll along the dock to watch a beautiful late-summer sunset.</p>\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "e81db094-9445-4953-81c6-45ddf7c8f68f",
      "name": "Descargar el Audio de Youtube",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        -176,
        -112
      ],
      "parameters": {
        "command": "=yt-dlp -x --audio-format mp3 -o output-{{ $json.now_unix }}.mp3 '{{ $('Get Youtube Url').item.json.body.videoUrl }}'\n"
      },
      "typeVersion": 1
    },
    {
      "id": "362d280b-bf10-4ad6-9d9a-2274ed2747fb",
      "name": "Leer Binario MP3 de Salida",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        32,
        -112
      ],
      "parameters": {
        "options": {},
        "fileSelector": "=output-{{ $('Get Time').item.json.now_unix }}.mp3"
      },
      "typeVersion": 1
    },
    {
      "id": "d37ff911-4ebf-4acc-9d66-1be48921d71a",
      "name": "Responder con el Artículo del Blog",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1376,
        -112
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.4
    },
    {
      "id": "09d024f5-9c8e-4332-bbb6-5a58d735152d",
      "name": "Obtener URL de Youtube",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -704,
        -112
      ],
      "webhookId": "57fddbda-a118-4546-a223-8e91a7d53ff6",
      "parameters": {
        "path": "57fddbda-a118-4546-a223-8e91a7d53ff6",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "3e1d9f4b-a1e0-4f02-9928-4ddab3a474dc",
      "name": "Transcribir una grabación",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        320,
        -112
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-1.5-flash",
          "cachedResultName": "models/gemini-1.5-flash"
        },
        "options": {},
        "resource": "audio",
        "inputType": "binary"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "vppVWKsiofTY92Ht",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "646309f5-7b01-41d1-be78-67894e062540",
      "name": "Añadir URL del Video a la Salida",
      "type": "n8n-nodes-base.set",
      "position": [
        1136,
        -112
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f7f8a432-f6a3-4594-8048-53e170b46db6",
              "name": "videoUrl",
              "type": "string",
              "value": "={{ $('Get Youtube Url').item.json.body.url }}"
            },
            {
              "id": "b441eb26-15bb-43c6-afea-fa4733a100b5",
              "name": "fulltext",
              "type": "string",
              "value": "={{ $('Transcribe a recording').item.json.content.parts[0].text }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "04bc9c1f-e198-42f9-9fb1-31fa391aed43",
      "name": "Nota Adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        -256
      ],
      "parameters": {
        "color": 3,
        "width": 464,
        "height": 336,
        "content": "## Get YouTube Video Audio\nDownload the YouTube video from the provided URL and prepare it as binary data."
      },
      "typeVersion": 1
    },
    {
      "id": "f1c784d9-01f4-4219-876e-1fa2da37d687",
      "name": "Obtener Hora",
      "type": "n8n-nodes-base.set",
      "position": [
        -464,
        -112
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1573616e-c70d-468b-ba22-1e0a337dbfa0",
              "name": "now_unix",
              "type": "number",
              "value": "={{ new Date().getTime() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1c821513-2683-48bf-a015-67f02d5c671a",
      "name": "Nota Adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        -288
      ],
      "parameters": {
        "color": 5,
        "width": 512,
        "height": 688,
        "content": "## Preparing the Blog Post\nThe AI Agent processes the full YouTube video transcript and transforms it into a blog post with content, a short description, a category, and tags. The output is provided as a structured JSON."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "e45b22bd-caa4-4adc-8da0-5229cea720cf": {
      "main": [
        [
          {
            "node": "646309f5-7b01-41d1-be78-67894e062540",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f1c784d9-01f4-4219-876e-1fa2da37d687": {
      "main": [
        [
          {
            "node": "e81db094-9445-4953-81c6-45ddf7c8f68f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "09d024f5-9c8e-4332-bbb6-5a58d735152d": {
      "main": [
        [
          {
            "node": "f1c784d9-01f4-4219-876e-1fa2da37d687",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "362d280b-bf10-4ad6-9d9a-2274ed2747fb": {
      "main": [
        [
          {
            "node": "3e1d9f4b-a1e0-4f02-9928-4ddab3a474dc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3e1d9f4b-a1e0-4f02-9928-4ddab3a474dc": {
      "main": [
        [
          {
            "node": "e45b22bd-caa4-4adc-8da0-5229cea720cf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "646309f5-7b01-41d1-be78-67894e062540": {
      "main": [
        [
          {
            "node": "d37ff911-4ebf-4acc-9d66-1be48921d71a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b5606a62-9672-41f0-9a97-26994256e409": {
      "ai_languageModel": [
        [
          {
            "node": "e45b22bd-caa4-4adc-8da0-5229cea720cf",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "74a9a1c6-af62-4e4e-8295-86550691525f",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "74a9a1c6-af62-4e4e-8295-86550691525f": {
      "ai_outputParser": [
        [
          {
            "node": "e45b22bd-caa4-4adc-8da0-5229cea720cf",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "e81db094-9445-4953-81c6-45ddf7c8f68f": {
      "main": [
        [
          {
            "node": "362d280b-bf10-4ad6-9d9a-2274ed2747fb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Creación de contenido, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos12
Categoría2
Tipos de nodos10
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor

Hi 👋 I design automation workflows with n8n, AI, and custom APIs. My focus is on building reliable systems that save time and boost productivity. Always happy to answer questions about my templates.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34