imSp4rky 6434fc2081 fix(dl): make audio/video track selection consistent and crash-safe
Share one best-audio selector across the episode and music paths so best/all works for songs, descriptive audio is capped to one track, and codec_priority is honored. Guard --channels and 16:9 canvas math against tracks missing channel/width metadata. Extend --best-available to video languages and full resolution misses in both normal and hybrid mode, and count only deliverable ranges when reporting missing resolutions. Rank video by resolution before bitrate, and trim group audio selections to one track per song with a warning.

BREAKING CHANGE: a missing resolution with -r HYBRID now errors without --best-available, matching non-hybrid behavior.
2026-07-11 18:41:41 -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
2025-07-18 00:46:05 +00:00
2025-07-18 00:46:05 +00:00
2026-06-30 20:51:17 -06: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

uv tool install git+https://github.com/unshackle-dl/unshackle.git
unshackle --help

Tip

Prefer uv run unshackle ... inside a clone to keep the virtual environment active.

Requirements

External tools on your PATH (recommended versions):

Optional:

License

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

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