Long Video to ClipsSynchronous APIHuman + agent friendly

Subscut video clipping API documentation

Use /podcast-to-clips to turn a long video, interview, or talking-head video into multiple short clips with titles, scores, captions, and rendered outputs.

Overview

This endpoint is built specifically for spoken long-form video. You send one public video URL and receive multiple rendered clips back in a single response.

Each clip includes a title, a quality score, clip boundaries, and the final rendered video_url.

Authentication

You can authenticate with either header format:

  • x-api-key: subscut_your_api_key
  • Authorization: Bearer subscut_your_api_key

Create keys from Dashboard API Access.

Request Body

Public request shape:

{
  "video_url": "https://example.com/podcast.mp4",
  "max_clips": 5,
  "clip_duration": {
    "min": 20,
    "max": 60
  },
  "captions": true,
  "caption_position": "center",
  "style": "viral"
}

Field Reference

Field
Meaning
video_url
Required. Public HTTP or HTTPS URL to the source podcast video.
max_clips
Optional. Number of clips to return. Allowed range: 1 to 10.
clip_duration.min
Optional. Minimum clip duration in seconds.
clip_duration.max
Optional. Maximum clip duration in seconds.
captions
Optional boolean. Enables captions on generated clips.
caption_position
Optional caption placement. Accepted values are "center" and "bottom". Defaults to "center" for dynamic clips and "bottom" for hook frame clips.
style
Optional caption style. Accepted values include "viral", "leon", "hormozi", "clean", and "minimal".

Response

{
  "clips": [
    {
      "start": 124.2,
      "end": 156.8,
      "score": 0.93,
      "title": "Why Most Founders Get This Wrong",
      "video_url": "https://your-public-s3-base.example/generated/api-rendered/.../clip-1.mp4"
    },
    {
      "start": 381.1,
      "end": 414.6,
      "score": 0.88,
      "title": "Nobody Talks About This Tradeoff",
      "video_url": "https://your-public-s3-base.example/generated/api-rendered/.../clip-2.mp4"
    }
  ]
}

Example

curl -X POST https://subscut.com/podcast-to-clips \
  -H "Content-Type: application/json" \
  -H "x-api-key: subscut_your_api_key" \
  -d '{
    "video_url": "https://example.com/podcast.mp4",
    "max_clips": 5,
    "captions": true,
    "caption_position": "center",
    "style": "viral"
  }'

Agent Contract

If you want another agent or LLM tool runtime to call the API reliably, give it this compact contract:

Endpoint: POST /podcast-to-clips
Auth: x-api-key header or Bearer API key
Goal: turn a long spoken video into multiple short clips

Required:
- video_url: public http/https URL to a podcast/interview/talking-head video

Optional:
- max_clips: integer 1-10
- clip_duration.min: integer seconds
- clip_duration.max: integer seconds
- captions: boolean
- caption_position: "center" | "bottom"
- style: "viral" | "leon" | "hormozi" | "clean" | "minimal"

Output:
- clips[] with title, score, start, end, and rendered video_url

Use when:
- the user wants to repurpose a podcast into Shorts, Reels, or TikTok clips

Do not use when:
- the source is already short-form
- the content is mostly music-only or non-speech

Limits

  • video_url must be publicly reachable by the server.
  • The endpoint is optimized for speech-heavy content like podcasts, interviews, and talking-head videos.
  • If the source is already short-form or mostly non-speech, the output quality will be weaker.