Перейти к основному содержимому

ydiskarc (Yandex.Disk)

ydiskarc — утилита командной строки для резервного копирования публичных ресурсов Яндекс.Диска, то есть файлов и папок, к которым владелец открыл доступ по ссылке. Она обращается к открытому API Яндекс.Диска для публичных ресурсов (cloud-api.yandex.net/v1/disk/public/resources), которое не требует авторизации, и скачивает содержимое на ваш компьютер без сохранения на собственный Диск.

Установка​

pip install --upgrade ydiskarc

На PyPI опубликована версия 1.1.0 (декабрь 2025 года). README требует Python 3.9 или новее.

В репозитории есть версия 1.2.0 (5 октября 2026 года) с параллельной загрузкой --parallel N, докачкой через .part-файлы и командой configure. На PyPI она пока не вышла, а установка из GitHub через pip install git+... на момент проверки давала неработающий пакет (в сборку не попадал подмодуль ydiskarc.cmds). Ниже описана версия 1.1.0.

Команды сверены с README и --help версии 1.1.0 (октябрь 2026).

Команды​

ydiskarc [команда] URL [опции]
КомандаЧто делает
syncРекурсивно обходит публичную папку, скачивает файлы по одному и сохраняет метаданные каждого уровня в _metadata.json
fullСкачивает одиночный файл как есть, а папку — одним ZIP-архивом (по умолчанию dump.zip)
versionПоказывает версию

Опции sync​

ОпцияОписание
-o, --outputКаталог для результата (по умолчанию — идентификатор ресурса)
--updateСкачивать только файлы, которых ещё нет локально
-n, --nofilesСохранить только метаданные, без файлов
-v, --verboseПодробный вывод

Опции full​

ОпцияОписание
-o, --outputКаталог для результата
-f, --filenameИмя выходного файла
-m, --metadataДополнительно сохранить метаданные в _metadata.json
-v, --verboseПодробный вывод

Примеры​

# Синхронизировать публичную папку с сохранением структуры
ydiskarc sync https://disk.yandex.ru/d/VVNMYpZtWtST9Q -o mos9maystyle

# Повторный запуск: докачать только новые файлы
ydiskarc sync https://disk.yandex.ru/d/VVNMYpZtWtST9Q -o mos9maystyle --update

# Только метаданные (перечень файлов, размеры, даты)
ydiskarc sync https://disk.yandex.ru/d/VVNMYpZtWtST9Q -o mos9maystyle --nofiles

# Скачать одиночный файл вместе с метаданными
ydiskarc full https://disk.yandex.ru/i/t_pNaarK8UJ-bQ -o files -m

Формат результата​

  • sync воспроизводит иерархию папок источника. На каждом уровне каталога лежит _metadata.json — ответ API с описанием папки и её содержимого.
  • full для папки сохраняет один ZIP-архив, для файла — сам файл; с -m рядом кладёт _metadata.json.

Особенности и ограничения​

  • Только публичные ресурсы. Закрытые папки ydiskarc не скачивает. Для работы с собственным Диском по OAuth-токену подойдёт Python-клиент yadisk.
  • Ограничения частоты запросов. При ответе 429 Too Many Requests утилита ждёт время из заголовка Retry-After и повторяет запрос.
  • Загрузка последовательная. В версии 1.1.0 файлы качаются по одному; параллельная загрузка появится с публикацией версии 1.2.0.
  • full для больших папок зависит от того, сможет ли Яндекс собрать ZIP на своей стороне. Если архив не формируется, используйте sync.

Частые ошибки​

  • «No download URL found for …» — неверная ссылка или ресурс больше не публичный. Проверьте ссылку в браузере.
  • 404 Not Found — ресурс удалён или ссылка указана неполностью.

Альтернативы​

СитуацияИнструмент
Собственный Диск с OAuth-токеномyadisk
Список прямых ссылок на файлы в CSV/JSONLfilegetter
Сайт на WordPresswparc

Связанные материалы​