mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2026-11-12 12:05:07 +00:00
a0feb51d5ae2ce6b72c3a4441390b97086564bee
When a service calls `request_input` (e.g., during OTP verification in the `authenticate` phase), the terminal's active `Live` or `status` spinner contexts (handled by `rich`) would continuously refresh and redraw in the background. This caused the input prompt to disappear or become hidden immediately after rendering, although keystrokes were still registered. This commit resolves the issue by overriding `Console.input` in `ComfyConsole` to: 1. Temporarily pause (`stop()`) all active `Live` displays before requesting input. 2. Read the user input safely without interference from the refresh loop. 3. Resume (`start()`) all previously active displays in the reverse order afterwards.
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.11 - 3.14
- uv - ≥ 0.5
- FFmpeg - ≥ 6.0
- MKVToolNix - ≥ 80
- shaka-packager - 2.6.1
- Bento4 - ≥ 1.6.0-639
- dovi_tool - ≥ 2.1
Optional:
- SubtitleEdit - ≥ 5.0 (
SeConvCLI)
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%