Video studio

The video studio turns content and briefs into fully rendered YouTube videos using the Remotion rendering pipeline.

Video studio

The video studio turns content and briefs into fully rendered YouTube videos using the Remotion rendering pipeline.

Pipeline overview

Content/Brief → YouTube Script → Remotion Components → Rendered Video → YouTube Upload
  1. Script generation — Claude generates a structured YouTube script with hook, sections, talking points, and lower thirds
  2. Remotion export — The script is converted into a Remotion-compatible JSON package
  3. Video rendering — The Remotion renderer builds the video from React components
  4. Upload — The rendered video is published to YouTube with metadata

Generating a YouTube script

From existing content

Generate a script based on a content item already in the queue:

POST /api/youtube/generate
{"content_id": 42}

From a brief

Generate a script from a topic description:

POST /api/youtube/generate
{"brief": "Why Kubernetes security changed in 2025 — three CVEs that shifted the industry"}

Script structure

A generated script includes:

  • Hook — Opening 10-15 seconds to grab attention
  • Sections — Structured segments with talking points
  • Lower thirds — On-screen text overlays (names, stats, key points)
  • Transitions — Section transitions and visual cues
  • CTA — Closing call-to-action

Managing scripts

List scripts

GET /api/youtube/scripts

Update a script

PATCH /api/youtube/scripts/{script_id}

Body: {title?, sections?, talking_points?, lower_thirds?}

Edit any part of the script before rendering.

Delete a script

DELETE /api/youtube/scripts/{script_id}

Remotion rendering

Export as Remotion JSON

GET /api/youtube/scripts/{script_id}/export

Returns the script packaged as a Remotion-compatible JSON structure that maps to React components.

Trigger a render

POST /api/youtube/scripts/{script_id}/render

Sends the script to the Remotion renderer. The renderer:

  1. Converts the script JSON into React/Remotion components
  2. Renders each frame as video
  3. Composites audio, overlays, and transitions
  4. Outputs a final video file

The render runs asynchronously. Poll the script status to check completion.

Brand chyrons

Render standalone brand lower-third overlays:

POST /api/youtube/render-chyron
{"text": "Jane Smith, VP Engineering", "style": "default"}

Chyrons use the org’s brand colors and fonts (discovered via brand scraping or configured in assets).

Uploading footage

Associate raw footage or b-roll with a script before rendering:

POST /api/youtube/scripts/{script_id}/upload-footage

Accepts multipart form data. Uploaded footage is available as a source in the Remotion composition.

Publishing to YouTube

After rendering completes, publish the video to YouTube:

POST /api/youtube/scripts/{script_id}/publish-rendered

This uploads the rendered video to YouTube with metadata pulled from the script:

  • Title — From the script title
  • Description — Generated from the script sections
  • Tags — Derived from the content topics and brand keywords

Requires YouTube OAuth to be configured in Settings > Integrations.

MCP tools

ToolPurpose
pressroom_youtube_scriptGenerate a script from content or brief
pressroom_youtube_listList scripts
pressroom_youtube_exportExport as Remotion JSON
pressroom_youtube_renderTrigger video rendering
pressroom_youtube_upload_footageUpload footage to a script
pressroom_youtube_publish_renderedPublish rendered video to YouTube
pressroom_youtube_render_chyronRender a brand chyron overlay

Workflow example

1. Generate script from a blog post:
   pressroom_youtube_script(org_id=1, content_id=42)

2. Review and edit the script in the dashboard

3. Upload any b-roll footage:
   POST /api/youtube/scripts/7/upload-footage

4. Trigger the render:
   pressroom_youtube_render(script_id=7)

5. Wait for render to complete, then publish:
   pressroom_youtube_publish_rendered(script_id=7)