Экспорт личной переписки ВКонтакте в JSON и HTML.
__ ______ _______ __
\ \ / /___ \| ____\ \/ /
\ \ / / __) | _| \ /
\ V / / __/| |___ / \
\_/ |_____|_____/_/\_\
# 1. Клонируй и установи зависимости
git clone https://github.com/medellin17/vk-export.git
cd vk-export
pip install -r requirements.txt
# 2. Получи токен (откроется браузер)
python main.py --login
# 3. Посмотри свои диалоги
python main.py --list
# 4. Выгрузи переписку
python main.py --dialog 12345678 --format both --media| Команда | Описание |
|---|---|
python main.py --login |
OAuth через браузер |
python main.py --token TOKEN |
Ручной ввод токена |
python main.py --reset-auth |
Удалить сохранённый токен |
| Команда | Описание |
|---|---|
--list |
Показать все диалоги |
--dialog PEER_ID |
Выгрузить конкретный диалог |
--all |
Выгрузить все диалоги |
--search QUERY |
Фильтр диалогов по названию |
--me USER_ID |
Указать свой ID (для HTML) |
| Команда | Описание |
|---|---|
--format json |
Только JSON |
--format html |
Только HTML |
--format both |
Оба формата |
--output DIR |
Папка для выгрузки (./export) |
| Команда | Описание |
|---|---|
--media |
Скачать вложения |
--media-dir DIR |
Папка для медиа |
--limit N |
Лимит сообщений на диалог |
--from DATE |
С даты (ГГГГ-ММ-ДД) |
--to DATE |
По дату (ГГГГ-ММ-ДД) |
| Команда | Описание |
|---|---|
-v, --verbose |
Подробный вывод |
--dry-run |
Показать что будет выгружено |
# Только текст
python main.py --dialog 12345678
# С красивым HTML
python main.py --dialog 12345678 --format html
# Всё вместе: JSON + HTML + фото
python main.py --dialog 12345678 --format both --media
# За конкретный период
python main.py --dialog 12345678 --from 2025-01-01 --to 2025-12-31 --format both# Все диалоги в JSON
python main.py --all
# Все диалоги с медиа, в оба формата
python main.py --all --format both --media --output ~/vk-export
# Первые 50 сообщений из каждого диалога
python main.py --all --limit 50 --format both# Найти диалоги по имени
python main.py --list --search "Иван"
# Только личные переписки
python main.py --list --search "Иван" | grep "user"| Тип | JSON | HTML | Скачивание |
|---|---|---|---|
| Текст | ✅ | ✅ | — |
| Фото | ✅ | ✅ inline | ✅ --media |
| Стикеры | ✅ | ✅ inline | ✅ --media |
| Документы | ✅ | ✅ ссылка | ✅ --media |
| Голосовые | ✅ | ✅ плеер | ✅ --media |
| Видео | ✅ | ✅ ссылка | ❌ (ограничение API) |
| Пересылки | ✅ | ✅ | — |
| Ответы | ✅ | ✅ | — |
Экспортированный HTML выглядит так:
┌─────────────────────────────────────┐
│ Иван Иванов │
│ user | 1234 сообщений | 31.05.2026 │
├─────────────────────────────────────┤
│ │
│ ┌─ 31.05.2026 ──────────────────┐ │
│ │ │ │
│ │ ┌──────────────────────┐ │ │
│ │ │ Привет! Как дела? │ │ │
│ │ │ 14:30 │ │ │
│ │ └──────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────┐ │ │
│ │ │ Нормально, а у тебя│ │ │
│ │ │ 14:31 │ │ │
│ │ └────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────┐ │ │
│ │ │ 📷 [фото] │ │ │
│ │ │ 14:32 │ │ │
│ │ └──────────────────────┘ │ │
│ └───────────────────────────────┘ │
│ │
└─────────────────────────────────────┘
export/
├── 12345678_Иван_Иванов.json
├── 12345678_Иван_Иванов.html
├── 87654321_Петр_Петров.json
├── 87654321_Петр_Петров.html
└── media/ # если --media
├── photo_12345.jpg
├── photo_12346.jpg
├── sticker_12347.png
├── doc_12348_document.pdf
└── voice_12349.mp3
Где взять токен?
# Самый простой способ:
python main.py --login
# Откроется vkhost.github.io → нажми "vk.com" → скопируй токен из URLИли вставь токен напрямую:
python main.py --token TOKENКак узнать peer_id диалога?
python main.py --listПокажет все диалоги с их peer_id.
Сколько времени займёт выгрузка?
~200 сообщений/сек. 4440 сообщений ≈ 30 секунд.
Можно ли выгрузить групповой чат?
Да. Групповые чаты тоже поддерживаются.
MIT