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
- Script generation — Claude generates a structured YouTube script with hook, sections, talking points, and lower thirds
- Remotion export — The script is converted into a Remotion-compatible JSON package
- Video rendering — The Remotion renderer builds the video from React components
- 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:
- Converts the script JSON into React/Remotion components
- Renders each frame as video
- Composites audio, overlays, and transitions
- 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
| Tool | Purpose |
|---|---|
pressroom_youtube_script | Generate a script from content or brief |
pressroom_youtube_list | List scripts |
pressroom_youtube_export | Export as Remotion JSON |
pressroom_youtube_render | Trigger video rendering |
pressroom_youtube_upload_footage | Upload footage to a script |
pressroom_youtube_publish_rendered | Publish rendered video to YouTube |
pressroom_youtube_render_chyron | Render 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)