API GUIDE

How to add subtitles to a video with an API

Burning captions into a video means the text plays everywhere, even where sidecar SRT files are ignored. Doing it yourself means installing FFmpeg with libass and getting the subtitles filter exactly right. Here is how to do it with one API call instead.

The manual FFmpeg way

This needs FFmpeg built with libass, a machine to run it on, and correct escaping of the subtitle path. If an agent generates the filter, one wrong flag fails the whole render.

ffmpeg -i interview.mp4 -vf "subtitles=captions.srt" -c:a copy captioned.mp4

Do it with one API call

  1. 1

    Host the video and the caption file

    Provide public URLs for both, or upload local files with POST /api/v1/uploads and use the returned media URLs.

  2. 2

    Call the add-subtitles tool

    Send the source as the input named "main" and the SRT or WebVTT file as captions_url.

  3. 3

    Poll the job and download

    The response returns a jobId. Poll get_job until it succeeds, then download the captioned MP4 from the signed output URL.

REST
curl https://kinopipe.com/api/v1/tools/add-subtitles-to-video \
  -H "Authorization: Bearer kp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": [
      { "id": "main", "url": "https://example.com/interview.mp4" },
      { "id": "captions", "url": "https://example.com/captions.srt" }
    ]
  }'
Or just ask your agent
Connect the KinoPipe MCP server and say it in plain language:

Burn the subtitles from captions.srt into interview.mp4 and give me the finished file.

Connect MCP

FAQ

Does KinoPipe support SRT and WebVTT?

Yes. Pass a public SRT or WebVTT file as captions_url and it is burned into a durable MP4.

Can I keep the captions as a separate track instead of burning them?

This tool hardcodes captions so they play everywhere. Soft-subtitle muxing is a different workflow.