VK Video Downloader API
VK video and Клипы resolve to direct URLs read from the embedded player, so no VK account or token is involved. This source publishes several renditions, which is why limit_mb works here: pass a cap and you get the largest rendition that fits under it.
videoimageaudioGET /v1/vk1.5 credits
Links we accept
Any public post URL on these hosts. Short links and country mirrors are resolved for you.
https://vk.com/video-1_2https://vkvideo.ru/video-1_2
Hosts
vk.com · vkvideo.ru · vk.ru · vkontakte.ru
Request
curl -s "https://api.saveapi.org/v1/vk" \ -H "Authorization: Bearer sk_live_xxxx" \ -G --data-urlencode "url=https://vk.com/video-1_2"
Response
{
"success": true,
"platform": "vk",
"type": "video",
"medias": [
{ "type": "video", "url": "https://…", "ext": "mp4" },
{ "type": "image", "url": "https://…", "ext": "jpg" },
{ "type": "audio", "url": "https://…", "ext": "mp3" }
],
"formats": [
{ "format": "mp4_480", "label": "480p", "type": "video", "size_mb": 7.9, "url": "https://…" },
{ "format": "mp4_720", "label": "720p", "type": "video", "size_mb": 17.19, "url": "https://…" }
],
"recommended_format": "mp4_720",
"meta": { "title": "…", "author": "…", "thumbnail": "https://…" },
"credits": { "spent": 1.5, "remaining": 99988.5 }
}Worth knowing
Every quality the source already publishes comes back in the same response — each with a ready URL and its exact size. Pick the one you want client-side: there is no second call and no format parameter.
Accepts limit_mb — this source offers several renditions, so you can cap the size you get back.
Questions before you build
- Do I need a VK account or an access token?
- No. The media URL is read from the embedded player, so no VK credentials are involved at any point.
- Do Клипы work as well as regular video?
- Yes, both resolve on this endpoint. The response shape is the same for either.
- How do I get a specific quality?
- You never have to ask twice: every rendition VK publishes comes back in formats[], each with a ready URL and its exact size, so you filter for the one you want. medias[] still carries the recommended pick, and limit_mb decides what that pick is.