Captions
Burn styled captions into any video from a transcript or SRT. Pick a preset and ship a ready-to-post MP4.
Still needed: Video File, Transcript (SRT)
Recipes using this pipeline
Articles about this pipeline
Captions API
Call this pipeline from your own code. One request dispatches a run; the model is an input field, not a separate endpoint.
bun add @pipe2-ai/sdk import { createClient } from "@pipe2-ai/sdk";
const client = createClient(process.env.PIPE2_TOKEN!);
const { run_pipeline } = await client.RunPipeline({
pipeline_slug: "captions",
input: {
source_asset_id: "a1b2c3d4-0000-4000-8000-000000000001",
transcript_asset_id: "a1b2c3d4-0000-4000-8000-000000000002",
},
});pip install pipe2 import asyncio
import os
from pipe2 import Pipe2Client
client = Pipe2Client(token=os.environ["PIPE2_TOKEN"])
run = asyncio.run(client.run_pipeline(
pipeline_slug="captions",
input={
"source_asset_id": "a1b2c3d4-0000-4000-8000-000000000001",
"transcript_asset_id": "a1b2c3d4-0000-4000-8000-000000000002",
},
))go get github.com/pipe2-ai/sdk-go client := pipe2.NewClient(os.Getenv("PIPE2_TOKEN"))
input := json.RawMessage(`{
"source_asset_id": "a1b2c3d4-0000-4000-8000-000000000001",
"transcript_asset_id": "a1b2c3d4-0000-4000-8000-000000000002"
}`)
run, err := pipe2.RunPipeline(context.Background(), client, "captions", input)
if err != nil {
log.Fatal(err)
}brew install pipe2-ai/tap/pipe2 pipe2 pipelines run \
--pipeline captions \
--input-json '{"source_asset_id": "a1b2c3d4-0000-4000-8000-000000000001", "transcript_asset_id": "a1b2c3d4-0000-4000-8000-000000000002"}' \
--waitParameters
-
source_asset_idrequired -
Video to burn captions into. Asset id returned by an upload. See /docs/api/ for the upload flow.
string -
transcript_asset_idrequired -
Transcript to caption from, produced by the transcription pipeline. Asset id returned by an upload. See /docs/api/ for the upload flow.
string -
position -
Vertical anchor for the burned text. "Auto" lets the pipeline pick the opposite half from the subject when an upstream reframe provides a hint (otherwise falls through to "bottom"). "Bottom" is the canonical TikTok placement; pick "top" when the subject fills the lower half of the frame.
autobottomtopmiddledefaultauto
Show all 4 inputs
-
preset_name -
Caption style preset — controls font, size, colour and placement of the burned-in captions.
tiktok-bold-yellowminimal-whitesubtle-dropkaraoke-gradientbig-serifserif-editorialdefaultserif-editorial
Use it from an AI agent
Point any MCP client at pipe2 and your agent gets these tools. It finds this pipeline, reads the same schema above, then runs it.
- list_pipelines
- get_pipeline_schema
- run_pipeline
- get_pipeline_run_status
- request_upload
https://mcp.pipe2.ai/mcp {
"mcpServers": {
"pipe2ai": {
"url": "https://mcp.pipe2.ai/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}Captions: Burn Styled Captions Into Any Video
Attach a video and an SRT transcript, pick a style, and get back an MP4 with captions burned directly into the pixels. No CapCut, no Premiere, no caption extension to install, just a ready-to-post file sized for TikTok, Reels, and Shorts.
Need the transcript first? Run the Transcription pipeline on any video or audio, the resulting SRT lands in your library and plugs straight into this step. Edit it there if anything needs correcting before you burn it in.
How It Works
- Attach your video: upload from your device or pick one from your library.
- Attach the SRT transcript: generate one with the Transcription pipeline, or upload an existing .srt from any source.
- Pick a caption style: five production-ready presets tuned for different audiences.
- Download the result: a new MP4 with captions burned in, plus a poster frame for thumbnails.
Caption Style Presets
- TikTok Bold Yellow: heavy weight, black stroke, TikTok-safe positioning. The default everyone copies.
- Minimal White: clean sans-serif with a soft shadow. Works for talking-head podcasts and interviews.
- Subtle Drop Shadow: low-contrast caption for cinematic edits where the visuals carry the scene.
- Karaoke Gradient: active word highlighted in a purple→pink gradient as it's spoken. High retention on short-form.
- Big Serif: editorial-feel serif for brand docs, case studies, and long-form educational clips.
Why the Two-Step Flow
- Edit the transcript before burning: fix names, jargon, or speaker labels in the SRT instead of living with whatever STT gave you.
- Reuse one transcript across many styles: burn the same SRT with five different presets for A/B testing without re-transcribing.
- Bring your own SRT: if you already have a transcript from another tool, attach it and skip the transcription cost entirely.
- TikTok-safe positioning: captions clear the bottom-third UI overlays on every major platform.
Who It's For
- Short-form creators shipping daily Reels / Shorts / TikToks
- Podcasters repurposing long-form episodes into shareable clips
- Course creators and educators adding accessibility to tutorials
- Agencies producing branded social content at scale
- Anyone who has an SRT already and just wants it rendered cleanly into the video
Chain it after the Transcription pipeline for the full ship-ready flow, or feed the output straight into the Video Reel pipeline for multi-clip compilations.
Frequently Asked Questions
What file formats are supported?
Where do I get an SRT transcript?
Are the captions burned into the pixels or overlaid on top?
Can I edit the transcript before burning it in?
Can I reuse one transcript across multiple caption styles?
How long does the caption burn take?
Explore more pipelines
See all →Generate AI videos from a text prompt, image, or reference clip. Cinematic shots, product reveals, lifestyle ads, with synchronized audio and natural motion.
Generate AI images from text or reference photos. Product shots, character art, posters with readable text, photoreal portraits, high resolution in seconds.
Turn text into natural speech with dozens of voices, 70+ languages, and custom style directions for tone, accent, and pacing.
Generate original background music that matches any mood, genre, and length you describe. Royalty-free, ready in seconds.