Skip to content

medellin17/vk-export

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vk-export

Экспорт личной переписки ВКонтакте в 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-превью

Экспортированный 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

FAQ

Где взять токен?

# Самый простой способ:
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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors