Userscript для скачивания доступных видеопотоков с vkvideo.ru и vk.com.
Установить скрипт · Русский · English
- Установите Tampermonkey для Chrome, Edge, Firefox или Opera.
- Откройте файл установки и подтвердите добавление скрипта.
- Откройте видео на
vkvideo.ruилиvk.comи запустите воспроизведение. Панель скачивания появится в правом нижнем углу.
При первом скачивании Tampermonkey может запросить доступ к CDN, с которого загружается видео. Без этого разрешения браузер не сможет сохранить файл.
| Источник | Что делает скрипт |
|---|---|
| Прямой MP4 | Показывает доступные разрешения от 144p до 2160p и скачивает выбранный файл с индикатором прогресса |
| HLS | Загружает сегменты, сохраняет исходный файл и копирует команду ffmpeg для ремукса в обычный MP4 |
| DASH или HLS с отдельным аудио | Показывает манифест и готовит команду yt-dlp |
Все запросы выполняются локально в браузере. Проект не использует собственный сервер и не отправляет ссылки сторонним сервисам.
- Запустите видео: до начала воспроизведения плеер обычно не запрашивает ссылки на потоки.
- Проверьте название в поле «Видео». Страница может загрузить данные нескольких роликов; звёздочкой отмечается вариант, совпавший с заголовком вкладки.
- Выберите подходящий вариант:
- для прямого потока нажмите кнопку нужного разрешения;
- для HLS скачайте исходный файл, затем выполните скопированную команду:
ffmpeg -i "<название>.src.ts" -c copy -movflags +faststart "<название>.mp4"Ремукс выполняется без перекодирования, поэтому обычно занимает заметно меньше времени, чем конвертация видео.
- Ссылки появляются только после запуска воспроизведения.
- HLS-сегменты временно хранятся в памяти. Для очень длинных видео разумнее
использовать
yt-dlp. - Скрипт не объединяет в браузере отдельные видео- и аудиодорожки. В таком
случае он предлагает команду
yt-dlp. - Подписанные CDN-ссылки ограничены по времени, поэтому загрузку лучше начинать сразу.
- Работа зависит от внутреннего формата плеера VK и может потребовать обновления после изменений на стороне сайта.
Ссылки не появились после запуска видео
Перезагрузите страницу и снова запустите воспроизведение. Скрипт устанавливает
перехватчики на этапе document-start, поэтому после установки Tampermonkey уже
открытую страницу нужно обновить.
В консоли должна появиться строка [VKDL] ... активен (хуки на unsafeWindow).
Если менеджер userscript не предоставляет unsafeWindow, используйте
Tampermonkey.
Выбрано не то видео
Откройте список «Видео» и выберите нужное название вручную. Страница VK может заранее загрузить рекомендации и превью вместе с текущим роликом.
HLS-файл не перематывается или показывает неверную длительность
Это исходный фрагментированный файл. Выполните команду ffmpeg, которую скрипт
копирует после загрузки, либо нажмите «Копировать команду ffmpeg» в панели.
Технические детали
vkvideo.ru загружает параметры плеера во время работы приложения. Userscript
устанавливает перехватчики JSON.parse, fetch и XMLHttpRequest в контексте
страницы через unsafeWindow, а также отслеживает URL с расширениями .mp4,
.m3u8 и .mpd.
Найденные параметры группируются по идентификатору из CDN-ссылки. Скрипт
сопоставляет название ролика с document.title, но оставляет ручной выбор на
случай, если страница загрузила несколько видео.
Прямые MP4 скачиваются через GM_xmlhttpRequest. Для HLS скрипт получает
плейлист и сегменты, после чего сохраняет исходный файл. Локальный ffmpeg
нужен только для создания обычного MP4 с корректным индексом и перемоткой.
Сообщения об ошибках и pull request приветствуются. Для проблем с определением видео приложите URL страницы, строку состояния панели и информацию о браузере и версии Tampermonkey. Не публикуйте приватные CDN-ссылки, cookies или токены.
Используйте скрипт только для материалов, которые вам разрешено скачивать: собственных видео или контента с разрешением правообладателя. Пользователь сам отвечает за соблюдение правил VK и применимого законодательства.
Проект распространяется по лицензии MIT © Dmitry Tumanov (@D1m7asis).