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 в репозитории
1
Начать дискуссию