MCP docs › Tools › YouTube Thumbnail Downloader
YouTube Thumbnail Downloader
youtube_thumbnail_download fast Video, audio & downloads
Download YouTube video thumbnails at the highest resolution that actually exists (maxres -> sd -> hq ladder). Works on single videos/Shorts or a whole channel/playlist, with a limit, a view-count sort, and a top-N trim. View counts are returned, so 'the 3 most-viewed of the last 16 uploads' is one call.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
urls |
string[] | no | — | Individual video links. Up to 100 per run. Either this or 'account' is required. |
account |
string | no | — | A channel URL, @handle, playlist URL or video URL (resolved to its channel). Up to 200 videos. |
limit |
integer | no | 15 |
How many videos to CONSIDER from an account listing (1-200). |
top |
integer | no | 0 |
After sorting, keep only this many (0 = keep all). Set limit=16, sort='most_viewed', top=3 to get the 3 most-viewed of the last 16. |
sort |
string | no | "latest" |
latest | oldest | most_viewed | least_viewed | as_given. |
full_stats |
boolean | no | false |
Also fetch likes, comment count and the full description (plus the exact view count and upload date). One extra lookup per KEPT item, applied after the 'top' trim. |
all_variants |
boolean | no | false |
Also save every alternate size / animated cover. |
download |
boolean | no | true |
Save copies server-side so the URLs don't expire. False returns platform URLs only. |
Returns
items[] with id, title, description, author, view_count, like_count, comment_count, and on TikTok also share_count / save_count / repost_count; plus upload_date, duration_string, width, height, cover_url (the platform URL) and file_url (our saved copy, which does not expire). Also zip_url, notes[] and failed[] with a reason per input that could not be read.
Each row typically carries: count considered saved_count full_stats items zip_url notes failed
The response body is { status, count, fields, results }. Runs that exceed the inline wait return { status: "running", job_id, tool_flow } instead — see Jobs & errors.
Call it over MCP
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "youtube_thumbnail_download",
"arguments": {
"account": "@mkbhd",
"limit": 16,
"sort": "most_viewed",
"top": 3,
"full_stats": true
}
}
}
Call it over the REST API
curl -X POST https://convertfleet.online/api/tool-run \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tool":"yt_thumbs","params":{"account":"@mkbhd","limit":16,"sort":"most_viewed","top":3,"full_stats":true}}'
Both paths run the same job engine, enforce the same plan limits and count against the same monthly quota. See the REST API page.
Related tools
JSON Schema
{
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Individual video links. Up to 100 per run. Either this or 'account' is required."
},
"account": {
"type": "string",
"description": "A channel URL, @handle, playlist URL or video URL (resolved to its channel). Up to 200 videos."
},
"limit": {
"type": "integer",
"description": "How many videos to CONSIDER from an account listing (1-200).",
"default": 15
},
"top": {
"type": "integer",
"description": "After sorting, keep only this many (0 = keep all). Set limit=16, sort='most_viewed', top=3 to get the 3 most-viewed of the last 16.",
"default": 0
},
"sort": {
"type": "string",
"description": "latest | oldest | most_viewed | least_viewed | as_given.",
"default": "latest"
},
"full_stats": {
"type": "boolean",
"description": "Also fetch likes, comment count and the full description (plus the exact view count and upload date). One extra lookup per KEPT item, applied after the 'top' trim.",
"default": false
},
"all_variants": {
"type": "boolean",
"description": "Also save every alternate size / animated cover.",
"default": false
},
"download": {
"type": "boolean",
"description": "Save copies server-side so the URLs don't expire. False returns platform URLs only.",
"default": true
}
},
"additionalProperties": false
}