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