Submit any video URL — podcast, webinar, interview, or YouTube video — along with the title, creator name, niche, target audience, and tone and the workflow transcribes the full recording automatically. WayinVideo's Transcription API returns a speaker-labeled, timestamped transcript which is sent to GPT-4o-mini in one call to produce all three content pieces simultaneously: a 10-tweet Twitter thread, a 200–300 word LinkedIn post, and a 600–800 word SEO blog post with HTML structure, meta description, and focus keyword. Word counts are tracked for all three pieces and everything is saved as one row in Google Sheets with Status set to Draft. Built for content marketers, solo creators, agencies, and social media managers who want to repurpose every video into three platform-specific pieces without writing anything manually.
⚠️ WayinVideo API key appears in 2 steps — replace
YOUR_WAYINVIDEO_API_KEYin both 2. WayinVideo — Submit Transcription and 4. WayinVideo — Get Transcript Results. Missing either one will cause the workflow to fail.
Estimated Setup Time: 15–20 minutes
Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import
Get your WayinVideo API key — Log in to your WayinVideo account → go to Account Settings → copy your API key
Add your WayinVideo API key to node 2 — Open node 2. WayinVideo — Submit Transcription → find the Authorization header value Bearer YOUR_WAYINVIDEO_API_KEY → replace YOUR_WAYINVIDEO_API_KEY with your actual key
Add your WayinVideo API key to node 4 — Open node 4. WayinVideo — Get Transcript Results → find the same Authorization header → replace YOUR_WAYINVIDEO_API_KEY with the same key
Connect OpenAI — Open node 9. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection
Create your Google Sheet tab — Open your Google Sheet → add a tab named exactly Content Engine → add these 18 column headers in row 1: Video URL, Video Title, Creator Name, Niche, Target Audience, Duration (min), Twitter Thread, Twitter Word Count, LinkedIn Post, LinkedIn Word Count, Blog Title, Blog Meta Description, Focus Keyword, Blog Content, Blog Word Count, Hashtags, Generated On, Status
Get your Google Sheet ID — Open your Google Sheet in a browser → copy the string between /d/ and /edit in the URL — this is your Sheet ID
Connect Google Sheets — Open node 11. Google Sheets — Save Content Engine → click the document field → replace YOUR_GOOGLE_SHEET_ID by selecting your spreadsheet or entering the Sheet ID manually → click the credential dropdown → add Google Sheets OAuth2 → authorize access
Activate the workflow — Toggle the workflow to Active → copy the Form URL from node 1. Form — Video URL + Content Details → open it in a browser to submit your first video
Step 1 — Form: Video URL + Content Details
You open the form URL and fill in six fields: the video URL (YouTube, Zoom, Vimeo, Loom, or any direct link), the video or episode title, the creator or brand name, the content niche (e.g. Digital Marketing, SaaS, Finance), the target audience, and the content tone (e.g. Professional, Casual and friendly, Inspirational). Submitting the form starts the pipeline.
Step 2 — HTTP: WayinVideo — Submit Transcription
The video URL is sent to WayinVideo's Transcription API — note this is a different API endpoint from Summarization, using /v2/transcripts. WayinVideo accepts the job and returns a task ID. The transcription returns speaker-labeled segments with timestamps and the full spoken text.
Step 3 — Wait: 90 Seconds
The workflow pauses 90 seconds before the first status check, giving WayinVideo time to transcribe the full video.
Step 4 — HTTP: WayinVideo — Get Transcript Results
A GET request checks the transcripts results endpoint using the task ID from step 2. It returns the current status and, once complete, the full transcript array where each segment includes the speaker label, start time in milliseconds, end time, and spoken text.
Step 5 — IF: Transcription Complete?
This is the polling gate. If the status equals SUCCEEDED (YES path), the transcript is ready and the workflow moves forward to formatting. If still processing (NO path), the workflow routes to 6. Wait — 30 Seconds Retry which pauses 30 seconds then loops back to step 4. This repeats until SUCCEEDED.
Step 6 — Wait: 30 Seconds Retry
When the transcript is not yet ready, the workflow waits 30 seconds then returns to step 4 for another check.
Step 7 — Code: Format Transcript
Each transcript segment is formatted as [Speaker | MM:SS] Spoken text and all segments are joined into a single readable text block. Total duration is calculated from the last segment's end time. A word count of the transcript and the list of unique speakers are also extracted. All six form inputs are packaged alongside the formatted transcript for the GPT prompt.
Step 8 — AI Agent: Generate All 3 Content Pieces
GPT-4o-mini receives the full formatted transcript as the main input and the video context (title, creator, niche, audience, tone, duration, URL) in the system prompt. It generates all three pieces in one call using eight labeled output sections. For the Twitter thread: 10 numbered tweets (1/ to 10/), hook first, CTA last, each under 280 characters, no hashtags in the thread body, hashtags added separately as THREAD_HASHTAGS. For LinkedIn: a strong first line, short paragraphs, 3–5 numbered insights, a closing question, and professional hashtags. For the blog: an SEO title at 55–60 characters, a meta description at 150–155 characters, 600–800 words with HTML H2 headings, the focus keyword used naturally in the title, first paragraph, and at least one heading, and a concluding paragraph.
Step 9 — OpenAI: GPT-4o-mini Model
This is the language model powering the three-platform content generation.
Step 10 — Code: Parse All Content Outputs
All eight labeled sections are extracted from the AI output using regex: TWITTER_THREAD, THREAD_HASHTAGS, LINKEDIN_POST, BLOG_TITLE, BLOG_META_DESCRIPTION, BLOG_CONTENT, FOCUS_KEYWORD, and HASHTAGS. The Twitter thread and thread hashtags are combined into one field. Word counts are calculated for all three pieces — HTML tags are stripped from the LinkedIn and blog text before counting. If the Twitter thread, LinkedIn post, or blog content are missing, the step throws a clear error. All video metadata from step 7 is also packaged for the sheet row.
Step 11 — Google Sheets: Save Content Engine
One row is appended to your Content Engine tab with all 18 columns: video URL, video title, creator name, niche, target audience, estimated duration, Twitter thread with hashtags, Twitter word count, LinkedIn post, LinkedIn word count, blog title, blog meta description, focus keyword, blog content, blog word count, universal hashtags, generation timestamp, and Status set to Draft.
✅ Transcription API with speaker labels — WayinVideo returns each segment with the speaker's name and timestamp — giving GPT much richer context than a plain text dump
✅ Three platforms in one GPT call — All content is generated together in a single request so the voice and insights stay consistent across Twitter, LinkedIn, and the blog
✅ Twitter thread hashtags kept separate from body — The thread body follows Twitter best practice with no inline hashtags — hashtags are appended at the end as a separate section
✅ HTML-ready blog post — The blog content uses HTML H2 tags for headings so you can paste directly into WordPress, Webflow, or any CMS without additional formatting
✅ SEO meta description and focus keyword generated — Every blog post comes with a 150–155 character meta description and a primary keyword — ready to paste into your SEO plugin
✅ Word counts tracked for all three pieces — Twitter thread, LinkedIn post, and blog content each have their own count column so you can verify length before publishing
✅ Duration calculated from transcript — The estimated video duration in minutes is logged in the sheet so you can track which recordings produced the most content
Add a retry limit to stop infinite polling — Before node 6. Wait — 30 Seconds Retry, add a Set step that increments a poll counter, then add a second IF check to stop after 15 polls and send a Gmail error notification instead of looping indefinitely.
Send all three pieces to Gmail for review — After node 11. Google Sheets — Save Content Engine, add a Gmail step that sends the Twitter thread, LinkedIn post, and blog title in a plain-text email to the creator so they can review everything in their inbox before publishing.
Add a Slack notification when content is ready — After node 11. Google Sheets — Save Content Engine, add a Slack step that posts the video title, niche, and a link to the Content Engine sheet to a #content-team channel so your team knows new content is ready to review.
Change the blog post length — In the system prompt of node 8. AI Agent — Generate All 3 Content Pieces, change 600-800 words to a different range — for example 800-1000 words for more detailed posts or 400-600 words for shorter content.
Change the Twitter thread length — In the system prompt of node 8. AI Agent — Generate All 3 Content Pieces, change Exactly 10 tweets to a different number — for example 8 tweets for shorter videos or 12 tweets for longer recordings with more insights.
Form submission not starting the workflow:
WayinVideo returning an error on submission:
YOUR_WAYINVIDEO_API_KEY in node 2. WayinVideo — Submit Transcription is replaced with your actual API key — not the placeholder/v2/transcripts endpoint, not /v2/summaries — confirm the URL is correctWorkflow stuck in the polling loop:
GPT not generating all three content pieces:
Google Sheets not saving the row:
YOUR_GOOGLE_SHEET_ID in node 11. Google Sheets — Save Content Engine is replaced with your actual Sheet ID from the URLNeed help setting this up or want a custom version built for your team or agency?
📧 Email:[email protected]
🌐 Website:https://isawow.com