Youtube Download API: Download audio and video from YouTube. On the JoJ API marketplace.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Submits a new download job for the given `url` in the requested `format`. Returns a unique `id` you can pass to the Progress endpoint to poll for completion and retrieve the final download URL. Billing per call: 1 Credits.
The URL-encoded URL of the video to download (YouTube and other supported sources).
Your personal API key.
The output format to download. Accepted values: `mp3`, `m4a`, `webm_audio`, `aac`, `flac`, `opus`, `ogg`, `wav`, `144`, `240`, `360`, `480`, `720`, `1080`, `1440`, `4k`, `8k`. Audio formats have a 120-minute base duration limit; video formats have format-specific limits (1080p=90m, 1440p=60m, 4k/8k=15m, everything else=120m).
Set to `1` to include the `info` object (title + thumbnail) in the response. Defaults to `0` when omitted.
Optional. End time (in seconds) of a cut/segment download.
If set to `1`, audio and video streams are **not** merged. The client receives a zip file containing the separate streams. Defaults to `0` (streams are merged into a single file).
Optional. Start time (in seconds) of a cut/segment download. When `start_time`/`end_time` are supplied, progress is not reported — the Progress endpoint only returns initialization and the final success / failure status.
Audio bitrate in kbps. Common values include `128`, `192`, `256`, `320`.
YouTube only. Selects the audio track language by BCP-47 / YouTube language code. If the requested track is not available on the video, the default track is used instead. No additional cost. Supported codes: `af, az, id, ms, bs, ca, cs, da, de, et, en-IN, en-GB, en, es, es-419, es-US, eu, fil, fr, fr-CA, gl, hr, zu, is, it, sw, lv, lt, hu, nl, no, uz, pl, pt-PT, pt, ro, sq, sk, sl, sr-Latn, fi, sv, vi, tr, be, bg, ky, kk, mk, mn, ru, sr, uk, el, hy, iw, ur, ar, fa, ne, mr, hi, as, bn, pa, gu,…
Set to `1` to permit downloads whose video duration exceeds the format's base duration limit. Extended-duration jobs are charged a multiplier of the base price (see the `ExtendedDuration` response object). Defaults to `0` when omitted.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Submits a new download job for the given `url` in the requested `format`. Returns a unique `id` you can pass to the Progress endpoint to poll for completion and retrieve the final download URL. Billing per call: 1 Credits.
| Argument | Type | Description |
|---|---|---|
| url | string | The URL-encoded URL of the video to download (YouTube and other supported sources). |
| apikey | string | Your personal API key. |
| format | string | The output format to download. Accepted values: `mp3`, `m4a`, `webm_audio`, `aac`, `flac`, `opus`, `ogg`, `wav`, `144`, `240`, `360`, `480`, `720`, `1080`, `1440`, `4k`, `8k`. Audio formats have a 120-minute base duration limit; video formats have format-specific limits (1080p=90m, 1440p=60m, 4k/8k=15m, everything else=120m). |
| add_info | string | Set to `1` to include the `info` object (title + thumbnail) in the response. Defaults to `0` when omitted. |
| end_time | string | Optional. End time (in seconds) of a cut/segment download. |
| no_merge | string | If set to `1`, audio and video streams are **not** merged. The client receives a zip file containing the separate streams. Defaults to `0` (streams are merged into a single file). |
| start_time | string | Optional. Start time (in seconds) of a cut/segment download. When `start_time`/`end_time` are supplied, progress is not reported — the Progress endpoint only returns initialization and the final success / failure status. |
| audio_quality | string | Audio bitrate in kbps. Common values include `128`, `192`, `256`, `320`. |
| audio_language | string | YouTube only. Selects the audio track language by BCP-47 / YouTube language code. If the requested track is not available on the video, the default track is used instead. No additional cost. Supported codes: `af, az, id, ms, bs, ca, cs, da, de, et, en-IN, en-GB, en, es, es-419, es-US, eu, fil, fr, fr-CA, gl, hr, zu, is, it, sw, lv, lt, hu, nl, no, uz, pl, pt-PT, pt, ro, sq, sk, sl, sr-Latn, fi, sv, vi, tr, be, bg, ky, kk, mk, mn, ru, sr, uk, el, hy, iw, ur, ar, fa, ne, mr, hi, as, bn, pa, gu,… |
| allow_extended_duration | string | Set to `1` to permit downloads whose video duration exceeds the format's base duration limit. Extended-duration jobs are charged a multiplier of the base price (see the `ExtendedDuration` response object). Defaults to `0` when omitted. |
{
"type": "object",
"properties": {
"url": {
"type": "string",
"title": "url",
"description": "The URL-encoded URL of the video to download (YouTube and other supported sources)."
},
"apikey": {
"type": "string",
"title": "apikey",
"description": "Your personal API key."
},
"format": {
"type": "string",
"title": "format",
"description": "The output format to download. Accepted values: `mp3`, `m4a`,\n`webm_audio`, `aac`, `flac`, `opus`, `ogg`, `wav`, `144`,\n`240`, `360`, `480`, `720`, `1080`, `1440`, `4k`, `8k`.\n\nAudio formats have a 120-minute base duration limit; video formats\nhave format-specific limits (1080p=90m, 1440p=60m, 4k/8k=15m,\neverything else=120m)."
},
"add_info": {
"type": "string",
"title": "add_info",
"description": "Set to `1` to include the `info` object (title + thumbnail) in the response. Defaults to `0` when omitted."
},
"end_time": {
"type": "string",
"title": "end_time",
"description": "Optional. End time (in seconds) of a cut/segment download."
},
"no_merge": {
"type": "string",
"title": "no_merge",
"description": "If set to `1`, audio and video streams are **not** merged. The client\nreceives a zip file containing the separate streams. Defaults to `0`\n(streams are merged into a single file)."
},
"start_time": {
"type": "string",
"title": "start_time",
"description": "Optional. Start time (in seconds) of a cut/segment download. When\n`start_time`/`end_time` are supplied, progress is not reported — the\nProgress endpoint only returns initialization and the final success /\nfailure status."
},
"audio_quality": {
"type": "string",
"title": "audio_quality",
"description": "Audio bitrate in kbps. Common values include `128`, `192`, `256`, `320`."
},
"audio_language": {
"type": "string",
"title": "audio_language",
"description": "YouTube only. Selects the audio track language by BCP-47 / YouTube\nlanguage code. If the requested track is not available on the video,\nthe default track is used instead. No additional cost.\n\nSupported codes: `af, az, id, ms, bs, ca, cs, da, de, et, en-IN, en-GB,\nen, es, es-419, es-US, eu, fil, fr, fr-CA, gl, hr, zu, is, it, sw, lv,\nlt, hu, nl, no, uz, pl, pt-PT, pt, ro, sq, sk, sl, sr-Latn, fi, sv, vi,\ntr, be, bg, ky, kk, mk, mn, ru, sr, uk, el, hy, iw, ur, ar, fa, ne, mr,\nhi, as, bn, pa, gu,…"
},
"allow_extended_duration": {
"type": "string",
"title": "allow_extended_duration",
"description": "Set to `1` to permit downloads whose video duration exceeds the format's\nbase duration limit. Extended-duration jobs are charged a multiplier of\nthe base price (see the `ExtendedDuration` response object). Defaults to\n`0` when omitted."
}
},
"additionalProperties": false
}Polls the status of a previously-submitted download job. Keep polling until `progress == 1000` (i.e. 100%) and `download_url` is populated. Billing per call: 1 Credits.
| Argument | Type | Description |
|---|---|---|
| id | string | The job id returned by the Download endpoint. |
{
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "id",
"example": "YOUR_JOB_ID",
"description": "The job id returned by the Download endpoint."
}
},
"additionalProperties": false
}