Yandex Disk Protected Folder Downloader
Скрипт для рекурсивного скачивания большой публичной папки Яндекс Диска, защищённой паролем.
Скрипт использует cookie passToken, скачивает каждый файл отдельно и не пытается сформировать единый ZIP-архив.
Возможности
- скачивание защищённой публичной папки;
- рекурсивный обход вложенных каталогов;
- сохранение исходной структуры папок;
- скачивание файлов по одному;
- продолжение прерванной загрузки через
wget --continue; - автоматический пропуск полностью скачанных файлов;
- проверка размера скачанного файла;
- автоматическая пагинация списка файлов;
- остановка при появлении CAPTCHA;
- сохранение ссылки CAPTCHA в текстовый файл;
- паузы между запросами для снижения вероятности блокировки;
- повторный запуск без потери уже скачанных данных.
Требования
Поддерживается Linux с Python 3.
Необходимые пакеты:
sudo apt install -y python3 python3-requests wget
Настройка
Все основные параметры находятся в начале файла:
TARGET_URL = (
"https://disk.yandex.ru/d/"
"cWn4RgSdFcSZXw/ODIS/Flashdaten/Brand-V"
)
PASS_TOKEN = ""
OUTPUT_DIR = "/mnt/hdd1-4TB/ODIS/Flashdaten/Brand-V"
TARGET_URL
Полная ссылка на скачиваемую папку Яндекс Диска:
TARGET_URL = "https://disk.yandex.ru/d/cWn4RgSdFcSZXw/ODIS/Flashdaten/Brand-V"
PASS_TOKEN
Значение cookie passToken, полученное после ввода пароля в браузере.
Можно указать только значение:
PASS_TOKEN = "значение_cookie_passToken"
OUTPUT_DIR
Каталог, куда будут сохранены файлы:
OUTPUT_DIR = "/mnt/hdd1-4TB/ODIS/Flashdaten/Brand-V"
Каталог будет создан автоматически, если у пользователя есть права на его создание.
Пример вывода
[INFO] Открываю исходную ссылку...
[INFO] Папка открыта.
[INFO] Корневой hash: public_hash:
[DIR ] /mnt/hdd1-4TB/ODIS/Flashdaten/Brand-V
[GET ] /mnt/hdd1-4TB/ODIS/Flashdaten/Brand-V/038997016C__7000.sgo (1.75 MiB)
[WAIT] 2.4 с перед запросом ссылки
2026-07-19 URL:https://downloader.disk.yandex.ru/... [1835008/1835008]
[PAGE] получено=41, следующий offset=41, completed=False
[WAIT] 4.2 с перед следующей страницей
После завершения выводится статистика:
================ РЕЗУЛЬТАТ ================
Найдено файлов: 4500
Скачано сейчас: 250
Уже было скачано: 4250
Ошибок: 0
Известный общий объём: 115.40 GiB
===========================================
CAPTCHA
При большом количестве запросов Яндекс может вернуть CAPTCHA.
Скрипт распознаёт ответ:
{
"type": "captcha"
}
После этого загрузка немедленно прекращается.
Будет выведена ссылка:
ЯНДЕКС ПОТРЕБОВАЛ CAPTCHA
Открой ссылку ниже в обычном браузере с того же внешнего IP:
https://disk.yandex.ru/showcaptcha?...
Ссылка также сохраняется в файл:
/mnt/hdd1-4TB/ODIS/Flashdaten/Brand-V/yandex-captcha-url.txt
Настройка задержек
FILE_DELAY_MIN и FILE_DELAY_MAX
Случайная задержка перед запросом прямой ссылки на каждый файл:
FILE_DELAY_MIN = 1.5
FILE_DELAY_MAX = 3.5
Скрипт будет ждать от 1.5 до 3.5 секунды перед каждым запросом download-url.
PAGE_DELAY_MIN и PAGE_DELAY_MAX
Задержка между страницами списка файлов:
PAGE_DELAY_MIN = 3.0
PAGE_DELAY_MAX = 6.0
COOLDOWN_EVERY_FILES
Количество запросов файлов, после которого выполняется длинная пауза:
COOLDOWN_EVERY_FILES = 100
При значении 100 длинная пауза выполняется после каждых 100 запросов.
COOLDOWN_MIN и COOLDOWN_MAX
Диапазон длительной паузы:
COOLDOWN_MIN = 60.0
COOLDOWN_MAX = 120.0
После каждых 100 запросов скрипт будет ждать от 60 до 120 секунд.
Коды завершения
Скрипт использует следующие коды выхода:
| Код | Значение |
|---|---|
0 |
загрузка завершена без ошибок |
1 |
загрузка завершена с ошибками |
2 |
ошибка конфигурации или отсутствует wget |
75 |
Яндекс потребовал CAPTCHA |
130 |
процесс остановлен через Ctrl+C |
Проверить код после завершения:
echo $?