Alchemy RecipeIntermediateworkflow

Build an Automated YouTube Channel with AI

Creating consistent YouTube content is time-consuming. Script writing, voiceover, visuals, and editing can take 20+ hours per video.

Time saved
Saves 15-20 hrs/week
Monthly cost
~$60/mo
Published

Running a YouTube channel requires constant content creation, editing, uploading, and engagement work. Most creators do this manually: write scripts, generate thumbnails, schedule posts, respond to comments. It's exhausting and repetitive, which is exactly the kind of work that automation should handle.

What if you could publish a new video every week without touching a single tool? You write a topic, AI generates the script, creates the thumbnail, uploads the video, and schedules social media posts, all without you opening YouTube Studios once. This isn't science fiction. It's entirely possible with existing AI tools and a proper orchestration layer.

The trick is connecting the right tools together so they talk to each other without manual handoffs. No copying text between tabs, no downloading files to re-upload elsewhere, no repeating information. Just pure automation from idea to published video.

The Automated Workflow

Which Orchestration Tool

For this workflow, I'd recommend n8n or Make. Zapier works too, but n8n gives you more flexibility for complex data transformations and video file handling. Make sits nicely in the middle; cost-effective and powerful without requiring you to run your own server.

I'll show the structure using n8n pseudocode, but I'll explain the API calls so you can adapt this to whichever platform you choose.

The Complete Workflow Steps

Your automated pipeline looks like this:

  1. Topic prompt arrives via webhook or email
  2. Claude generates a video script
  3. Script is cut into chapters
  4. DALL-E or similar creates a thumbnail
  5. Text-to-speech converts script to audio
  6. Video editor (like Remotion or synthesis API) combines assets
  7. YouTube API handles upload
  8. Social media posts are queued to Twitter, LinkedIn, etc.
  9. Database records the video for future reference

Step 1: Trigger and Topic Input

Create a webhook endpoint in your orchestration tool that accepts JSON. Someone sends a POST request with the video topic.

{
  "topic": "How to use Claude API for content creation",
  "channel": "tech_tutorial",
  "publish_date": "2024-01-15",
  "target_duration": "8-10 minutes"
}

Step 2: Script Generation via Claude API

Use Claude's API to generate a detailed video script. The API endpoint is straightforward.

POST https://api.anthropic.com/v1/messages
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

{
  "model": "claude-3-5-sonnet-20241022",
  "max_tokens": 2048,
  "messages": [
    {
      "role": "user",
      "content": "Write a YouTube video script for this topic: {{topic}}. The video should be {{target_duration}} long. Format the script with [SCENE] markers for each distinct section. Include speaking points, visual cues, and timing."
    }
  ]
}

The response will be a fully structured script with timing information. Store this in your orchestration tool's memory for use in later steps.

Step 3: Script Segmentation

Your script needs to be broken into chunks for text-to-speech processing. Write a small function in your orchestration tool to split the script by [SCENE] markers.

In n8n, you'd use the Code node:

const script = $input.all()[0].json.script;
const scenes = script.split('[SCENE]').filter(s => s.trim());

return scenes.map((scene, index) => ({
  scene_number: index + 1,
  content: scene.trim(),
  duration_estimate: Math.ceil(scene.trim().split(' ').length / 150) // rough estimate
}));

Step 4: Thumbnail Generation

Use DALL-E or Replicate's API to generate a thumbnail based on the video topic. Here's the Replicate endpoint approach:

POST https://api.replicate.com/v1/predictions
Content-Type: application/json
Authorization: Token YOUR_REPLICATE_API_KEY

{
  "version": "da77bc59ee60423279fd632efb4ce3e3d510b476cffb1d373a1f1f4e04895d89",
  "input": {
    "prompt": "YouTube thumbnail for a video titled '{{topic}}'. Bold text overlay, bright colours, professional design, 1280x720 resolution"
  }
}

Replicate returns a prediction ID. Poll that endpoint every 2 seconds until the image is ready, then download it:

GET https://api.replicate.com/v1/predictions/{prediction_id}

Once complete, you'll get a URL to the generated image.

Step 5: Text-to-Speech Conversion

