{"product_id":"n8n-workflow-60s-blog-summary-videos-w-openrouter-elevenlabs","title":"n8n Workflow: 60s Blog Summary Videos w\/ OpenRouter \u0026 ElevenLabs","description":"\u003ch3\u003eTurn your newest RSS blog post into a branded 60-second vertical video—automatically\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow grabs the latest unused post from your RSS feed, uses \u003cstrong\u003eOpenRouter\u003c\/strong\u003e to generate a source-grounded narration script, creates word-timed voiceover with \u003cstrong\u003eElevenLabs\u003c\/strong\u003e, and assembles a captioned vertical MP4 using \u003cstrong\u003eZvid\u003c\/strong\u003e. Run daily at \u003cstrong\u003e9am\u003c\/strong\u003e (or manually), review the finished video, and publish faster with consistent formatting.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eScheduled or manual run:\u003c\/strong\u003e Executes every day at \u003cstrong\u003e9am\u003c\/strong\u003e (or starts via a manual run) and loads workflow configuration values.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eDetects the newest unprocessed post:\u003c\/strong\u003e Reads your configured RSS feed, selects the newest post, and stops if that post was already processed in a previous production run.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eGenerates a 60s script:\u003c\/strong\u003e Fetches the full blog page when available; otherwise it falls back to RSS text. It builds a constrained prompt from page text and calls \u003cstrong\u003eOpenRouter\u003c\/strong\u003e to produce structured JSON (hook, 3–5 points, CTA, visual queries, and a music tag).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eFinds media and assembles video:\u003c\/strong\u003e Searches \u003cstrong\u003eZvid\u003c\/strong\u003e stock video for each scene’s visual query and selects best-fit clips. It also searches Zvid stock audio (with a file-size cap).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eVoiceover + captions:\u003c\/strong\u003e Generates narration with \u003cstrong\u003eElevenLabs\u003c\/strong\u003e including word-level timestamps, then uploads to Zvid and builds a branded project with timed captions.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eValidation + render:\u003c\/strong\u003e Validates the video and returns a credit quote. In the default \u003cem\u003edryRun=false\u003c\/em\u003e path, it submits a paid render, polls for completion, and provides a downloadable MP4.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eSaaS operators who want daily \u003cstrong\u003evertical video\u003c\/strong\u003e summaries for new blog content\u003c\/li\u003e\n  \u003cli\u003eAutomation engineers maintaining an \u003cstrong\u003en8n workflow\u003c\/strong\u003e for repeatable content repurposing\u003c\/li\u003e\n  \u003cli\u003eTeams standardizing scripting, voice, music, and captions across every post\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eLogic flow uses: \u003cstrong\u003eif\u003c\/strong\u003e, \u003cstrong\u003eset\u003c\/strong\u003e, \u003cstrong\u003ecode\u003c\/strong\u003e, \u003cstrong\u003ewait\u003c\/strong\u003e\n\u003c\/li\u003e\n  \u003cli\u003eMedia generation\/assembly: \u003cstrong\u003eZvid\u003c\/strong\u003e via \u003cstrong\u003ezvidn8n-nodes-zvid\u003c\/strong\u003e nodes\u003c\/li\u003e\n  \u003cli\u003eIncludes a \u003cstrong\u003esticky note\u003c\/strong\u003e in the workflow canvas for guidance\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46359768105139,"sku":"N8N-22175","price":49.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/8XOvNENSZ2uKl-HnPpZRx_L4cXZtgS.png?v=1793697290","url":"https:\/\/buyflowscripts.com\/products\/n8n-workflow-60s-blog-summary-videos-w-openrouter-elevenlabs","provider":"N8N Commerce","version":"1.0","type":"link"}