Génération automatique d'articles de blog à partir de vidéos YouTube vers WordPress et Webflow (modèles)

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 21 nœuds.Utilise principalement des nœuds comme Set, Wait, Webflow, YouTube, Markdown. Utiliser GPT d'OpenAI à partir de vidéos YouTube pour générer des articles de blog vers WordPress et Webflow

Prérequis
  • Token Bot Telegram
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "STYgmx1IQLxQcLcA",
  "meta": {
    "instanceId": "506e1eb999b7a8cf86103921b3e1b94e371534d9bae39d44754933678dc6697d",
    "templateCredsSetupCompleted": true
  },
  "name": "Auto-generate blog posts from YouTube videos to WordPress and Webflow (TEMPLATE)",
  "tags": [
    {
      "id": "T3xhK1cIuPex0boX",
      "name": "Templates",
      "createdAt": "2025-09-03T11:06:03.839Z",
      "updatedAt": "2025-09-03T11:06:03.839Z"
    }
  ],
  "nodes": [
    {
      "id": "f33a19fb-1da8-434e-a6f4-aaa8e346f510",
      "name": "Extraire les données vidéo",
      "type": "n8n-nodes-base.set",
      "position": [
        96,
        48
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "video_title",
              "name": "videoTitle",
              "type": "string",
              "value": "={{ $json.snippet.title }}"
            },
            {
              "id": "video_url",
              "name": "videoUrl",
              "type": "string",
              "value": "={{ $('Monitor YouTube Feed').item.json.link }}"
            },
            {
              "id": "video_id",
              "name": "videoId",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "thumbnail_url",
              "name": "thumbnailUrl",
              "type": "string",
              "value": "={{ $json.snippet.thumbnails.maxres.url }}"
            },
            {
              "id": "4125ae80-9be8-4281-9012-c217ee413c05",
              "name": "videoDescription",
              "type": "string",
              "value": "={{ $json.snippet.description }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "92ed5826-54c7-4f20-b017-62fa6cb3f5cc",
      "name": "Formater l'article de blog",
      "type": "n8n-nodes-base.set",
      "position": [
        672,
        48
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "blog_title",
              "name": "blogTitle",
              "type": "string",
              "value": "={{ $json.message.content.match(/#\\s*(.+)/)[1].trim() }}\n"
            },
            {
              "id": "blog_content",
              "name": "blogContent",
              "type": "string",
              "value": "={{ $json.message.content.replace(/```(?:\\w+)?\\n?/, '').replace(/```$/, '').trim() }}"
            },
            {
              "id": "blog_slug",
              "name": "blogSlug",
              "type": "string",
              "value": "={{ $('Extract Video Data').item.json.videoTitle.toLowerCase().replace(/[^a-z0-9]/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '') }}"
            },
            {
              "id": "featured_image",
              "name": "featuredImage",
              "type": "string",
              "value": "={{ $('Extract Video Data').item.json.thumbnailUrl }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "492fca15-3711-4357-b5d1-8d68e4b11ee5",
      "name": "Publier vers WordPress",
      "type": "n8n-nodes-base.wordpress",
      "onError": "continueErrorOutput",
      "maxTries": 2,
      "position": [
        1136,
        -112
      ],
      "parameters": {
        "title": "={{ $json.blogTitle }}",
        "additionalFields": {
          "slug": "={{ $json.blogSlug }}",
          "tags": [
            6
          ],
          "content": "={{ $json.data }}",
          "categories": [
            5
          ]
        }
      },
      "credentials": {
        "wordpressApi": {
          "id": "XdwvkGFuVxDMC76j",
          "name": "Wordpress (Dummy Account)"
        }
      },
      "notesInFlow": false,
      "retryOnFail": false,
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "886d2a08-c897-4b6e-a517-71a30acc5230",
      "name": "Publier vers Webflow",
      "type": "n8n-nodes-base.webflow",
      "onError": "continueErrorOutput",
      "position": [
        1120,
        240
      ],
      "parameters": {
        "siteId": "653a17a1b31a397763f3ce40",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "name",
              "fieldValue": "={{ $json.blogTitle }}"
            },
            {
              "fieldId": "page-content",
              "fieldValue": "={{ $json.data }}"
            },
            {
              "fieldId": "slug",
              "fieldValue": "={{ $json.blogSlug }}"
            },
            {
              "fieldId": "featured-image",
              "fieldValue": "={{ $json.featuredImage }}"
            }
          ]
        },
        "operation": "create",
        "collectionId": "68c01d34f15ae8b8c30ead31"
      },
      "credentials": {
        "webflowOAuth2Api": {
          "id": "NqkfDWqbJpAotiw2",
          "name": "Webflow (Dummy Account)"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "d3f9bbb3-5eb6-4b87-9e0d-8ea7001e139a",
      "name": "Informations du workflow",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1296,
        -496
      ],
      "parameters": {
        "width": 350,
        "height": 1072,
        "content": "# Information\n\n**Who's it for:** Content creators, marketers, and businesses who publish on both YouTube and blog platforms.\n\n**What it does:** Monitors your YouTube channel for new videos and automatically creates SEO-optimized blog posts using AI, then publishes to WordPress or Webflow.\n\n**How it works:**\n1. RSS Feed Trigger polls YouTube every X amount of time\n2. Extracts video metadata (title, description, thumbnail)\n3. YouTube node extracts full description for extra context\n4. Uses OpenAI (you can choose any model) to generate 600-800 word blog post\n5. Publishes to WordPress AND/OR Webflow with error handling\n6. Sends notifications to Telegram if publishing fails\n\n**Requirements:**\n- YouTube channel ID (avoid tutorial channels for better results)\n- OpenAI API key\n- WordPress OR Webflow credentials\n- Telegram bot (optional, for error notifications)\n\n**Setup steps:**\n1. Replace `YOUR_CHANNEL_ID` in RSS Feed Trigger\n2. Add OpenAI credentials in AI generation node\n3. Configure WordPress and/or Webflow credentials\n4. Add Telegram bot for error notifications (optional)\n5. Test with manual execution first\n\n**Customization:**\n- Modify AI prompt for different content styles\n- Adjust polling frequency (30-60 minutes recommended)\n- Add more CMS platforms\n- Add content verification (is content larger than 600 characters? if not, improve)"
      },
      "typeVersion": 1
    },
    {
      "id": "b01b6aac-9da4-4be7-bcdd-0b4d9d833679",
      "name": "Extraire la note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        64,
        -112
      ],
      "parameters": {
        "color": 7,
        "width": 180,
        "height": 320,
        "content": "Extracts video title, description, URL, thumbnail. Creates clean slug for blog post."
      },
      "typeVersion": 1
    },
    {
      "id": "e691bd51-6c31-4b1a-9d84-284a034bc10c",
      "name": "Note IA",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        304,
        -128
      ],
      "parameters": {
        "color": 7,
        "width": 260,
        "height": 336,
        "content": "Uses OpenAI to create comprehensive blog post with proper structure and engaging content."
      },
      "typeVersion": 1
    },
    {
      "id": "3a24524a-7ef9-468c-a962-e8875da10540",
      "name": "Formater la note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        -128
      ],
      "parameters": {
        "color": 7,
        "width": 180,
        "height": 368,
        "content": "Cleans up AI response and prepares final blog post structure."
      },
      "typeVersion": 1
    },
    {
      "id": "7dce235b-13dc-4d69-8914-387642105549",
      "name": "Publier la note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        -256
      ],
      "parameters": {
        "color": 7,
        "width": 200,
        "height": 692,
        "content": "Publishes to WordPress and/or Webflow. Error handling ensures workflow continues if one platform fails."
      },
      "typeVersion": 1
    },
    {
      "id": "b9d5764a-2718-4c15-888f-4908ee35ef1c",
      "name": "Envoyer une notification d'erreur",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1456,
        -208
      ],
      "webhookId": "558de280-9983-4f9b-9e73-7e4b8dad73d4",
      "parameters": {
        "text": "=❌ Blog post creation failed on Wordpress!\n\nVideo: {{ $('Get video details').item.json.snippet.title }}\nError: {{ $json.error }}\nTime: {{ $now }}",
        "chatId": "=CHAT_ID",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "oidgpxSPzvIVyYWw",
          "name": "Telegram (Dummy Account)"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7118630c-981e-4103-ac8b-acd62d3d084c",
      "name": "Extraire la note 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 180,
        "height": 320,
        "content": "Uses Video ID to extract full description for extra context"
      },
      "typeVersion": 1
    },
    {
      "id": "284f96ec-094b-416b-8e51-22bba9190b14",
      "name": "Formater la note 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        -64
      ],
      "parameters": {
        "color": 7,
        "width": 180,
        "height": 304,
        "content": "Formats Markdown to HTML for Webflow and WordPress"
      },
      "typeVersion": 1
    },
    {
      "id": "9223ad51-d408-4348-964c-778f1efeea56",
      "name": "Vérification RSS hebdomadaire",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -800,
        128
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 21
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "4b99efde-5648-4962-a0ef-e97f34b1283e",
      "name": "Surveiller le flux YouTube",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        -576,
        128
      ],
      "parameters": {
        "url": "https://www.youtube.com/feeds/videos.xml?channel_id=UXXXXXXXXX",
        "options": {}
      },
      "executeOnce": false,
      "typeVersion": 1.2
    },
    {
      "id": "152dffb6-38bb-4f83-bbf6-bfd7d1736969",
      "name": "Obtenir les détails de la vidéo",
      "type": "n8n-nodes-base.youTube",
      "position": [
        -128,
        48
      ],
      "parameters": {
        "options": {},
        "videoId": "={{ $json.link.split('=')[1] }}",
        "resource": "video",
        "operation": "get"
      },
      "credentials": {
        "youTubeOAuth2Api": {
          "id": "67GXnxjAQ5XhUcpI",
          "name": "YouTube (Dummy Account)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "dd501db5-689c-47b3-94f1-c4c3d1bcd181",
      "name": "Traiter chaque vidéo",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -352,
        128
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "4e0a8146-ed68-4301-b698-ea539c83382b",
      "name": "Générateur d'article IA",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        320,
        48
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "GPT-4.1-MINI"
        },
        "options": {
          "temperature": 0.7
        },
        "messages": {
          "values": [
            {
              "content": "=Write a comprehensive blog post about this YouTube video:\n\nVideo Title: {{ $json.videoTitle }}\nVideo Description: {{ $json.videoDescription }}\nVideo URL: {{ $json.videoUrl }}\n\nCreate a blog post that:\n1. Has an engaging headline (different from video title)\n2. Includes compelling introduction\n3. Summarizes key points from the video\n4. Adds valuable insights and context\n5. Uses relevant subheadings (## for H2)\n6. Ends with call-to-action to watch the video\n7. Is 600-800 words\n8. Uses conversational, engaging tone\n9. Targets no-code developers and Bubble.io users\n\nImportant: Format in markdown with proper structure."
            },
            {
              "role": "system",
              "content": "=You are an expert content writer who creates engaging blog posts from YouTube videos across all topics and industries. \n\nWrite in a conversational, accessible tone that educates and engages readers regardless of subject matter. Focus on extracting key insights, providing context, and making complex topics understandable.\n\nAlways structure content with clear headings, actionable takeaways, and encourage readers to watch the original video for the complete experience."
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "mvWns3smwtPV0N7O",
          "name": "OpenAI (Dummy Account)"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "eb5d8c55-3806-4e7f-bbc7-7d41879a0ad1",
      "name": "Convertir en HTML",
      "type": "n8n-nodes-base.markdown",
      "position": [
        896,
        48
      ],
      "parameters": {
        "mode": "markdownToHtml",
        "options": {},
        "markdown": "={{ $json.blogContent }}"
      },
      "typeVersion": 1
    },
    {
      "id": "9313716b-396f-417d-a0de-3dc8b6921c2f",
      "name": "Délai de limite de débit",
      "type": "n8n-nodes-base.wait",
      "position": [
        1712,
        96
      ],
      "webhookId": "f3efd4a0-6e88-440b-af08-14a04fe2b8e3",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "375eae45-91ea-4057-b704-768a862137f4",
      "name": "Envoyer une alerte d'erreur",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1472,
        464
      ],
      "webhookId": "8c2d83bc-d100-4a12-863a-4f1eda8d7f35",
      "parameters": {
        "text": "=❌ Blog post creation failed on Webflow!\n\nVideo: {{ $('Get video details').item.json.snippet.title }}\nError: {{ $json.error }}\nTime: {{ $now }}",
        "chatId": "=CHAT_ID",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "oidgpxSPzvIVyYWw",
          "name": "Telegram (Dummy Account)"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e4d69452-8b9c-48c4-bb64-0af2bc4e9e51",
      "name": "Publier la note 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1408,
        -368
      ],
      "parameters": {
        "color": 7,
        "width": 216,
        "height": 1012,
        "content": "Optional: You can just leave one notification node"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "35df95f2-f10f-4625-aafe-6a09a9a0dcda",
  "connections": {
    "eb5d8c55-3806-4e7f-bbc7-7d41879a0ad1": {
      "main": [
        [
          {
            "node": "492fca15-3711-4357-b5d1-8d68e4b11ee5",
            "type": "main",
            "index": 0
          },
          {
            "node": "886d2a08-c897-4b6e-a517-71a30acc5230",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "92ed5826-54c7-4f20-b017-62fa6cb3f5cc": {
      "main": [
        [
          {
            "node": "eb5d8c55-3806-4e7f-bbc7-7d41879a0ad1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9313716b-396f-417d-a0de-3dc8b6921c2f": {
      "main": [
        [
          {
            "node": "dd501db5-689c-47b3-94f1-c4c3d1bcd181",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9223ad51-d408-4348-964c-778f1efeea56": {
      "main": [
        [
          {
            "node": "4b99efde-5648-4962-a0ef-e97f34b1283e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4e0a8146-ed68-4301-b698-ea539c83382b": {
      "main": [
        [
          {
            "node": "92ed5826-54c7-4f20-b017-62fa6cb3f5cc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "152dffb6-38bb-4f83-bbf6-bfd7d1736969": {
      "main": [
        [
          {
            "node": "f33a19fb-1da8-434e-a6f4-aaa8e346f510",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f33a19fb-1da8-434e-a6f4-aaa8e346f510": {
      "main": [
        [
          {
            "node": "4e0a8146-ed68-4301-b698-ea539c83382b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dd501db5-689c-47b3-94f1-c4c3d1bcd181": {
      "main": [
        [],
        [
          {
            "node": "152dffb6-38bb-4f83-bbf6-bfd7d1736969",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "886d2a08-c897-4b6e-a517-71a30acc5230": {
      "main": [
        [
          {
            "node": "9313716b-396f-417d-a0de-3dc8b6921c2f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "375eae45-91ea-4057-b704-768a862137f4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4b99efde-5648-4962-a0ef-e97f34b1283e": {
      "main": [
        [
          {
            "node": "dd501db5-689c-47b3-94f1-c4c3d1bcd181",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "492fca15-3711-4357-b5d1-8d68e4b11ee5": {
      "main": [
        [
          {
            "node": "9313716b-396f-417d-a0de-3dc8b6921c2f",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "b9d5764a-2718-4c15-888f-4908ee35ef1c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Création de contenu, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds21
Catégorie2
Types de nœuds12
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Dahiana

Dahiana

@mssporto

No-Code Specialist with more than 10 years of experience in Digital Marketing. Currently working with Bubble. Webflow, AI, Agents and N8N.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34