Video URL → SEO Blog Post — Automated Workflow using WayinVideo + GPT-4o-mini

Hey n8n community!

Sharing a workflow I built that turns any video URL into a full SEO blog post draft — saved straight to Google Sheets. No file downloading, no size limits, no manual copy-pasting.


What It Does

You send a video URL via webhook and get back a complete blog post with SEO title, meta description, slug, H2 sections, FAQs, key takeaways, and tags — all in one automated run.


How It Works

  1. Webhook — receives a video URL via POST request
  2. WayinVideo API — transcribes the video directly from the URL. No file download needed, no size limits, works with YouTube, Zoom, Vimeo, TikTok, Loom and more. Returns clean JSON with speaker labels and timestamps
  3. Polling loop — checks every 5 seconds until status = SUCCEEDED
  4. Code node — joins transcript segments into one clean text block, calculates word count and video duration
  5. GPT-4o-mini — writes a full structured SEO blog post from the transcript
  6. Structured Output Parser — validates and enforces the JSON schema
  7. Google Sheets — saves the final draft as a new row

Why WayinVideo for Transcription?

I tried Whisper first but kept hitting the 25MB file size limit and had to deal with FFmpeg conversion and audio chunking before every run.

WayinVideo just takes the video URL directly — no file handling at all. It processes everything server-side and returns a structured transcript ready to use in the next node.

Docs here: Video Transcription API - WayinVideo API Docs


Google Sheets Output

Each video creates one row with:

  • SEO Title, Slug, Focus Keyword
  • Meta Description
  • Secondary Keywords
  • Full H2 sections (300+ words each)
  • Key Takeaways + FAQs
  • Read Time, Tags, Word Count, Video Duration
  • Status: Draft

Setup Steps

  1. Add your WayinVideo API key in the two HTTP Request nodes
  2. Add OpenAI credentials to the GPT nodes
  3. Connect Google Sheets OAuth
  4. Create a sheet with these columns:
    Date | Video URL | SEO Title | Slug | Focus Keyword | Meta Description | Secondary Keywords | Read Time | Tags | Word Count | Duration (min) | Status

Tech Stack

  • n8n — workflow automation
  • WayinVideo API — video transcription
  • GPT-4o-mini — blog post generation
  • Google Sheets — draft storage

Drop a comment if you want the full workflow JSON — happy to share!

2 Likes

How do you make sure that the focus keyword is actually searched by people? It’s the AI agent who comes up with it for the article? If you want to use verified keywords (as well as semantic keywords), you can add the DataForSEO HTTP request. But you need to have an account with them and pay per API call.

Hey Haian_Abou-Karam

Thank you so much for sharing this and taking the time to report it

I just checked from my side, and the URL is opening fine, so it doesn’t seem like an issue with the API itself. Most likely, this is related to IP or network restrictions.

You can try these quick fixes:

  • Open in Incognito mode

  • Try a different browser

  • Use a VPN (or turn it off if already using one)

  • Switch to another network (like mobile hotspot)

  • Disable browser extensions (Adblock, etc.)

If it works after changing network/VPN, then it’s definitely an IP-related issue.

Hope this helps Let me know how it goes!

1 Like

Hey Benjamin_Behrens

Great question!

WayinVideo handles multi-language videos really well — it auto-detects the source language, so you don’t need to specify it manually most of the time.

For the translation part, I use the target_lang parameter in the API request and set it to "en". This tells WayinVideo to return the transcript already translated into English — so by the time it hits the GPT node, everything is in English and the SEO title, H2s, and meta description come out clean and accurate.

No separate translation pass needed — the transcription and translation happen in the same single API call.

So the flow works the same whether the video is in Spanish, English, Hindi, French, or any other language. Just set target_lang: "en" and the rest of the workflow runs exactly as normal.
Worth checking the API docs for the full list of supported languages — it covers quite a few!

1 Like