Skip to content

Repository files navigation

vkgrab — скачивайте видео из VK в один клик

CI release Manifest V3 zero dependencies MIT

Русский · English

vkgrab — расширение для Chrome, которое скачивает видео с vk.com и vkvideo.ru в исходном качестве. Открываете видео, нажимаете на значок, выбираете качество, и файл сохраняется в «Загрузки». Никаких сторонних сайтов, рекламы и серверов-посредников: расширение работает через вашу собственную сессию VK, поэтому скачиваются и приватные видео, и видео «только для авторизованных».

Всплывающее окно vkgrab в светлой и тёмной теме

Возможности

  • Все качества, которые отдаёт VK: 144p–1080p и выше (1440p/4K, если они есть у ролика), с размером файла у каждого варианта.
  • Приватные и закрытые видео: запросы идут от имени вашего аккаунта, как у самого плеера VK.
  • Работает везде на VK: страница видео, клипы, видео в ленте, на стене, в сообществе, в модальном окне ?z=video…, ссылки с ключом доступа ?list=….
  • Список всех видео на странице: если в ленте их несколько, выберите нужное в разделе «Другие видео на странице».
  • Запасной путь через HLS: если у ролика нет готового MP4 (так бывает с длинными видео и записями трансляций), расширение скачивает сегменты потока прямо во вкладке и склеивает их в .ts, а прогресс показывает в углу страницы.
  • Понятные имена файлов: Название ролика [-12345_67890] 1080p.mp4, безопасные для Windows, macOS и Linux.
  • Запоминает любимое качество, поддерживает светлую и тёмную тему, интерфейс на русском и английском.
  • Ноль зависимостей: около 25 КБ чистого JavaScript, без сборщика, код можно прочитать за 10 минут.

Установка

Расширения пока нет в Chrome Web Store, оно ставится вручную за минуту:

  1. Скачайте vkgrab-x.y.z.zip со страницы релизов и распакуйте его в любую папку.
  2. Откройте chrome://extensions и включите «Режим разработчика» в правом верхнем углу.
  3. Нажмите «Загрузить распакованное расширение» и выберите распакованную папку (в ней лежит manifest.json).
  4. Закрепите значок vkgrab на панели через меню-пазл 🧩.

Из исходников:

git clone https://github.com/web3daemon/vkgrab.git

Затем выберите папку vkgrab/extension на шаге 3. Подходит любой браузер на Chromium версии 110 и новее: Chrome, Edge, Яндекс Браузер, Brave, Opera, Vivaldi.

Как пользоваться

  1. Откройте видео на vk.com или vkvideo.ru и войдите в аккаунт, если видео закрытое.
  2. Нажмите на значок vkgrab.
  3. Выберите качество. Лучшее подсвечено, а после первой загрузки подсвечивается то, которое вы выбирали.

MP4 скачивается встроенным менеджером загрузок Chrome, поэтому видны прогресс, пауза и возобновление. HLS качается во вкладке: пока идёт загрузка, вкладку VK не закрывайте.

Как это работает

вкладка VK (content script)                        popup
───────────────────────────                        ─────
POST /al_video.php?act=show  ◄── ваша сессия ──   «какие видео на странице?»
  └─ параметры плеера: url144…url2160, hls          «покажи качества»
                                                    │
        MP4 ─────────────────────────────────────► chrome.downloads.download()
        HLS: master.m3u8 → сегменты → Blob → .ts   (прогресс в углу страницы)

Расширение делает ровно то же, что плеер VK при нажатии Play: запрашивает параметры плеера у al_video.php из контекста страницы, с вашими cookies. В ответе есть прямые ссылки на MP4 для каждого качества. Эти ссылки подписаны и привязаны к вашему IP и браузеру, поэтому скачивать нужно с того же компьютера, и Chrome делает это напрямую. Если MP4 нет, берётся HLS-плейлист, и сегменты скачиваются по четыре параллельно с повторами при ошибках.

Приватность

vkgrab ничего никуда не отправляет: нет аналитики, телеметрии и своих серверов. Все запросы идут только к VK и его CDN, как при обычном просмотре. Подробности в PRIVACY.md.

Разрешение Зачем
vk.com, vk.ru, vkvideo.ru найти видео на странице и спросить у VK ссылки от имени вашей сессии
downloads сохранить MP4 через менеджер загрузок Chrome
scripting подключиться к вкладкам, открытым до установки расширения
storage запомнить выбранное качество, локально

Ограничения

  • Прямые трансляции не поддерживаются, дождитесь записи.

  • Мобильная версия m.vk.com не поддерживается, откройте видео на vk.com или vkvideo.ru.

  • Видео с DRM (некоторые фильмы и сериалы по подписке) скачать нельзя, расширение об этом сообщит.

  • HLS сохраняется как .ts. Его открывают VLC и большинство плееров, а переупаковать в MP4 без потери качества можно так:

    ffmpeg -i "video.ts" -c copy "video.mp4"
  • vkgrab опирается на внутренний API VK. Если VK его поменяет, создайте issue, и расширение поправится.

Разработка

extension/
├── manifest.json        MV3, без фонового service worker
├── lib/vk.js            чистые функции: разбор URL, ответа VK, HLS, имён файлов
├── content.js           работает во вкладке VK: поиск видео, запрос к VK, HLS-загрузчик
├── popup/               интерфейс (HTML/CSS/JS без фреймворков)
├── _locales/{en,ru}/    переводы
└── icons/
scripts/
├── check.mjs            статическая проверка манифеста и локалей
├── pack.mjs             сборка dist/vkgrab-<версия>.zip без зависимостей
├── smoke.py             живой прогон в Chromium: MP4 + HLS на реальном видео
├── screenshot.py        скриншоты popup для README на демо-данных
└── gen_icons.py         иконки и баннер
tests/vk.test.js         юнит-тесты (node:test)
npm test              # юнит-тесты, нужен Node 20+
npm run check         # манифест, файлы, ключи локалей
npm run pack          # dist/vkgrab-<версия>.zip
python scripts/smoke.py https://vkvideo.ru/video-XXXX_YYYY   # нужен playwright

После правок нажмите ⟳ у расширения на chrome://extensions и обновите вкладку VK.

Правовая сторона

vkgrab предназначен для личного использования: сохранить своё видео, посмотреть офлайн, сделать архив. Уважайте авторские права и правила VK и не распространяйте чужой контент без разрешения автора. Проект не связан с VK и не одобрен компанией VK.

Лицензия

MIT © web3daemon

About

Chrome extension: download any VK / VK Video video in original quality (MP4 up to 4K, HLS fallback, private videos via your session). Zero dependencies.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages