Append an outro clip to a video. Both clips are re-encoded to matching parameters and concatenated using the FFmpeg concat demuxer. Example: {"url": "https://cdn.example.com/main.mp4", "outro_url": "https://cdn.example.com/outro.mp4"}
Append an outro clip to a video.
Both clips are re-encoded to matching parameters and concatenated using the FFmpeg concat demuxer.
POST https://eranol.com/api/v1/ffmpeg/video/add-outro
{
"url": "https://cdn.example.com/main.mp4",
"outro_url": "https://cdn.example.com/outro.mp4"
}
{
"job_id": "f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"job_type": "caption",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/f595b9ad-1e15-4452-b7c2-8f8ff09c0a34"
}
Adds a short branded outro clip after your main video. Both clips are re-encoded to matching parameters before joining.
Request Body
{
"url": "https://cdn.example.com/main.mp4",
"outro_url": "https://cdn.example.com/outro.mp4"
}
Response
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
Append a pre-made 'subscribe' or CTA end-screen clip that plays after any main video.
Request Body
{
"url": "https://cdn.example.com/podcast-episode-12.mp4",
"outro_url": "https://cdn.example.com/cta-subscribe.mp4"
}
Response
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
Use different outros for different content formats — e.g., a short 3-second logo sting for Shorts vs. a 15-second full-screen end card for long-form.
Request Body
{
"url": "https://cdn.example.com/short-clip.mp4",
"outro_url": "https://cdn.example.com/logo-sting-3s.mp4"
}
Response
{
"job_id": "1406c589-a1f4-45d5-8745-aae07bc4de38",
"status": "pending",
"message": "Job created. Poll status_url for progress.",
"result_url": "https://eranol.com/api/v1/ffmpeg/result/1406c589-a1f4-45d5-8745-aae07bc4de38",
"status_url": "https://eranol.com/api/v1/ffmpeg/status/1406c589-a1f4-45d5-8745-aae07bc4de38"
}
| Code | Meaning |
|---|---|
401 | Missing or invalid API key |
402 | Insufficient credits |
422 | Validation error — check your request body |
429 | Rate limit exceeded — slow down requests |
500 | Internal server error — try again or contact support |