Пару дней назад на Хабре появилась статья Как массово скачать фотографии и документы с Яндекс Диска себе на компьютер. Появилась она неспроста, а в связи со всем известными событиями. Они затронули и меня, ведь мои облака (я когда-то безоговорочно доверился Яндексу) забиты старым редким кино, которое с немалой долей вероятности в сети уже не найти, либо найти очень и очень трудно.
Между тем, как я сохранил статью, и успел ее прочитать, прошло не так много времени, однако она ушла в небытие и при этом не попала ни в один архив. Однако гугл-поиск с радостью пересказал мне куски из статьи, а Perplexity даже откуда-то достал ссылку на упоминаемый там репозиторий.
Проблема в том, что я за два дня перепробовал все, что можно. От rclone до официального приложения Яндекс Диска, и так не смог выгрузить терабайты столь ценной для меня информации. Постоянные обрывы, недоступные файлы, фактически получилось собрать только текстовый каталог файлов.
Автор той статьи (к сожалению, не могу его тегнуть, так как от статьи остались лишь куски) написал через Qwen проект с асинхронной выгрузкой по официальному апи от Яндекса. Звучит хорошо, вот только реализация такая, словно это какой-то корпоративный мультиоблачный файловый менеджер с сотнями терабайт документов в качестве ежедневного актива. Автор нагородил какой-то лютый оверхед для очень простой задачи: Docker + Django + DRF + Celery + Redis + React/Vite + Nginx. Камон, мне казалось, что в 2026 году уже каждый разработчик уяснил, что уж планирование архитектуры точно не стоит целиком отдавать ИИ.
Ожидаемо на Windows эта история не завелась от слова совсем. Часть компонентов не поддерживаются, отжирает все это лишнюю оперативную память и банально время до запуска. Поэтому я решил шустренько перенести все на питон без дополнительных гигантских и бессмысленных служб вокруг.
Было:Docker Compose (4 контейнера, 5 сервисов: Redis, Django, Celery, Nginx, Node-сборщик). Жрало от 1.5 до 2.5 ГБ RAM через WSL2, стартовало минуту
Стало:Один нативный процесс Python (python run.py). Потребляет ~45 МБ RAM, стартует меньше чем за секунду
Получился аккуратный проект (с темной темой, кстати, а то что мы как эти-то ну), который асинхронно качает ваши файлы, пишет логи, сохраняет список недокачанных файлов и докачивает при повторном сканировании папки. К сожалению, пока все еще не удалось выгрузить все, так как некоторые файлы явно лежат на отключенных сегментах инфры Яндекса, но все, что выгрузить было можно, удалось получить в разы быстрее других готовых методов.
Надеюсь, чьи-то файлы это спасет и сэкономит время. И делайте бэкапы даже тогда, когда это неочевидно.