/vk_dump

VKontakte dumper / сохранение данных из ВКонтакте

Primary LanguagePythonThe UnlicenseUnlicense

VK Dump Tool

Внимание

Разработка этого скрипта прекращена. Ещё какое-то время он будет кое-как работать при всех своих багах, пока используемую версию API не прикроют (однако сохранение лайкнутых фото/видео/т.п. скоро перестанет работать)

На данный момент иногда пользователи определяются как {unknown user}. Решения проблемы пока нет (#24).

Установка

  • склонировать/скачать репозиторий
  • установить зависимости

Установка зависимостей

pip3 install -r requirements.txt

Для загрузки видео из некоторых сторонних источников (например, RuTube) youtube-dl использует ffmpeg, который необходимо установить отдельно.

Если Вы используете Windows ниже 10 версии, дополнительно установите пакет colorama:

pip3 install colorama

CLI

Все доступные аргументы можно посмотреть при запуске с --help.

Для сохранения нескольких типов данных за один вызов необходимо указывать каждый тип отдельным аргументом dump. Например, для сохранения фото и документов надо запускать dump.py --dump photo --dump docs.

Авторизация

Возможны два способа аутентификации - с помощью пары логин-пароль или токена. Авторизация по логину идёт с данными от Kate Mobile.

Для входа по токену необходимо передать аргумент token при запуске:

python3 dump.py --token your_token_here

Мультипоточная загрузка

Количество процессов, создаваемых для загрузки, по умолчанию равняется 4*потоки.

При загрузке видео - числу, заданному в настройках, но не больше количества потоков. Такое ограничение введено ввиду отсутствия смысла в спаме лишними процессами при загрузке больших по размеру видео (однако лимит всё же убирается через настройки).

Поддерживаемые для сохранения данные

  • Фото
  • Видео
  • Аудио
  • Документы
  • Диалоги (txt) и вложения (фото, видео, документы, голосовые)
  • Вложения понравившихся постов (фото, видео, документы)
  • Понравившиеся фотографии
  • Понравившиеся видео
  • прочее, прочее, прочее ;)

Любые предложения и репорты о багах приветствуются :з

Настройка сохраняемых диалогов

Для сохранения или исключения определённых диалогов необходимо вручную подредактировать конфиг settings.ini.

ID диалогов перечисляются через запятую. Получить его можно, например, открыв диалог в разделе сообщений, тогда в URL вроде https://vk.com/im?sel=100 идентификатором будет являться кусок, идущий после sel=.

Пример исключения диалога с ID 100 и беседы c60:

[EXCLUDED_DIALOGS]
id = 100,c60

Сохранение только диалога с ID 100 и исключения всех остальных:

[DUMP_DIALOGS_ONLY]
id = 100

Дозапись новых сообщений вместо перезаписывания

Если включена, при кэшировании будут получены не все сообщения, а только с ID больше последнего записанного (последняя строка в файле).

F.A.Q

Q: Можно ли не вводить каждый раз логин и пароль (и код 2FA) при авторизации?
A: Просто передавайте логин аргументом (--login) или вводите пустой пароль на экране авторизации. В таком случае данные будут подтянуты из конфига vk_api.

Q: Ошибка vk_api.exceptions.AccessDenied: You don't have permissions to browse user's audio
A: К сожалению, vk_api не поддерживает сохранение аудио при входе по токену. Ну или же попробуйте удалить файл vk_config.v2.json и переавторизироваться, если это не Ваш случай ¯\_(ツ)_/¯

Q: Ошибка RegexNotFoundError('Unable to extract %s' % _name)
A: Обновите youtube_dl: pip3 install --upgrade youtube_dl.