How to Use n8n with ._Template 121 Youtube Video Blog Seo Automatizado
If your team publishes YouTube videos but the accompanying blog post, SEO metadata, and cross-links get done "eventually" (read: never), you're leaking the majority of each video's organic reach. A si
If your team publishes YouTube videos but the accompanying blog post, SEO metadata, and cross-links get done "eventually" (read: never), you're leaking the majority of each video's organic reach. A single video can feed a transcript-based article, a meta description, structured data, and internal links — but doing that by hand for every upload is a 40-minute chore no one owns. Template 121 solves exactly this: it turns a new YouTube upload into a fully SEO-optimized blog post, automatically, using n8n.
The Problem: Video Content That Never Becomes Searchable
YouTube is a discovery engine, but Google still sends the largest share of long-tail traffic to text. When a video lives only on YouTube, you capture viewers who search inside YouTube — and lose everyone typing the same question into Google. The fix is well known: publish a companion blog article with the transcript, a summary, keywords, and an embed. The trouble is operational, not conceptual.
Manually, each video requires pulling the transcript, rewriting it into readable prose, choosing a target keyword, writing a title tag and meta description, adding the embed, and setting internal links. Multiply that across a weekly publishing cadence and it becomes a part-time job. So it gets skipped, and the SEO compounding never starts. Busy technical founders don't need another content strategy — they need the strategy to execute itself off a trigger they already have: hitting "publish" on YouTube.
The Solution: A Trigger-to-Article Pipeline in n8n
Template 121 wires YouTube, an LLM, and your CMS into a single event-driven workflow. The moment a new video appears on your channel, n8n fetches its metadata and transcript, uses an AI model to draft a structured, SEO-tuned article, and posts it as a draft (or live) to your blog. Nothing sits in a queue waiting for a human unless you want a review step.
The core node chain looks like this: Schedule Trigger (or RSS Feed Read on your channel's feed) → HTTP Request to the YouTube Data API → HTTP Request to a transcript endpoint → AI Agent / OpenAI (or Anthropic) node for generation → Set node to shape the payload → HTTP Request to your CMS. Because it's event-driven, the marginal cost of publishing a well-optimized article drops to essentially zero.
Step-by-Step Setup in n8n
1. Detect new videos. The simplest reliable trigger is the RSS Feed Read node pointed at https://www.youtube.com/feeds/videos.xml?channel_id=YOUR_CHANNEL_ID, wrapped by a Schedule Trigger set to poll every 15–30 minutes. Add an IF node comparing the latest videoId against a stored value (use the n8n Data Store, a Google Sheets row, or a static workflow variable) so you only process genuinely new uploads and never double-publish.
2. Pull metadata and transcript. Use an HTTP Request node against the YouTube Data API v3 videos.list endpoint with part=snippet,contentDetails to get the title, description, tags, and publish date. For the transcript, call your chosen captions endpoint (the timedtext API or a transcript service) with another HTTP Request node. Store credentials in n8n's Credentials manager as a Header Auth or OAuth2 entry — never hardcode the API key in the URL.
3. Generate the article. Feed the transcript and metadata into an AI node. Set the system prompt to enforce structure: an H1-free body starting with a value paragraph, <h2> sections, a target keyword derived from the video title, and a 150-character meta description. Ask the model to return clean JSON with fields title, slug, meta_description, body_html, and tags. Enable the node's JSON output mode so downstream nodes can reference fields directly.
4. Assemble the SEO payload. A Set node (or small Code node) builds the final HTML: prepend the YouTube <iframe> embed, append the transcript in a collapsible section, and inject JSON-LD VideoObject structured data so Google can associate the article with the video. Map meta_description and slug to your CMS's metadata fields here.
5. Publish. A final HTTP Request node posts to your CMS. For Ghost, that's POST /ghost/api/admin/posts/ authenticated with a JWT built in a preceding Code node; for WordPress, the REST wp/v2/posts endpoint with Application Password auth. Set status to draft during your first week so you can spot-check output, then flip to published once the prompt is dialed in.
Configuration Details That Matter
A few settings separate a workflow that runs from one that runs reliably. In every HTTP Request node, enable Retry On Fail (3 attempts, 5s between) because both the YouTube API and LLM endpoints occasionally return 429s. Add an Error Trigger workflow that pings you on Slack or WhatsApp when a run fails, so silent breakage never accumulates. Cap the transcript you send to the LLM — chunk anything over ~8,000 tokens with a Split In Batches node and summarize per chunk, then compose, to avoid context-limit errors on long videos.
For SEO quality, lock the prompt to one primary keyword per article and instruct the model to place it in the first sentence, one H2, and the meta description — no keyword stuffing. Have it generate an internal-link suggestion field referencing your existing posts (pass a list of published slugs into the prompt) so each new article strengthens your site's link graph instead of standing alone.
Benefits: Compounding Reach on Autopilot
Once live, every upload produces a searchable, structured, embed-carrying article within minutes — no human bottleneck. The VideoObject schema improves your odds of a video rich result in Google. Transcript text captures long-tail queries your video title never could. Internal links accumulate, lifting domain authority over time. And because the workflow is idempotent (the stored-videoId check), you can safely leave it running unattended. For a team shipping four videos a month, that's roughly 48 SEO assets a year created from work you were already doing.
Common Pitfalls to Avoid
Publishing raw transcripts. A verbatim caption dump reads badly and can look thin or spammy to Google. Always run it through the LLM rewrite step and keep the raw transcript in a collapsed section, not as the main body.
Skipping the dedupe check. Without the IF node comparing against a stored video ID, a Schedule Trigger re-processes the same RSS entries and floods your blog with duplicates. Persist the last-seen ID in a data store, not just workflow memory, so it survives restarts.
Hardcoding credentials. API keys pasted into URLs leak into execution logs. Use n8n Credentials and reference them via the node's authentication dropdown.
Going straight to published. LLM output drifts. Run in draft mode until you've reviewed 5–10 articles and tightened the prompt, then automate fully. And rate-limit your poll interval — polling YouTube every minute wastes quota for content that appears a few times a week.
Set it up once, and the gap between "video published" and "article ranking" closes from days to minutes — permanently.