For each scene segment, call a TTS API. Google Cloud Text-to-Speech, ElevenLabs, or Azure Speech Services all work. I'll use ElevenLabs as it produces natural-sounding voice:

POST https://api.elevenlabs.io/v1/text-to-speech/{voice_id}
Content-Type: application/json
Authorization: Bearer YOUR_ELEVEN_LABS_API_KEY

{
  "text": "{{scene_content}}",
  "model_id": "eleven_monolingual_v1",
  "voice_settings": {
    "stability": 0.5,
    "similarity_boost": 0.75
  }
}

The response includes a URL to the audio file. Download and store the URL or the file itself in your orchestration tool's storage.

Step 6: Video Assembly

This is the trickiest part. You need to combine:

  • TTS audio files (one per scene)
  • Generated thumbnail
  • Optional: stock footage or screen recordings
  • Text overlays with scene titles

For a workflow that requires zero manual work, use a video synthesis API like Synthesia, Descript, or build a custom solution with FFmpeg via a cloud function.

Alternatively, if you're comfortable with more setup, deploy a Remotion service (a React-based video renderer) on a serverless platform. Your orchestration tool would POST the scene data:

POST https://your-remotion-api.com/render

{
  "scenes": [
    {
      "text": "Scene 1 content",
      "audio_url": "https://audio-storage.com/scene1.mp3",
      "duration": 32
    }
  ],
  "thumbnail_url": "https://storage.com/thumb.png",
  "title": "Video title",
  "output_bucket": "gs://your-bucket/video_outputs"
}

The Remotion service renders the video and uploads the MP4 to your storage bucket, returning a URL.

Step 7: YouTube Upload

The YouTube Data API v3 handles uploads. This requires OAuth 2.0 authentication set up beforehand in your orchestration tool.

POST https://www.googleapis.com/youtube/v3/videos?part=snippet,status,processingDetails
Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN
Content-Type: application/json

{
  "snippet": {
    "title": "{{video_title}}",
    "description": "{{description_text}}\n\nAuto-generated with AI",
    "tags": ["ai", "tutorial", "automation"],
    "categoryId": "27",
    "defaultLanguage": "en"
  },
  "status": {
    "privacyStatus": "public",
    "publishAt": "{{publish_date}}T12:00:00Z",
    "selfDeclaredMadeForKids": false
  }
}

But that's just metadata. The actual video file upload uses a multipart request to:

POST https://www.googleapis.com/upload/youtube/v3/videos?uploadType=multipart&part=snippet,status

[multipart form data with video file and metadata]

After upload, YouTube returns a video ID. Store this in your database.

Step 8: Social Media Distribution

Once the video is uploaded, push notifications to other platforms. Use the Twitter API, LinkedIn API, or a tool like Buffer's API:

POST https://api.twitter.com/2/tweets
Authorization: Bearer YOUR_TWITTER_BEARER_TOKEN
Content-Type: application/json

{
  "text": "New video just dropped: {{video_title}}\n\nWatch it here: https://youtu.be/{{video_id}}\n\n#AI #Automation"
}

Do the same for LinkedIn, a blog post notification, or an email newsletter. All without manual work.

Step 9: Database Recording

