imSp4rky 5086dafff3 feat(api)!: add a server drain and never answer with a 5xx
POST/DELETE /api/dashboard/drain refuses new sessions and jobs (SERVER_DRAINING, 409) and warns open sessions. A CDN can replace a 5xx body, so server errors are now 422, retryable ones and the tunnel check 424, and a new middleware turns any 5xx into 422.

BREAKING CHANGE: INTERNAL_ERROR, DOWNLOAD_ERROR, WORKER_ERROR and the fallback return 422 instead of 500; NETWORK_ERROR and SERVICE_UNAVAILABLE return 424 instead of 503; /api/tunnel/check failures return 424 instead of 502.
2026-10-21 17:15:33 -06:00
2025-07-18 00:46:05 +00:00
2025-07-18 00:46:05 +00:00
2025-07-18 00:46:05 +00:00
2026-10-01 12:22:49 -06:00
2025-07-18 00:46:05 +00:00
2025-07-18 00:46:05 +00:00

no_encryption unshackle
Movie, TV, and Music Archival Software
Discord

Install  ·  Docs  ·  Discord


A modular archival tool for movies, TV, and music. Fork of Devine with DASH/HLS/ISM parsing, Widevine & PlayReady DRM, and a REST API.

unshackle demo

Install

The recommended way is a git clone with the install script. The script installs uv and unshackle, then runs unshackle setup to download the external tools and write a first config.

git clone https://github.com/unshackle-dl/unshackle.git
cd unshackle
sh install.sh                 # Windows: .\install.bat
uv run unshackle env check

In a clone, run every command as uv run unshackle ....

Note

Advanced: uv tool install git+https://github.com/unshackle-dl/unshackle.git installs unshackle into the tool folder of uv, not a folder that you choose. unshackle setup then puts the tools, config, and data in your user data and config directories. See Installation for details.

Requirements

External tools. (recommended versions):

Optional:

License

GPL-3.0. Do not use unshackle for content you do not have the rights to. Keep the core free and open. Keep service code private. Be kind.

S
Description
No description provided
Readme GPL-3.0
53 MiB
Languages
Python 99.9%