---
title: "Download a public video, then post-process it with FFmpeg"
method: POST
path: "/run-ytdlp-command"
tags: ["Commands"]
---

# Download a public video, then post-process it with FFmpeg

`POST /run-ytdlp-command`

## Request

- Base URL: `https://renderio.dev/api/v1`
- URL: `https://renderio.dev/api/v1/run-ytdlp-command`
- Auth: API key in header `X-API-KEY`

Returns 409 with a `Retry-After` header when the same URL failed for you recently with an error a resubmission cannot fix yet (30 minutes after SOURCE_RATE_LIMITED, 6 hours after SOURCE_UNAVAILABLE and other source errors).

## Request body

- RunYtDlpCommandRequest
  - `input_urls` InputUrls, required: Input aliases mapped to public platform URLs downloaded with yt-dlp. Keys must start with `in_`.
  - `output_files` OutputFiles: Output aliases mapped to filenames. Keys must start with `out_`.
  - `ffmpeg_command` string: FFmpeg arguments applied to the downloaded media. Omit to return the raw download.
  - `metadata` Metadata: Up to 10 arbitrary key/value pairs echoed back on the command.
  - `webhook_url` string, uri: Per-command completion callback. Overrides the account-level webhook for this command. Requires a plan with webhook access.
  - `storage_destination_id` string: Business-plan S3-compatible destination that receives this command's outputs.

## Response `200`

Command accepted

- RunCommandResponse
  - `command_id` string, uuid, required

## Other responses

- `401`: Missing or invalid API key
- `403`: Plan does not include this capability
- `404`: Resource not found
- `409`: Resource state conflict
- `422`: Request failed validation
- `429`: Rate limit exceeded — retry after the `Retry-After` interval
- `501`: Feature is not configured on this deployment

---

[API](https://skmtc.dev/renderio/apis/renderio-api.md) · [All operations](https://skmtc.dev/renderio/apis/renderio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/renderio/apis/renderio-api/revisions/062c8f1c062b?raw)
