Global AI Network

Blog to Instagram Reel AI Agent

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.

196+
Total Deployments
20 min
Setup Time
v1.0
Version

Need Help Getting Started? Our AI Specialists Will Set It Up For Free

1-Click Deployment 5-Min Setup Free Expert Support
Technology Partners

Required Integrations

This agent works seamlessly with these platforms to deliver powerful automation.

Browser Automation

Browser Automation

Automate web browsers with AI-powered interactions. Navigate pages, fill forms,...

Google Veo 3

Google Veo 3

Google's latest state-of-the-art video generation model. Produces extremely high...

OpenAI

OpenAI

Leverage OpenAI's powerful language models to generate text, answer questions, a...

Postiz

Postiz

Social media scheduling and management platform. Post to TikTok, X, LinkedIn, In...

Shotstack Video Editor

Shotstack Video Editor

Professional cloud-based video editing and rendering API. Create videos programm...

Step by Step

Setup Tutorial

mission-briefing.md

What This Agent Does

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:

  • Save 3-5 hours per video by eliminating manual content creation, video editing, and posting
  • Maintain consistent social media presence with automated content repurposing
  • Maximize content ROI by automatically converting written content into video format
  • Professional quality output with AI-generated visuals, voiceover, and music composition

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.

Who Is It For

This workflow is designed for:

  • Content Marketers who need to repurpose blog content into video format for social media distribution
  • Social Media Managers looking to automate Instagram video creation and posting workflows
  • Digital Marketing Agencies scaling video content production for multiple clients
  • Bloggers and Content Creators wanting to expand their audience by converting articles into engaging video content
  • E-commerce Businesses transforming product blog posts into promotional Instagram videos
  • Small Business Owners who lack time or resources for manual video editing and social media management

No video editing experience required—this automation handles everything from script generation to final posting.

Required Integrations

Browser Automation

Why it's needed: Scrapes and extracts content from the blog URL you provide, capturing text, images, and metadata for content transformation.

Setup steps:

  1. Navigate to Integrations in your TaskAGI dashboard
  2. Search for "Browser Automation" and click Connect
  3. The integration is typically pre-configured with TaskAGI's built-in browser service
  4. No API key required—this integration works out of the box
  5. Click Test Connection to verify functionality

Configuration: No additional configuration needed. The integration automatically handles web scraping with JavaScript rendering support.

OpenAI

Why it's needed: Powers the text-to-speech voiceover generation using OpenAI's TTS-1-HD model for professional-quality narration.

Setup steps:

  1. Visit platform.openai.com and create an account or log in
  2. Navigate to API Keys in your account settings
  3. Click Create new secret key and name it "TaskAGI Integration"
  4. Copy the API key immediately (it won't be shown again)
  5. In TaskAGI, go to IntegrationsOpenAIConnect
  6. Paste your API key in the API Key field
  7. Click Save and Test Connection

Important: Ensure your OpenAI account has available credits. TTS-1-HD costs approximately $0.030 per 1,000 characters.

Google Veo 3

Why it's needed: Generates high-quality AI video clips based on text prompts extracted from your blog content.

Setup steps:

  1. Access Google Cloud Console at console.cloud.google.com
  2. Create a new project or select an existing one
  3. Enable the Vertex AI API for your project
  4. Navigate to APIs & ServicesCredentials
  5. Click Create CredentialsAPI Key
  6. Copy the generated API key
  7. In TaskAGI, go to IntegrationsGoogle Veo 3Connect
  8. Enter your API key and project ID
  9. Click Authorize and Test Connection

Note: Google Veo 3 may require approval for API access. Check your project's API quotas and billing settings.

Shotstack

Why it's needed: Handles professional video rendering, merging all generated clips, voiceover, and background music into a polished final video.

Setup steps:

  1. Sign up at shotstack.io (free tier available)
  2. After email verification, log into your dashboard
  3. Navigate to API Keys in the left sidebar
  4. Copy your Production API Key (or use Sandbox key for testing)
  5. In TaskAGI, go to IntegrationsShotstackConnect
  6. Paste your API key in the API Key field
  7. Select your environment (Production or Sandbox)
  8. Click Save and Test Connection

Pricing note: Shotstack offers 20 free renders per month on the free tier. Production renders cost $0.05-0.15 per output minute.

Postiz

Why it's needed: Manages the final step of uploading and publishing your video to Instagram with captions and scheduling options.

Setup steps:

  1. Create an account at postiz.com
  2. Connect your Instagram account through Social AccountsAdd Account
  3. Complete Instagram's authorization flow
  4. Navigate to SettingsAPI Access
  5. Click Generate API Key and copy it
  6. In TaskAGI, go to IntegrationsPostizConnect
  7. Paste your API key
  8. Select your connected Instagram account from the dropdown
  9. Click Save and Test Connection

Instagram requirements: Your Instagram account must be a Business or Creator account for API posting capabilities.

Chat (Trigger)

Why it's needed: Provides the interactive interface where you input the blog URL and receive status updates throughout the workflow.

Setup steps:

  1. The Chat integration is built into TaskAGI—no external setup required
  2. Navigate to IntegrationsChatEnable
  3. Configure notification preferences (optional)
  4. The chat interface will be available in your workflow dashboard

Configuration: Customize response messages in the workflow's chat nodes to match your brand voice.

Configuration Steps

Step 1: Configure the Chat Trigger

The workflow begins when you send a message containing a blog URL.

Configuration:

  • Trigger Type: Set to "Message Received"
  • Input Validation: Enable URL detection to ensure valid blog links
  • Welcome Message: Customize the initial prompt (e.g., "Send me a blog URL to convert into an Instagram video")

Step 2: Set Up Blog Content Scraping

The Scrape Blog Content node extracts article text and metadata.

Parameters:

  • URL Source: {{trigger.message}} (pulls URL from chat input)
  • Wait for JavaScript: Enable (ensures dynamic content loads)
  • Timeout: 30000 milliseconds (30 seconds)
  • Extract Elements: Select "Text Content", "Images", and "Metadata"

Example output: Raw HTML content, article text, publish date, author information

Step 3: Configure Content Summarization

The Summarize Content node uses Claude Sonnet 4 to create a concise summary.

Parameters:

  • Model: claude-sonnet-4-20250514
  • Input: {{scrape_blog_content.text}}
  • Prompt:
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}}
  • Max Tokens: 500
  • Temperature: 0.7 (balanced creativity)

