К сожалению, с 15 февраля 2019 ВКонтакте закрыл доступ к личным сообщениям пользователей через API, и данное приложение больше не работоспособно.
Экспортирует личные сообщения в HTML файл. Умеет скачивать:
- Прикрепленные изображения
- Стикеры
- Информацию об аудиофайлах (сами файлы по умолчанию не скачиваются, но это можно включить)
- Заголовки и сгенерированные ВК описания внешних ссылок, которые доступны в диалогах
- Обложки видео
- Ссылки на документы, загруженные в ВК и их названия (сами файлы по умолчанию не загружаются, но можно включить)
- Изображения подарков, отправленных друг другу
- Содержимое и прикрепления постов, доступных из диалога
- Голосовые сообщения
Цель скрипта -- сохранить как можно больше информации, чтобы по сохраненному диалогу можно было бы полностью понять суть диалога с другим человеком.
Для работы скрипта требуется Python > 3.4.
Чтобы использовать скрипт, нужно дать ему доступ к своему аккаунту. Для этого есть несколько способов:
-
Откройте файл
config.ini
и введите свой логин и пароль вместоYOUR_LOGIN
иYOUR_PASSWORD
. -
Просто запустите скрипт (см. ниже), и он предложит вам ссылку, по которой нужно перейти. Скопируйте ссылку и откройте ее в браузере, либо просто нажмите Enter в консоли, чтобы открыть ее в дефолтном браузере. Откроется страница, в которой нужно дать доступ приложению. После этого вас перенаправит на пустую (почти) страницу. Скопируйте из адреса этой пустой страницы параметры
access_token
иuser_id
и вставьте их в файлconfig.ini
вместо значенийYOUR_ACCESS_TOKEN
иYOUR_USER_ID
. Затем уберите символы;
в начале этих строк.
Теперь можно запустить скрипт следующей командой:
python vk-dialog-export.py
Скрипт не отсылает и не хранит ваши личные данные в каких-то других местах, кроме файла config.ini
и выходных файлов.
Будьте осторожны, чтобы не дать доступ к персональным данным третьей стороне!
По умолчанию выходные файлы записываются в директорию ./out
.
Установить выходную директорию можно с помощью опции --out=/home/user/out
.
По умолчанию скрипт экспортирует все доступные диалоги, но можно экспортировать и только один избранный диалог, указав следующие параметры:
--person=PERSON_ID (экспортировать диалог с этим пользователем)
--chat=CHAT_ID (экспортировать данный чат)
--group=GROUP_ID (экспортировать диалог с группой)
По умолчанию скрипт не скачивает большую часть документов и аудиофайлы. Единственные документы, которые скачиваются по умолчанию -- голосовые сообщения. Для того, чтобы управлять этим поведением, используйте следующие параметры:
--docs (скачивать все документы)
--audio (скачивать все аудиофайлы)
--no-voice (НЕ скачивать голосовые сообщения)
Если вы хотите скачивать только документы и аудиофайлы, которые напрямую прикреплены к сообщениям (не к расшаренным постам), укажите следующие параметры:
--docs-depth=0
--audio-depth=0
Если --docs-depth=1
или --audio-depth=1
, документы и аудиофайлы, прикрепленные к расшаренным постам, тоже будут скачиваться.
Внимание: многие аудиофайлы все равно не получится скачать из-за ограничений VK API.
По умолчанию диалоги экспортируются в HTML формате, но можно экспортировать в JSON:
--format=json (экспортировать в JSON)
--format=html (экспортировать в HTML, по умолчанию)
Дополнительные параметры экспорта:
--embed-resources (внедрять стили и скрипты в HTML файл, по умолчанию сохраняются в отдельных файлах)
--save-raw (дополнительно сохранять в JSON ответы VK API)
--save-json-in-html (дополнительно сохранять сообщения в JSON формате внутри HTML файлов, JSON будет записан в атрибут `data-json`)