D
Drydock

Файлы из облака, которое перестало их отдавать

Drydock описывает коллекцию на Яндекс.Диске, забирает то, что облако ещё отдаёт, сверяет хеши и пакует спасённое в архивы. Написан для случая, когда каталог цел, а файлы не скачиваются: клиент синхронизации видит, что файла нет локально, и получает ту же ошибку.

Файлы то отдаются, то нет — часть возвращается через дни. Поэтому программу имеет смысл держать запущенной подольше или возвращаться к ней в другие дни. Сделана под свою коллекцию: в первый день вытащила половину, остальное добиралось неделями.

Windows, macOS, Linux · Python 3.12+ (или готовый .exe) · MIT.

Готовый файл

Один .exe, Python не нужен. Windows 10/11.

Скачать Drydock.exe

Из исходников

Python 3.12+ и 7-Zip. Windows, macOS, Linux.

git clone https://github.com/venedicus/drydock.git
cd drydock
python3 -m venv .venv
.venv/bin/python -m pip install -e .

Помощь проекту

Поставить звезду, рассказать о проекте или прислать отчёт о том, где числа разошлись.

Донат

Реквизиты для перевода.

Карта, СБП, ЮMoney

Перевести yoomoney.ru/to/4100117869777196

Криптовалюта

  • BitcoinBTC bc1qaj3jllqse90sqcrfvtyv5ll7le2guh0q30prp2
  • Bitcoin LightningBTC · Lightning-адрес venedicus@cake.cash
  • EthereumETH и любые ERC-20 0x1e728B3568c9072A749694dEa116b1c8331fD43a
  • BNB ChainBNB и любые BEP-20 0x1e728B3568c9072A749694dEa116b1c8331fD43a
  • PolygonPOL и любые ERC-20 0x1e728B3568c9072A749694dEa116b1c8331fD43a
  • TONTON и любые жетоны UQBKSMU3B9OFfaqWK3iQBCyifZjCEgF8m4kBsO-Tu5U4Grx1
  • TronTRX и любые TRC-20 TMibQMbptanys3JVgZxpHucQLZsWGTihzg
  • SolanaSOL и любые SPL 5xb56pkcUk473d13MKADLdBNtuA2v4qFukSpWermZhm3
  • DogecoinDOGE D7VGb1PsLqr5RSnFmiwCz81zTq9gPsUTng
  • LitecoinLTC ltc1qp0wfw2hezl94c4c3cl6yeya4wcczck2ttjaun8
  • MoneroXMR 45LuFsk9rr7JwepcsfaspeTwyUVy7QbbWUbA1hsBj374h3BPhyPvpqWLVfQM9kDJBddZKsQcNbDEhS3ZTdoritJvGLdsWPF
Ethereum, BNB Chain и Polygon используют один адрес — сеть выбирается при отправке.

Что умеет

  • Описьзаписывает имя, размер, хеши и место в дереве — включая файлы, которые уже не скачать
  • Пробапроверяет доступность без скачивания: первый и последний байт
  • Кругкачает всё, что отдаётся, и перепроверяет недоступное, пока не остановишь
  • Архивтома 3.9 / 1.9 ГБ или одним файлом, с проверкой после упаковки
  • Удалениеосвобождает облако тем, что уже проверено: проверенная копия, архив или ручной выбор
  • Здоровьепоказывает, почему не выходит: причины отказов, узлы, задачи
  • Экспортвыгружает опись в CSV или JSON — с хешами и состоянием
Интерфейс Drydock

Files from a cloud that stopped serving them

Drydock inventories a Yandex.Disk collection, takes whatever the cloud still serves, verifies hashes and packs the rescued files into archives. It is written for the case where the catalogue is intact but the files do not download: a sync client sees the file missing locally and gets the same error.

Files come and go — some come back days later. That is why the program is worth leaving running for a while, or starting again on other days. It was built for a real collection: half of it on the first day, the rest took weeks.

Windows, macOS, Linux · Python 3.12+ (or the ready-made .exe) · MIT.

Ready-made file

A single .exe, no Python needed. Windows 10/11.

Download Drydock.exe

From sources

Python 3.12+ and 7-Zip. Windows, macOS, Linux.

git clone https://github.com/venedicus/drydock.git
cd drydock
python3 -m venv .venv
.venv/bin/python -m pip install -e .

Helping the project

Star the repo, tell others about it, or send a report where the numbers do not add up.

Donations

Details for a transfer.

Card, SBP, YooMoney

Send yoomoney.ru/to/4100117869777196

Crypto

  • BitcoinBTC bc1qaj3jllqse90sqcrfvtyv5ll7le2guh0q30prp2
  • Bitcoin LightningBTC · Lightning address venedicus@cake.cash
  • EthereumETH and any ERC-20 0x1e728B3568c9072A749694dEa116b1c8331fD43a
  • BNB ChainBNB and any BEP-20 0x1e728B3568c9072A749694dEa116b1c8331fD43a
  • PolygonPOL and any ERC-20 0x1e728B3568c9072A749694dEa116b1c8331fD43a
  • TONTON and any jettons UQBKSMU3B9OFfaqWK3iQBCyifZjCEgF8m4kBsO-Tu5U4Grx1
  • TronTRX and any TRC-20 TMibQMbptanys3JVgZxpHucQLZsWGTihzg
  • SolanaSOL and any SPL 5xb56pkcUk473d13MKADLdBNtuA2v4qFukSpWermZhm3
  • DogecoinDOGE D7VGb1PsLqr5RSnFmiwCz81zTq9gPsUTng
  • LitecoinLTC ltc1qp0wfw2hezl94c4c3cl6yeya4wcczck2ttjaun8
  • MoneroXMR 45LuFsk9rr7JwepcsfaspeTwyUVy7QbbWUbA1hsBj374h3BPhyPvpqWLVfQM9kDJBddZKsQcNbDEhS3ZTdoritJvGLdsWPF
Ethereum, BNB Chain and Polygon share one address — pick the network when sending.

What it does

  • Inventoryrecords name, size, hashes and place in the tree — including files that can no longer be downloaded
  • Probechecks availability without downloading: first and last byte
  • Loopdownloads everything served and re-checks the rest until stopped
  • Archive3.9 / 1.9 GB volumes or a single file, verified after packing
  • Deletefrees cloud space in three modes: verified copy, archived copy, or manual selection
  • Healthshows why it fails: reasons, nodes, jobs
  • Exportwrites the inventory to CSV or JSON — with hashes and state
Drydock interface