API скачивания видео и Клипов VK — выбор качества, ограничение размера
VK — единственная платформа, где ответ содержит выбор: formats[] перечисляет каждый вариант, опубликованный источником, с точным размером в мегабайтах и готовым URL, так что вы берёте самый большой из подходящих без второго вызова. Это руководство — про этот выбор, форму Клипов и limit_mb на случай, если выбирать должен API.
Обновлено
Вызов
Тот же GET, что и для любой платформы, на эндпоинт VK или /v1/download. Принимаются ссылки vk.com, vkvideo.ru и vk.ru — и video-<owner>_<id>, и ссылки на клипы.
Terminalcurl -s "https://api.saveapi.org/v1/vk" \ -H "Authorization: Bearer sk_live_xxxx" \ -G --data-urlencode "url=https://vk.com/video-1_2"
Выберите вариант из formats[]
В ответах VK есть formats[] с меткой (144p … 1080p), типом, точным size_mb и URL, готовым к загрузке. Отфильтруйте список на своей стороне по самому большому файлу под вашим потолком; recommended_format называет вариант по умолчанию. Второго запроса и параметра формата нет.
Pythondata = resolve("https://vk.com/video-1_2")
# formats[] — tayyor variantlar, har birida aniq hajm (MB)
fits = [f for f in data.get("formats", []) if f["size_mb"] <= 50]
best = max(fits, key=lambda f: f["size_mb"], default=None)
url = best["url"] if best else data["medias"][0]["url"]Клипы — видео с одним вариантом
Клип VK разрешается как видео и обычно публикует один вариант, поэтому formats[] короткий или отсутствует. Читайте medias[0], когда formats[] нет, — один код покрывает обе формы.
Заберите байты сами
URL указывает на CDN VK, файл не проходит через API. Забирайте в момент разрешения — подписанные ссылки истекают.
Terminalcurl -sL -o video.mp4 "<medias[0].url>"
limit_mb и цена
Передайте limit_mb в запросе — API вернёт самый большой вариант под этим размером как medias[0]; это простой путь для лимита Telegram в 50 МБ. Разрешение в любом случае 1.5 кредита; VK — 1.5, Rutube по той же схеме — 3.
Вопросы перед началом
- formats[] приходит всегда?
- Только когда источник публикует несколько вариантов — для большинства видео VK так. Иначе читайте medias[0] — один путь кода покрывает оба случая.
- Можно получить только аудио?
- Там, где источник публикует mp3, оно появляется записью audio в formats[]; извлечения на сервере нет.
- limit_mb меняет цену?
- Нет. Он меняет только то, какой вариант попадёт в medias[0]. Разрешение — 1.5 кредита.
Платформы, использованные здесь
Другие руководства
Запустите это руководство со своим ключом
Ключ за минуту. 1 000 бесплатных кредитов, без карты и без срока.