Store metadata about the video in a database (Airtable, PostgreSQL, or your orchestration tool's built-in database):

{
  "video_id": "dQw4w9WgXcQ",
  "title": "How to use Claude API for content creation",
  "topic": "How to use Claude API for content creation",
  "script": "{{full_script}}",
  "thumbnail_url": "https://storage.com/thumb.png",
  "publish_date": "2024-01-15",
  "status": "published",
  "created_at": "2024-01-10T14:32:00Z",
  "social_posts": [
    { "platform": "twitter", "status": "sent" },
    { "platform": "linkedin", "status": "sent" }
  ]
}

Error Handling and Retry Logic

Build in retry mechanisms. If TTS fails, retry 3 times before alerting you. If video upload fails, put it in a queue for manual review. In n8n, use the Try/Catch node:

try {
  // API call
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(`HTTP ${response.status}`);
  return response.json();
} catch (error) {
  // Log error and trigger notification
  console.error('API failed:', error.message);
  // Send email or Slack alert
  return { error: error.message, retry: true };
}

The Manual Alternative

If you want more creative control over each step, you can build a semi-automated workflow. Claude generates the script, but you review and edit it before processing continues. You select the thumbnail from three DALL-E options. You approve the video before upload.

In your orchestration tool, add approval nodes that pause execution and send you a notification. You review the content, approve or reject, and the workflow continues. This takes maybe 20 minutes per video instead of 8 minutes for full automation, but gives you the safety net of human review.


Trigger → Script Generation → REVIEW & APPROVE → Thumbnail Generation → REVIEW & APPROVE → TTS → Video Assembly → REVIEW & APPROVE → Upload → Publish

It's still miles better than doing everything manually, but removes the "set it and forget it" pressure if you're concerned about quality.

Pro Tips

1. Rate Limiting and Quota Management

YouTube API has strict upload quotas (10,000 units per day; each upload costs about 1,600 units). Plan your publishing schedule accordingly. Space videos out to 1-2 per day maximum. Use delays in your orchestration tool between uploads:

// Add a 30-second delay between uploads
await new Promise(resolve => setTimeout(resolve, 30000));

2. Cost Optimisation

ElevenLabs TTS is roughly £0.30 per 1,000 characters. DALL-E image generation is £0.010 per image. Video processing is the wild card. Keep costs down by:

  • Reusing the same voice across all videos (cheaper bulk pricing)
  • Generating one thumbnail per video, not multiple options
  • Using Remotion or FFmpeg self-hosted rather than premium video APIs
  • Batching videos together if possible

3. Handle API Key Rotation

Store API keys in your orchestration tool's secure environment variables, not hardcoded. Rotate them monthly. If a key leaks, you'll catch unexpected API usage patterns in your billing dashboard.

4. Monitor Output Quality

Automation doesn't guarantee quality. Set up a simple dashboard that flags:

  • Videos with very short or very long durations (script generation failure)
  • Thumbnails that fail DALL-E generation
  • Audio files with gaps or silence
  • Videos that fail YouTube upload

Run a few videos through the workflow manually first. Tweak prompts and timing until the output quality meets your standard, then schedule future videos.

5. Build a Content Calendar Database For more on this, see Social media content calendar from blog posts and news feeds.

Link your orchestration tool to a content calendar (Airtable, Google Sheets, or Notion API). Pull topics from the calendar on a schedule (say, every Monday at 6 AM). This removes the manual step of triggering each workflow:

GET https://api.airtable.com/v0/{{base_id}}/{{table_name}}?filterByFormula=AND({Status}='scheduled',{Publish_Week}='week_of_{{current_week}}'})
Authorization: Bearer YOUR_AIRTABLE_API_KEY

Iterate through the results and trigger a new workflow instance for each video topic.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
Claude APIPay-as-you-go£8-20~2,000 tokens per script; pricing varies by usage
DALL-EPay-as-you-go£3-8One image per video; £0.010 per image
ElevenLabs TTSCreator (£99) or Pay-as-you-go£10-50Bulk pricing better for frequent use
YouTube APIFree tier£0Limited by quota, not cost
n8n CloudPro plan£20/monthOr self-host for £0 (requires infrastructure)
Google Cloud StoragePay-as-you-go£5-15Store scripts, audio, thumbnails, videos
Remotion (if used)Self-hosted or API£0-50Depends on compute usage; FFmpeg cheaper
Total£46-163/monthBased on 4 videos/week; scales with volume

This assumes 4 videos per week. If you publish daily, costs rise significantly (mainly TTS and storage). If you publish weekly, costs drop by 75%.

The key insight: automation pays for itself almost immediately if you were previously outsourcing script writing, thumbnail design, or video editing. At freelance rates, that alone is £500-2,000 per month.

Tool Pipeline Overview

How each tool connects in this workflow

1
ChatGPT

ChatGPT

Step 1

2
Descript

Descript

Step 2

3
ElevenLabs

ElevenLabs

Step 3

4
Midjourney

Midjourney

Step 4

5
Runway

Runway

Step 5

More Recipes