Step 4: Get Background Music Library

The Get Background Music List node retrieves available royalty-free music tracks.

Parameters:

  • Method: GET
  • URL: Your music library API endpoint (configure based on your music source)
  • Headers: Include any required authentication
  • Response Format: JSON array of music files

Step 5: Generate Video Script

The Generate Video Script node creates a structured script optimized for video.

Parameters:

  • Model: claude-sonnet-4-20250514
  • Input: {{summarize_content.output}}
  • Prompt:
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}}
  • Temperature: 0.8 (more creative)
  • Response Format: JSON

Step 6: Select Random Background Music

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}});

Step 7: Download Background Music

Parameters:

  • Method: GET
  • URL: {{select_random_music.url}}
  • Save Response As: Binary/File
  • Output Variable: background_music_file

Step 8: Generate Voiceover Narration

The Generate Voiceover node creates professional audio narration.

Parameters:

  • Model: tts-1-hd
  • Voice: Choose from alloy, echo, fable, onyx, nova, or shimmer
  • Input Text: Combine all narration from script:
{{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}}
  • Speed: 1.0 (normal pace)
  • Output Format: mp3

Step 9: Split Video Prompts for Loop Processing

Parameters:

  • Input Array: {{generate_video_script.scenes}}
  • Split By: Array items
  • Output: Individual scene objects for loop processing

Step 10: Loop Through Video Prompts

The Loop Video Prompts node processes each scene individually.

Configuration:

  • Loop Array: {{split_video_prompts.output}}
  • Loop Variable Name: loop.item
  • Parallel Execution: Disable (process sequentially to manage API limits)

Step 11: Generate Video Clips

Inside the loop, Generate Video Clip creates visuals for each scene.

Parameters:

  • Prompt: {{loop.item.visual_prompt}}
  • Duration: {{loop.item.duration}} seconds
  • Resolution: 1080x1920 (Instagram vertical format)
  • Style: "Cinematic" or "Realistic" (based on content type)
  • Motion: "Medium" (balanced movement)

Step 12: Merge All Generated Assets

The Merge All Assets node collects all video clips after loop completion.

Parameters:

  • Video Clips: {{loop.outputs}}
  • Voiceover: {{generate_voiceover.file}}
  • Background Music: {{background_music_file}}
  • Merge Strategy: Combine into single object

Step 13: Prepare Video Timeline

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}}
);

Step 14: Render Final Video with Shotstack

Parameters:

  • Timeline: {{prepare_video_timeline.output}}
  • Output Format: mp4
  • Resolution: 1080x1920
  • Frame Rate: 25 fps
  • Quality: high

Step 15: Wait for Render Completion

Parameters:

  • Render ID: {{render_final_video.id}}
  • Check Interval: 5000 milliseconds (5 seconds)
  • Max Wait Time: 300000 milliseconds (5 minutes)
  • Success Status: done

Step 16: Upload Video to Postiz

Parameters:

  • File Source: {{wait_for_render.url}}
  • File Type: video/mp4
  • Upload Method: Direct URL or binary upload

Step 17: Post to Instagram

Parameters:

  • Media: {{upload_to_postiz.media_id}}
  • Caption: Generate from blog summary:
{{summarize_content.output}}

🔗 Read the full article: {{trigger.message}}

#contentmarketing #automation #instagram
  • Account: Select your connected Instagram account
  • Post Type: Reel (for video content)
  • Schedule: Immediate or specify date/time

Step 18: Send Completion Response

Parameters:

  • Message:
✅ 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!
  • Response Type: Success notification

Testing Your Agent

Running Your First Test

  1. Start the workflow from your TaskAGI dashboard
  2. Open the Chat interface connected to this workflow
  3. Send a test message with a blog URL (use a shorter article for faster testing)
    • Example: "https://yourblog.com/sample-article"
  4. Monitor execution in the workflow visualization panel

Verification Checklist

After Scrape Blog Content (Step 2):

  • ✅ Verify article text was extracted correctly
  • ✅ Check that HTML formatting was removed
  • ✅ Confirm metadata (title, author) was captured

After Summarize Content (Step 3):

  • ✅ Summary should be 2-3 paragraphs
  • ✅ Key points from article are included
  • ✅ Language is engaging and social-media friendly

After Generate Video Script (Step 5):

  • ✅ JSON structure is valid
  • ✅ Hook is attention-grabbing (3-5 seconds)
  • ✅ 3-4 scenes with clear visual prompts
  • ✅ Total duration is 30-45 seconds
  • ✅ CTA is clear and actionable

After Generate Voiceover (Step 8):

  • ✅ Audio file is generated successfully
  • ✅ Narration is clear and properly paced
  • ✅ Duration matches script timing

After Loop Completion (Step 11):

  • ✅ All video clips generated (check loop.outputs count)
  • ✅ Each clip matches its visual prompt
  • ✅ Resolution is 1080x1920 (vertical)

After Render Final Video (Step 14-15):

  • ✅ Render status shows "done"
  • ✅ Video URL is accessible