{"serverId":"mcp-registry/com.jojapi/youtube-download-api","tools":[{"name":"get_ajax_download_php","fixed":{"name":"get_ajax_download_php","description":"Submits a new download job for the given `url` in the requested `format`.\nReturns a unique `id` you can pass to the Progress endpoint to poll for\ncompletion and retrieve the final download URL. Billing per call: 1 Credits.","inputSchema":{"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},"annotations":{"readOnlyHint":true},"title":"Create a download job"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":795,"tokensAfter":795},{"name":"get_ajax_progress","fixed":{"name":"get_ajax_progress","description":"Polls the status of a previously-submitted download job. Keep polling\nuntil `progress == 1000` (i.e. 100%) and `download_url` is populated. Billing per call: 1 Credits.","inputSchema":{"type":"object","properties":{"id":{"type":"string","title":"id","example":"YOUR_JOB_ID","description":"The job id returned by the Download endpoint."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Check download progress"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":115,"tokensAfter":115}],"toolsChanged":2,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}