Initial commit: VK media tools
Скрипты для выгрузки фото и видео из диалогов ВКонтакте, обработки (дедупликация + CLIP-классификация) и загрузки в Immich. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
85
config.py
Normal file
85
config.py
Normal file
@@ -0,0 +1,85 @@
|
||||
"""
|
||||
Конфигурация скрипта для выгрузки фото из диалогов ВКонтакте.
|
||||
|
||||
Как получить токен:
|
||||
1. Перейди по ссылке в браузере:
|
||||
https://oauth.vk.com/authorize?client_id=2685278&scope=messages,photos,offline&redirect_uri=https://oauth.vk.com/blank.html&display=page&response_type=token&v=5.199
|
||||
2. Авторизуйся и разреши доступ
|
||||
3. Скопируй access_token из адресной строки (значение между access_token= и &expires_in)
|
||||
4. Вставь его ниже в переменную VK_TOKEN
|
||||
"""
|
||||
|
||||
# Токен доступа VK API (обязательно заполнить)
|
||||
VK_TOKEN: str = ""
|
||||
|
||||
# Папка для сохранения фото (относительный или абсолютный путь)
|
||||
DOWNLOAD_DIR: str = "downloads"
|
||||
|
||||
# Папка для результатов обработки (дубликаты, мусор, review) — рядом с downloads
|
||||
OUTPUT_DIR: str = "output"
|
||||
|
||||
# Файл прогресса для механизма resume
|
||||
PROGRESS_FILE: str = "progress.json"
|
||||
|
||||
# Версия VK API
|
||||
API_VERSION: str = "5.199"
|
||||
|
||||
# Минимум свободного места на диске (в МБ), при котором скрипт остановится
|
||||
MIN_FREE_SPACE_MB: int = 500
|
||||
|
||||
# Задержка между скачиваниями файлов (секунды) — чтобы не перегружать сеть
|
||||
DOWNLOAD_DELAY: float = 0.1
|
||||
|
||||
# Количество попыток при сетевых ошибках
|
||||
MAX_RETRIES: int = 3
|
||||
|
||||
# Таймаут для скачивания одного фото (секунды)
|
||||
DOWNLOAD_TIMEOUT: int = 30
|
||||
|
||||
# Количество параллельных потоков для скачивания фото
|
||||
DOWNLOAD_WORKERS: int = 8
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Настройки обработки фото (process_photos.py)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Файл прогресса обработки
|
||||
PROCESS_PROGRESS_FILE: str = "process_progress.json"
|
||||
|
||||
# Файл лога перемещений (для отката)
|
||||
ROLLBACK_LOG_FILE: str = "rollback_log.json"
|
||||
|
||||
# Размер хеша (hash_size x hash_size бит, 8 = 64 бита)
|
||||
HASH_SIZE: int = 8
|
||||
|
||||
# Порог расстояния Хэмминга для near-дубликатов (0 = только точные, 8 = средний)
|
||||
DEDUP_THRESHOLD: int = 8
|
||||
|
||||
# Потоки для параллельного хеширования
|
||||
HASH_WORKERS: int = 8
|
||||
|
||||
# Размер батча для CLIP-классификации
|
||||
CLIP_BATCH_SIZE: int = 16
|
||||
|
||||
# Минимальный порог уверенности CLIP (ниже → папка _review)
|
||||
# Для CLIP ViT-B-32 cosine similarity обычно в диапазоне 0.12-0.35
|
||||
CLIP_CONFIDENCE_MIN: float = 0.15
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Настройки скачивания видео (main_video.py)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Папка для сохранения видео
|
||||
VIDEO_DOWNLOAD_DIR: str = "downloads_video"
|
||||
|
||||
# Файл прогресса для видео
|
||||
VIDEO_PROGRESS_FILE: str = "video_progress.json"
|
||||
|
||||
# Потоки скачивания (меньше чем для фото — видео тяжёлые)
|
||||
VIDEO_DOWNLOAD_WORKERS: int = 4
|
||||
|
||||
# Таймаут скачивания одного видео (секунды, видео крупнее фото)
|
||||
VIDEO_DOWNLOAD_TIMEOUT: int = 300
|
||||
|
||||
# Минимум свободного места для видео (МБ)
|
||||
VIDEO_MIN_FREE_SPACE_MB: int = 2000
|
||||
Reference in New Issue
Block a user