VK Dialog Photo Archiver: утилита для выгрузки всех фотографий из диалогов ВКонтакте
Когда хочется сделать резервную копию фотографий из конкретного диалога ВКонтакте, вариантов не так много: либо выгружать всё руками, либо пытаться разбирать общий архив, который ВК генерирует по запросу. Оба сценария неудобны, особенно если нужно регулярно сохранять медиу из рабочих чатов.
В этой статье делюсь небольшим open‑source‑проектом — VK Dialog Photo Archiver. Это десктопное приложение на Python, которое по peer_id выгружает все прикрепленные фото из диалога и складывает их в локальную папку.
Что умеет утилита
- Работает с личными диалогами и беседами (peer_id = id пользователя или 2000000000 + chat_id).
- Авторизация по токену ВК: можно вставить как чистый токен, так и полную OAuth‑ссылку после авторизации (утилита сама его вытащит).
- Использует метод messages.getHistoryAttachments и забирает максимальный доступный размер фотографии.
- Идемпотентность: уже скачанные файлы пропускаются, так что утилиту можно запускать поверх существующей папки — будут догружены только новые фото.
- Параллельное скачивание в несколько потоков (через ThreadPoolExecutor) с аккуратной паузой между запросами к API, чтобы не ловить rate limit.
- GUI на CustomTkinter: прогресс‑бар, счётчик «скачано/всего», оценка оставшегося времени и предпросмотр последнего файла.
- Управление процессом:Пауза — останавливает обход вложений и обработку завершённых загрузок.Стоп — мягко завершает работу, не ставя новые задачи в очередь (несколько уже запущенных потоков докачивают свои файлы).
Технические детали
- Язык: Python 3.10+
- GUI: CustomTkinter (поверх стандартного Tkinter)
- Сеть: requests + vk_api
- Билд: PyInstaller (-F -w, отдельный exe для Windows x64)
- Лицензия: MIT
Структура кода максимально простая: одна точка входа, отдельные функции для работы с VK API, скачивания, логирования и GUI‑класса. Если вы хотели посмотреть живой пример Desktop‑утилиты на Python с реальным сценарием использования — проект может быть полезен как учебный.
Где взять
- Репозиторий: https://github.com/ItsLouan/VK-Dialog-Photo-Archiver
- Готовый exe (Windows): раздел Releases в репозитории