media-downloaderMedia Downloader turns a public post link into structured data and direct file links. Send a URL from YouTube, TikTok, Instagram, Facebook, X (Twitter), Xiaohongshu, Bilibili, Weibo, Douyin or any of 1000+ supported sites (short links such as youtu.be and vt.tiktok.com work as-is) and get back the title, caption, author, stats and every media file in the post: videos with each available quality and file size, images and audio. Four synchronous endpoints share one API key: /v1/media/extract for a single post ($0.004 per request), /v1/media/playlist for a channel, profile, playlist or hashtag one page at a time ($0.02 per page), /v1/media/subtitles for YouTube and Bilibili subtitle tracks ($0.004 per request), and /v1/media/youtube-download for resumable YouTube links up to 1080p served through a temporary proxy ($0.012 per request). Results come back in the same HTTP response, usually within a few seconds. Download links are short-lived, so fetch the files right away; when a quality has separate video and audio tracks, download both and merge them with ffmpeg. Failed requests are not charged. Only download content you own or have permission to use, and respect each platform's terms and copyright.
Send a public link and the result comes back in the same HTTP response (usually a few seconds; playlist pages can take longer) — no task to create, nothing to poll. All four endpoints use the same API key (Authorization: Bearer YOUR_API_KEY) and a JSON body. Only successful requests are charged.
Host https://api.apimodels.app; https://apimodels.app/api/v1/media/... works too.
| Endpoint | What it does | Price |
|---|---|---|
| POST/v1/media/extract | Extract a single post | $0.004 / request |
| POST/v1/media/playlist | List a channel, profile, playlist or hashtag | $0.02 / page |
| POST/v1/media/subtitles | Get subtitles (YouTube, Bilibili) | $0.004 / request |
| POST/v1/media/youtube-download | YouTube download links (proxied) | $0.012 / request |
POST /v1/media/extract
One public post from 1000+ sites (YouTube, TikTok, Instagram, Facebook, X, Xiaohongshu, Bilibili, Weibo, Douyin and more). Short links such as youtu.be and vt.tiktok.com work as-is. Returns the caption, author, stats and every media file with its available qualities.
curl https://api.apimodels.app/v1/media/extract \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://www.tiktok.com/@creator/video/VIDEO_ID" }'{
"code": 200,
"msg": "success",
"data": {
"model": "media-downloader",
"endpoint": "post",
"site": "youtube",
"id": "VIDEO_ID",
"title": "Video title",
"text": "Caption or description of the post",
"post_url": "https://www.youtube.com/watch?v=VIDEO_ID",
"author": { "username": "creator", "display_name": "Creator Name" },
"stats": { "view_count": 1024 },
"medias": [
{
"media_type": "video",
"resource_url": "https://...",
"preview_url": "https://...",
"duration": 19,
"variants": [
{
"quality": 1080,
"quality_label": "1080p",
"video_url": "https://...",
"video_ext": "mp4",
"video_filesize": 5242880,
"audio_url": "https://...",
"audio_ext": "m4a"
},
{
"quality": 360,
"quality_label": "360p",
"video_url": "https://...",
"video_ext": "mp4",
"is_default": true
}
]
},
{
"media_type": "audio",
"resource_url": "https://...",
"duration": 19
}
]
}
}POST /v1/media/playlist
One page per call. Pass next_cursor back as cursor for the next page and stop when has_more is false. Supported: YouTube channels, Shorts, playlists and hashtags; Instagram profiles and hashtags; X; TikTok profiles and hashtags; Douyin; Bilibili; Weibo.
curl https://api.apimodels.app/v1/media/playlist \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://www.youtube.com/@channel/videos" }'
# next page: add "cursor": "<next_cursor from the previous response>"{
"code": 200,
"msg": "success",
"data": {
"model": "media-downloader",
"endpoint": "playlist",
"site": "youtube",
"profile": { "username": "@channel" },
"posts": [
{
"id": "VIDEO_ID",
"title": "Video title",
"created_at": "3 days ago",
"medias": [
{
"media_type": "video",
"resource_url": "https://...",
"preview_url": "https://...",
"duration": 1215
}
]
}
],
"has_more": true,
"next_cursor": "NEXT_CURSOR"
}
}POST /v1/media/subtitles
Every subtitle track on a YouTube or Bilibili video. YouTube offers srt, vtt and json3; Bilibili returns json (BCC). Auto-generated tracks say "(auto-generated)" in language_name. Links are short-lived (Bilibili about 30 minutes).
curl https://api.apimodels.app/v1/media/subtitles \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://www.youtube.com/watch?v=VIDEO_ID" }'{
"code": 200,
"msg": "success",
"data": {
"model": "media-downloader",
"endpoint": "subtitles",
"site": "youtube",
"id": "VIDEO_ID",
"title": "Video title",
"duration": 19,
"thumbnail_url": "https://...",
"subtitles": [
{
"language_name": "English",
"language_tag": "en",
"urls": [
{ "format": "srt", "url": "https://..." },
{ "format": "vtt", "url": "https://..." },
{ "format": "json3", "url": "https://..." }
]
}
]
}
}POST /v1/media/youtube-download
YouTube files served through a temporary proxy: resource_proxy_url is a complete lower-quality file or the audio, variants carry video_proxy_url / audio_proxy_url up to 1080p (separate tracks to merge). Links last at most 1 hour and support HTTP Range, so downloads can resume. Not available for files over 3 GiB.
curl https://api.apimodels.app/v1/media/youtube-download \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://youtu.be/VIDEO_ID" }'{
"code": 200,
"msg": "success",
"data": {
"model": "media-downloader",
"endpoint": "youtube",
"site": "youtube",
"id": "VIDEO_ID",
"title": "Video title",
"medias": [
{
"media_type": "video",
"duration": 19,
"resource_proxy_url": "https://...",
"variants": [
{
"quality": 1080,
"quality_label": "1080p",
"video_ext": "mp4",
"video_proxy_url": "https://...",
"audio_ext": "m4a",
"audio_proxy_url": "https://..."
}
]
}
]
}
}ffmpeg -i video.mp4 -i audio.m4a -c copy out.mp4
Only download content you own or have permission to use, and respect each platform's terms and copyright.
Field tables for every endpoint, error codes, Python and Node.js examples.
YouTube, TikTok, Instagram, Facebook, X, Xiaohongshu, Bilibili, Weibo, Douyin and more; short links like youtu.be and vt.tiktok.com work as-is
Each video lists its available qualities with file sizes and a preview image; when a quality comes as separate video and audio tracks you get both links to merge with ffmpeg
Walk profiles, channels, playlists and hashtags with next_cursor, at $0.02 per page
YouTube (srt / vtt / json3) and Bilibili subtitle tracks at $0.004; resumable YouTube links up to 1080p at $0.012
Results return in the same HTTP response, from $0.004 per request; failed requests are not charged and GET /v1/records/{id} shows what each call cost
Media Downloader is a Social Media Download API provided by APIMODELS. Media Downloader turns a public post link into structured data and direct file links. Send a URL from YouTube, TikTok, Instagram, Facebook, X (Twitter), Xiaohongshu, Bilibili, Weibo, Douyin or any of 1000+ supported sites (short links such as youtu.be and vt.tiktok.com work as-is) and get back the title, caption, author, stats and every media file in the post: videos with each available quality and file size, images and audio. Four synchronous endpoints share one API key: /v1/media/extract for a single post ($0.004 per request), /v1/media/playlist for a channel, profile, playlist or hashtag one page at a time ($0.02 per page), /v1/media/subtitles for YouTube and Bilibili subtitle tracks ($0.004 per request), and /v1/media/youtube-download for resumable YouTube links up to 1080p served through a temporary proxy ($0.012 per request). Results come back in the same HTTP response, usually within a few seconds. Download links are short-lived, so fetch the files right away; when a quality has separate video and audio tracks, download both and merge them with ffmpeg. Failed requests are not charged. Only download content you own or have permission to use, and respect each platform's terms and copyright. Through APIMODELS platform, you can access this model via a unified API with transparent pay-as-you-go pricing. Current pricing: Single post (extract): $0.004, Subtitles: $0.004, Playlist (per page): $0.02, YouTube download: $0.012.
Back up your own videos, captions and stats, or move a catalogue to another platform, without saving clips one by one by hand.
Collect captions, authors and engagement counts from public posts, channels and hashtags as structured JSON, page by page.
Pull existing YouTube and Bilibili subtitle tracks as srt, vtt or json to index, translate or summarise a video without transcribing it again.
Fetch a clip or image you are licensed to use, then hand it to the video, image and audio models on the same API key.
Media Downloader is available through APIMODELS at: Single post (extract): $0.004, Subtitles: $0.004, Playlist (per page): $0.02, YouTube download: $0.012. Billing is pay-as-you-go — you only pay for what you generate.
Sign up at APIMODELS, get your API key, and call our unified API endpoint. We provide detailed API documentation with code examples in cURL, Python, and Node.js.
A synchronous API that turns a public post link into structured JSON and direct file links. POST {"url": "..."} to https://api.apimodels.app/v1/media/extract and the same HTTP response, usually within a few seconds, carries the site, title, caption, author, stats and every media file in the post: videos in each available quality, images and audio. Three more endpoints on the same key cover channel and profile pages (/v1/media/playlist), subtitle tracks (/v1/media/subtitles) and proxied YouTube downloads (/v1/media/youtube-download). It is one of 140+ models on apimodels.app behind a single API key and balance, and failed requests are never charged.
Single posts from 1000+ sites, including YouTube, TikTok, Instagram, Facebook, X (Twitter), Xiaohongshu, Bilibili, Weibo and Douyin; short links such as youtu.be and vt.tiktok.com can be sent as-is. Page-by-page listing covers YouTube channels, Shorts, playlists and hashtags, Instagram profiles and hashtags, X, TikTok profiles and hashtags, Douyin, Bilibili and Weibo. Subtitles are available for YouTube and Bilibili videos. A link that cannot be handled returns a 400 with an error_code such as unsupported_site or content_deleted, and is not charged.
Some platforms store higher qualities as two streams: a silent video track and an audio track. Such a variant carries both video_url and audio_url. Download both right away (the links are short-lived; when the media item has headers such as Referer, send them with the download), then merge without re-encoding: ffmpeg -i video.mp4 -i audio.m4a -c copy out.mp4. A variant with only video_url is already a complete file. On /v1/media/youtube-download the same pattern uses video_proxy_url and audio_proxy_url, and those links accept HTTP Range requests, so an interrupted download can resume.
POST the profile, channel, playlist or hashtag URL to /v1/media/playlist and you get one page back: posts[] (each shaped like a single-post result), has_more, next_cursor and the profile details. For the next page, send the same url again with "cursor" set to the previous next_cursor, and stop when has_more is false. Each page is one billed request at $0.02, so the number of pages you ask for is also your spending cap.
Only successful requests, at a fixed price per endpoint: $0.004 for /v1/media/extract, $0.004 for /v1/media/subtitles, $0.02 per page for /v1/media/playlist and $0.012 for /v1/media/youtube-download. Failed requests cost nothing: unsupported or deleted posts (400), rate limits (429) and temporary errors (502 / 503 / 504), including a youtube-download that answers proxy_unavailable. Downloading the files you get back is not billed again. Every response carries x-apimodels-request-id and x-apimodels-cost headers, and GET /v1/records/{id} returns the exact amount deducted for that request.
That depends on the content and on what you do with it, not on the tool. Only download content you own or have permission to use, and respect each platform's terms and copyright. The API works with publicly reachable links; it fits uses such as backing up your own posts, moving your own catalogue to another platform, and analysing public captions and metadata.
On APIMODELS, Media Downloader runs alongside 60+ models on one API key and one balance, so choosing is about fit, not lock-in. It supports 1000+ Sites, Video, Image & Audio, Playlists & Profiles, YouTube & Bilibili Subtitles, YouTube up to 1080p, From $0.004/request, and you can weigh it on price and capability against other Social Media Download models, then switch by changing a single model-name string — no new account or integration. Browse every Social Media Download option with live pricing at apimodels.app/models.
Media Downloader supports: 1000+ Sites, Video, Image & Audio, Playlists & Profiles, YouTube & Bilibili Subtitles, YouTube up to 1080p, From $0.004/request. See the APIMODELS docs for full parameters and call examples.
Yes. APIMODELS exposes Media Downloader through a single unified API and one key — no separate provider accounts, and no need to handle each provider's regional network access yourself.
We support Stripe (Visa, Mastercard, and other international cards) and Alipay. Credits are available instantly after payment.