mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2026-06-10 03:02:09 +00:00
538deac63e2fc929a10040f61a0adca78854093a
Drop the manually-set Proxy-Authorization header in the Service base class. It was malformed (base64 of user:pass with no "Basic" scheme) and redundant: both rnet (Proxy.all) and requests authenticate from the credentials embedded in the proxy URL. The broken header was tunnelled harmlessly on HTTPS (CONNECT) but handed to the proxy on plaintext-http forward requests, causing HTTP 407 (e.g. http MPD/segment URLs behind an authenticated geofence proxy). Also make RnetSession._build_url accept the same params shapes as requests (mapping, sequence of pairs, or a pre-built str/bytes query). urlencode() previously raised TypeError on a string params value.
unshackle
Movie, TV, and Music Archival Software
Install · Wiki · 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.
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):
- Python - 3.10 - 3.12
- uv - ≥ 0.5
- FFmpeg - ≥ 6.0
- MKVToolNix - ≥ 80
- shaka-packager - 2.6.1
- Bento4 - ≥ 1.6.0-639
- dovi_tool - ≥ 2.1
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.
Languages
Python
99.9%