Transform blog posts into engaging Instagram videos automatically - scrapes content, generates AI voiceovers, creates video clips with Google Veo, and publishes with background music using Shotstack.
This agent works seamlessly with these platforms to deliver powerful automation.
Automate web browsers with AI-powered interactions. Navigate pages, fill forms,...
Google's latest state-of-the-art video generation model. Produces extremely high...
Leverage OpenAI's powerful language models to generate text, answer questions, a...
Social media scheduling and management platform. Post to TikTok, X, LinkedIn, In...
Professional cloud-based video editing and rendering API. Create videos programm...
This powerful automation workflow transforms blog articles into engaging Instagram video content with zero manual effort. Simply provide a blog URL, and the agent scrapes the content, generates a professional video script, creates AI-powered video clips with voiceover narration and background music, then automatically posts the finished video to your Instagram account.
Key benefits:
Perfect for: Content marketers repurposing blog posts, social media managers maintaining Instagram feeds, digital agencies scaling video production, and bloggers expanding their content reach across platforms.
This workflow is designed for:
No video editing experience required—this automation handles everything from script generation to final posting.
Why it's needed: Scrapes and extracts content from the blog URL you provide, capturing text, images, and metadata for content transformation.
Setup steps:
Configuration: No additional configuration needed. The integration automatically handles web scraping with JavaScript rendering support.
Why it's needed: Powers the text-to-speech voiceover generation using OpenAI's TTS-1-HD model for professional-quality narration.
Setup steps:
Important: Ensure your OpenAI account has available credits. TTS-1-HD costs approximately $0.030 per 1,000 characters.
Why it's needed: Generates high-quality AI video clips based on text prompts extracted from your blog content.
Setup steps:
Note: Google Veo 3 may require approval for API access. Check your project's API quotas and billing settings.
Why it's needed: Handles professional video rendering, merging all generated clips, voiceover, and background music into a polished final video.
Setup steps:
Pricing note: Shotstack offers 20 free renders per month on the free tier. Production renders cost $0.05-0.15 per output minute.
Why it's needed: Manages the final step of uploading and publishing your video to Instagram with captions and scheduling options.
Setup steps:
Instagram requirements: Your Instagram account must be a Business or Creator account for API posting capabilities.
Why it's needed: Provides the interactive interface where you input the blog URL and receive status updates throughout the workflow.
Setup steps:
Configuration: Customize response messages in the workflow's chat nodes to match your brand voice.
The workflow begins when you send a message containing a blog URL.
Configuration:
The Scrape Blog Content node extracts article text and metadata.
Parameters:
{{trigger.message}} (pulls URL from chat input)30000 milliseconds (30 seconds)Example output: Raw HTML content, article text, publish date, author information
The Summarize Content node uses Claude Sonnet 4 to create a concise summary.
Parameters:
claude-sonnet-4-20250514
{{scrape_blog_content.text}}
Summarize the following crawled webpage content in 2-3 concise paragraphs. Focus on the main points, key takeaways, and actionable insights. Make it engaging and suitable for social media audiences.
Content: {{scrape_blog_content.text}}
500
0.7 (balanced creativity)The Get Background Music List node retrieves available royalty-free music tracks.
Parameters:
GET
The Generate Video Script node creates a structured script optimized for video.
Parameters:
claude-sonnet-4-20250514
{{summarize_content.output}}
You are a creative director and scriptwriter specializing in short-form social media videos. Based on this blog summary, create a compelling 30-45 second video script for Instagram.
Format your response as JSON with this structure:
{
"hook": "Opening line (3-5 seconds)",
"scenes": [
{"duration": 8, "narration": "Scene 1 text", "visual_prompt": "Detailed visual description"},
{"duration": 8, "narration": "Scene 2 text", "visual_prompt": "Detailed visual description"},
{"duration": 8, "narration": "Scene 3 text", "visual_prompt": "Detailed visual description"}
],
"cta": "Call to action (3-5 seconds)"
}
Blog Summary: {{summarize_content.output}}
0.8 (more creative)The Select Random Music node picks a track from your library.
Function Code:
function selectMusic(musicList) {
const randomIndex = Math.floor(Math.random() * musicList.length);
return musicList[randomIndex];
}
return selectMusic({{get_background_music_list.data}});
Parameters:
GET
{{select_random_music.url}}
background_music_file
The Generate Voiceover node creates professional audio narration.
Parameters:
tts-1-hd
alloy, echo, fable, onyx, nova, or shimmer
{{generate_video_script.hook}} {{generate_video_script.scenes[0].narration}} {{generate_video_script.scenes[1].narration}} {{generate_video_script.scenes[2].narration}} {{generate_video_script.cta}}
1.0 (normal pace)mp3
Parameters:
{{generate_video_script.scenes}}
The Loop Video Prompts node processes each scene individually.
Configuration:
{{split_video_prompts.output}}
loop.item
Inside the loop, Generate Video Clip creates visuals for each scene.
Parameters:
{{loop.item.visual_prompt}}
{{loop.item.duration}} seconds1080x1920 (Instagram vertical format)The Merge All Assets node collects all video clips after loop completion.
Parameters:
{{loop.outputs}}
{{generate_voiceover.file}}
{{background_music_file}}
The Prepare Video Timeline node structures assets for Shotstack.
Function Code:
function prepareTimeline(clips, voiceover, music) {
let timeline = {
tracks: [
{
clips: clips.map((clip, index) => ({
asset: { type: "video", src: clip.url },
start: index * 8,
length: clip.duration
}))
},
{
clips: [{
asset: { type: "audio", src: voiceover.url },
start: 0,
volume: 1.0
}]
},
{
clips: [{
asset: { type: "audio", src: music.url },
start: 0,
volume: 0.3
}]
}
]
};
return timeline;
}
return prepareTimeline(
{{merge_all_assets.clips}},
{{merge_all_assets.voiceover}},
{{merge_all_assets.music}}
);
Parameters:
{{prepare_video_timeline.output}}
mp4
1080x1920
25 fpshigh
Parameters:
{{render_final_video.id}}
5000 milliseconds (5 seconds)300000 milliseconds (5 minutes)done
Parameters:
{{wait_for_render.url}}
video/mp4
Parameters:
{{upload_to_postiz.media_id}}
{{summarize_content.output}}
🔗 Read the full article: {{trigger.message}}
#contentmarketing #automation #instagram
Reel (for video content)Parameters:
✅ Video created and posted successfully!
📊 Post URL: {{post_to_instagram.url}}
🎬 Video Duration: {{wait_for_render.duration}} seconds
⏱️ Processing Time: {{workflow.duration}}
Your Instagram video is now live!
After Scrape Blog Content (Step 2):
After Summarize Content (Step 3):
After Generate Video Script (Step 5):
After Generate Voiceover (Step 8):
After Loop Completion (Step 11):
After Render Final Video (Step 14-15):