API для скачивания видео VK
Превращает любое публичное видео или клип VK в прямые ссылки — все качества, которые есть у VK, от 144p до 1080p, одним ответом.
https://api.gapi.dev/v2/vkТребуется заголовок X-API-Key · ответ в JSON
Параметры
urlобязательныйstringПубличное видео или клип VK: vkvideo.ru/video-…, vkvideo.ru/clip-…, vk.com/video-…, а также vk.ru и m.vk.com.
напр. https://vkvideo.ru/video-122033519_456246913Ответы
{
"platform": "vk",
"type": "video",
"title": "Я тебя отыщу",
"author": null,
"thumbnail": "https://…",
"duration": null,
"media": [
{ "type": "video", "url": "https://…", "quality": "144p", "ext": "mp4" },
{ "type": "video", "url": "https://…", "quality": "240p", "ext": "mp4" },
{ "type": "video", "url": "https://…", "quality": "360p", "ext": "mp4" },
{ "type": "video", "url": "https://…", "quality": "480p", "ext": "mp4" },
{ "type": "video", "url": "https://…", "quality": "720p", "ext": "mp4" },
{ "type": "video", "url": "https://…", "quality": "1080p", "ext": "mp4" }
]
}Попробовать
https://api.gapi.dev/v2/vkcurl -G 'https://api.gapi.dev/v2/vk' \
--data-urlencode 'url=https://vkvideo.ru/video-122033519_456246913' \
-H 'X-API-Key: YOUR_KEY'Что даёт каждая ссылка
| Вы отправляете | type | media содержит |
|---|---|---|
vkvideo.ru/video-… | video | по элементу на каждую высоту, что есть у VK, обычно шесть |
vkvideo.ru/clip-… | video | то же, клипы здесь те же видео |
Что не поддержано
Посты со стены, плейлисты, списки видео сообщества, ссылки встроенного плеера и VK Play Live. В посте со стены обычно фотографии, а этот эндпоинт качает видео; остальное сломано в самом экстракторе. Все пять отклоняются с объяснением, а не отвечают наполовину.
Разбор по полям — на странице формы ответа.
Как выбрать качество
VK отдаёт несколько качеств одного видео. Читайте quality и берите нужное: второго запроса не нужно, и угадывать шаблон ссылки тоже. Значение там подпись, а не число, так что перед сравнением уберите букву p.
data = response.json()
# quality is a label, not a number: "1080p", not 1080.
best = max(
(m for m in data["media"] if m["type"] == "video"),
key=lambda m: int(m["quality"].rstrip("p")),
)
download(best["url"])Примеры кода
Один и тот же запрос на четырёх языках. Подставьте ключ из личного кабинета, и код запустится как есть.
curl -G 'https://api.gapi.dev/v2/vk' \
--data-urlencode 'url=https://vkvideo.ru/video-122033519_456246913' \
-H 'X-API-Key: gapi_live_your_key_here'Один вызов — один запрос
Карусель из десяти слайдов стоит столько же, сколько одно фото: одно списание с баланса. Считаются вызовы, а не файлы.