Andy
798b5bf3cd
feat(hls): Enhance segment merging with recursive file search and fallback to binary concatenation
2025-08-11 03:53:17 +00:00
Andy
725f7be563
fix(dl): Adjust per_language logic to ensure correct audio track selection and not download all tracks for selected language.
2025-08-09 17:39:36 +00:00
Andy
b2686ca2b1
feat(vault): Add no_push option to Vault and its subclasses to control key reception
2025-08-08 23:38:52 +00:00
Andy
abc3b4f1a4
feat(dl): Add audio language option to override language for audio tracks
2025-08-08 21:57:49 +00:00
Andy
9952758b38
feat(changelog): Update changelog with enhanced tagging configuration and improvements
2025-08-08 05:03:57 +00:00
Andy
f56e7c1ec8
chore(release): Bump version to 1.4.1 and update changelog with title caching features
2025-08-08 04:57:32 +00:00
Andy
096b7d70f8
Merge remote-tracking branch 'origin/main' into feature/title-caching
2025-08-08 04:50:46 +00:00
Andy
460878777d
refactor(tags): Simplify Simkl search logic and soft-fail when no results found
2025-08-07 17:56:36 +00:00
Andy
9eb6bdbe12
feat(tags): Enhance tag_file function to prioritize provided TMDB ID if --tmdb is used
2025-08-06 22:15:16 +00:00
Andy
41d203aaba
feat(config): Add options for tagging with group name and IMDB/TMDB details and new API endpoint of simkl if no tmdb api key is added.
2025-08-06 21:34:14 +00:00
Andy
0c6909be4e
feat(dl): Update language option default to 'orig' if no -l is set, avoids hardcoded en
2025-08-06 21:33:23 +00:00
Andy
f0493292af
feat: Implement title caching system to reduce API calls
...
- Add configurable title caching with fallback support
- Cache titles for 30 minutes by default, with 24-hour fallback on API failures
- Add --no-cache and --reset-cache CLI flags for cache control
- Implement region-aware caching to handle geo-restricted content
- Use SHA256 hashing for cache keys to handle complex title IDs
- Add cache configuration variables to config system
- Document new caching options in example config
This caching system significantly reduces redundant API calls when debugging
or modifying CLI parameters, improving both performance and reliability.
2025-08-06 17:08:58 +00:00
Andy
ead05d08ac
fix(subtitle): Handle ValueError in subtitle filtering for multiple colons in time references fixes issues with subtitles that contain multiple colons
2025-08-06 01:28:03 +00:00
Andy
8c1f51a431
refactor: Remove Dockerfile and .dockerignore from the repository
2025-08-05 23:56:07 +00:00
Andy
b4a1f2236e
feat: Bump version to 1.4.0 and update changelog with new features and fixes
2025-08-05 23:37:45 +00:00
Andy
3277ab0d77
feat(playready): Enhance KID extraction from PSSH with base64 support and XML parsing
2025-08-05 23:28:30 +00:00
Andy
be0f7299f8
style(dl): Standardize quotation marks for service attribute checks
2025-08-05 23:27:59 +00:00
Andy
948ef30de7
feat(dl): Add support for services that do not support subtitle downloads
2025-08-05 20:22:08 +00:00
Andy
1bd63ddc91
feat(titles): Better detection of DV across all codecs in Episode and Movie classes dvhe.05.06 was not being detected correctly.
2025-08-05 18:33:51 +00:00
Andy
4dff597af2
feat(dl): Fix track selection to support combining -V, -A, -S flags
...
Previously, using multiple track selection flags like `-S -A` would not work
as expected. The flags were treated as mutually exclusive, resulting in only
one type of track being downloaded.
This change refactors the track selection logic to properly handle combinations:
- Multiple "only" flags now work together (e.g., `-S -A` downloads both)
- Exclusion flags (`--no-*`) continue to work and override selections
- Default behavior (no flags) remains unchanged
Fixes #10
2025-08-05 15:48:17 +00:00
Andy
8dbdde697d
feat(hybrid): Enhance extraction and conversion processes with dymanic spinning bars to follow the rest of the codebase.
2025-08-05 14:57:51 +00:00
Andy
63c697f082
feat(series): Enhance tree representation with season breakdown
2025-08-04 19:30:27 +00:00
Andy
3e0835d9fb
feat(dl): Improve DRM track decryption handling
2025-08-04 19:30:27 +00:00
Andy
c6c83ee43b
feat(dl): Enhance language selection for video and audio tracks, including original language support
2025-08-04 19:30:27 +00:00
Andy
507690834b
feat(tracks): Add support for HLG color transfer characteristics in video arguments
2025-08-04 19:28:11 +00:00
Andy
f8a58d966b
feat(subtitle): Add filtering for unwanted cues in WebVTT subtitles
2025-08-03 22:10:17 +00:00
Andy
8d12b735ff
feat(dl): Add option to include forced subtitle tracks
2025-08-03 22:00:21 +00:00
Andy
1aaea23669
Revert "feat: Implement terminal cleanup on exit and signal handling in ComfyConsole"
...
This reverts commit 091d7335a3 .
2025-08-03 15:26:30 +00:00
Andy
e3571b9518
feat(update_checker): Enhance update checking logic and cache handling
2025-08-03 06:58:59 +00:00
Andy
b478a00519
chore: Bump unshackle version to 1.3.0 in uv.lock
2025-08-03 06:45:40 +00:00
Andy
24fb8fb00c
chore: Update changelog with new features, enhancements, and fixes for version 1.3.0
2025-08-03 06:30:53 +00:00
Andy
63e9a78b2a
chore: Bump version to 1.3.0 and update changelog with mp4decrypt support and enhancements
2025-08-03 06:26:24 +00:00
Andy
a2bfe47993
feat(drm): ✨ Add support for mp4decrypt as a decryption method
...
* Introduced a new configuration option for DRM decryption in `unshackle.yaml`.
* Updated the `decrypt` methods in `PlayReady` and `Widevine` classes to allow using `mp4decrypt`.
* Enhanced the `Config` class to manage decryption methods per service.
* Added `mp4decrypt` binary detection in the binaries module.
2025-08-03 06:23:43 +00:00
Andy
cf4dc1ce76
feat: Add unshackle-example.yaml to replace the unshackle.yaml file, you can now make changes to the unshackle.yaml file and pull from the the repo without issues.
2025-08-03 00:54:29 +00:00
Andy
40028c81d7
Merge branch 'feature/scene-naming-option'
2025-08-03 00:48:22 +00:00
Andy
06df10cb58
fix: rename 'servers' to 'server_map' for proxy configuration in unshackle.yaml to resolve nord/surfshark incorrect named config
2025-08-01 20:23:03 +00:00
Andy
d61bec4a8c
feat: Add scene naming option to configuration and update naming logic in titles
2025-08-01 18:40:40 +00:00
Andy
058bb60502
feat: update path of update_check.json to .gitignore
2025-08-01 17:44:11 +00:00
Andy
7583129e8f
feat: Enhance credential management and CDM configuration in unshackle.yaml
2025-08-01 17:41:19 +00:00
Andy
4691694d2e
feat: Add Unspecified_Image option to Transfer enum in Video class.
...
The Transfer enum was missing value 2, which according to ITU-T H.Sup19 standards represents "Unspecified (Image
characteristics are unknown or are determined by the application)". This value is often used for still image coding systems.
2025-08-01 17:10:55 +00:00
Andy
a07345a0a2
refactor: Replace log.exit calls with ValueError exceptions for error handling in Hybrid class
2025-07-31 23:48:22 +00:00
Andy
091d7335a3
feat: Implement terminal cleanup on exit and signal handling in ComfyConsole
2025-07-31 18:25:18 +00:00
Andy
8c798b95c4
fix: Correct URL handling and improve key retrieval logic in HTTP vault
2025-07-31 15:45:12 +00:00
Andy
46c28fe943
feat: Add update check interval configuration and implement rate limiting for update checks
2025-07-30 23:36:59 +00:00
Andy
22c9aa195e
feat: Bump version to 1.2.0 and update changelog, I'll eventually learn symantic versioning.
2025-07-30 23:15:20 +00:00
Andy
776d8f3df0
feat: Update version to 1.1.1 and add update checking functionality
2025-07-30 23:12:13 +00:00
Andy
67caf71295
Merge branch 'hdr10ptest'
2025-07-30 22:49:01 +00:00
Andy
3ed76d199c
chore(workflow): 🗑️ Remove Docker build and publish workflow, its too messy at the moment doing manual builds for now.
2025-07-30 22:48:00 +00:00
Andy
4de9251f95
feat(tracks): ✨ Add duration fix handling for video and hybrid tracks
2025-07-30 21:39:34 +00:00
Andy
d2fb409ad9
feat(hybrid): ✨ Add HDR10+ support for conversion to Dolby Vision and enhance metadata extraction
2025-07-30 21:14:50 +00:00
Andy
fdff3a1c56
refactor(env): ✨ Enhance dependency check with detailed categorization and status summary
2025-07-30 20:12:43 +00:00
Andy
5d1f2eb458
feat(attachment): ✨ Ensure temporary directory is created for downloads
2025-07-30 18:52:36 +00:00
Andy
3efac3d474
feat(vaults): ✨ Enhance vault loading with success status
2025-07-30 17:29:06 +00:00
Andy
f578904b76
feat(subtitle): ✨ Add information into unshackle.yaml on how to use new Subby subtitle conversion.
2025-07-30 02:18:35 +00:00
Andy
9f20159605
feat(hybrid): ✨ Display resolution of HDR10 track in hybrid mode console output and clean up unused code
2025-07-30 02:08:07 +00:00
Andy
4decb0d107
feat(dl): ✨ Enhance hybrid processing to handle HDR10 and DV tracks separately by resolution, Hotfix for -q 2160,1080 both tracks will have Hybrid correctly now.
2025-07-30 01:09:59 +00:00
Andy
26ef48c889
fix(download): 🐛 Skip Content-Length validation for compressed responses in curl_impersonate and requests
2025-07-30 00:32:25 +00:00
Andy
5dad2746b1
feat(subtitles): ✨ Integrate subby library for enhanced subtitle processing and conversion methods
2025-07-30 00:24:55 +00:00
Andy
24aa4647ed
chore: ✨ Add CHANGELOG.md to document notable changes and version history
2025-07-29 20:32:35 +00:00
Andy
eeb553cb22
chore: 🔖 Bump version to 1.1.0 in pyproject.toml, __init__.py, and uv.lock to follow correct Semantic Versioning.
2025-07-29 19:48:34 +00:00
Andy
06c96b88a5
fix(download): 🐛 Skip Content-Length validation for compressed responses in curl_impersonate and requests. The fix ensures that when Content-Encoding indicates compression, we skip the validation by setting content_length = 0, allowing the downloads to complete successfully.
2025-07-29 19:13:50 +00:00
Andy
e8e376ad51
fix(hybrid): 🐛 Fix import order and add missing json import
...
fix(uv): 🐛 Update unshackle package version to 1.0.2
2025-07-29 19:11:11 +00:00
Andy
fbb140ec90
feat(EXAMPLE): ✨ Add support for HDR10 and DV tracks in hybrid mode
2025-07-29 17:57:01 +00:00
Andy
16a684c77f
fix(dl): 🐛 Check for dovi_tool availability in hybrid mode
2025-07-29 17:47:27 +00:00
Andy
c97de0c32b
feat(hybrid): ✨ Implement HDR10+DV hybrid processing and injection support
...
Original code by @P0llUx12 - Discord
2025-07-29 17:40:02 +00:00
Andy
c81b7f192e
fix(install): 🐛 Improve UV installation process and error handling
...
* Enhanced the installation script for `uv` by:
* Adding checks for existing installations.
* Improving error messages for PowerShell script execution.
* Ensuring `uv` is correctly added to the PATH for the current session.
* Updated the installation confirmation messages for clarity.
2025-07-25 22:40:46 +00:00
Andy
1b9fbe3401
fix(env): 🐛 Improve handling of directory paths in info command
...
* Enhanced the `info` command to support both single `Path` objects and lists of `Path` objects.
* For lists, each path is now displayed on a separate line, improving readability.
* Maintained original logic for single `Path` objects to ensure consistent behavior.
2025-07-25 18:46:55 +00:00
Andy
f69eb691d7
feat(binaries): ✨ Add support for MKVToolNix and mkvpropedit
...
* Introduced `MKVToolNix` and `mkvpropedit` binaries to the project.
* Updated the environment check to include required status for dependencies.
* Enhanced the `Tracks` class to raise an error if `MKVToolNix` is not found.
* Modified the `_apply_tags` function to utilize the `mkvpropedit` binary from the binaries module.
2025-07-25 18:27:14 +00:00
Andy
05ef841282
fix(env): 🐛 Update Shaka-Packager binary retrieval method
...
* Changed the binary retrieval for `Shaka-Packager` to use `find_binary` for improved accuracy.
* This ensures the correct binary is located and used in the environment checks.
2025-07-25 18:18:00 +00:00
Andy
454f19a0f7
fix(env): 🐛 Update binary search functionality to use binaries.find
...
* Refactored the `find_binary` function to utilize `binaries.find` for improved binary detection.
* Updated dependency path retrieval to ensure accurate results.
2025-07-25 18:09:06 +00:00
Andy
4276267455
feat(proxies): ✨ Add SurfsharkVPN support
...
Original code by @p0llux12 - Discord
- Introduced `SurfsharkVPN` class for proxy service integration.
- Updated configuration to include `surfsharkvpn` in proxy providers.
- Removed legacy `nordvpn` configuration from YAML.
- Enhanced `dl.py` and `search.py` to utilize `SurfsharkVPN`.
2025-07-25 09:03:08 +00:00
Andy
ab40dc1bf0
Merge branch 'main' of https://github.com/unshackle-dl/unshackle
2025-07-25 08:32:27 +00:00
Andy
ec16e54c10
fix(binaries): 🐛 Improve local binary search functionality
...
* Added logic to check for executables in a local `binaries` directory.
* Enhanced Windows support by checking for `.exe` extensions.
* Removed unnecessary `binaries/` entry from `.gitignore`.
2025-07-25 08:32:26 +00:00
Andy
eaa5943b8e
Include yaml updates showing how to use new multiple service folders
2025-07-20 16:51:38 +00:00
Andy
4385035b05
fix(cfg): 🐛 Update services directory handling
...
* Updated the `services` directory assignment to ensure it is always treated as a list, improving consistency in configuration handling. Allows to provide multiple different service folders.
2025-07-20 16:49:44 +00:00
Andy
cb26ac6fa2
feat: ✨ Update version display in main.py
...
* Changed the version display in `__main__.py` to include copyright information.
2025-07-20 15:45:50 +00:00
Andy
95674d5739
Update readme with better instructions for docker usage with correct downloads path
2025-07-20 05:38:46 +00:00
Andy
80eb31387f
fix: update shaka packager version and enhance Docker run command with additional volume mounts
2025-07-20 04:00:57 +00:00
Andy
75cd556737
feat: update GitHub Actions workflow for Docker image build and add Docker installation instructions to README
2025-07-20 03:17:24 +00:00
Andy
c30b9112a1
Fixes github actions not finding the uv.lock file
2025-07-20 02:50:50 +00:00
Andy
52ce0ed7f7
feat: add Dockerfile and GitHub Actions workflow for building and publishing Docker image
2025-07-20 02:47:08 +00:00
Andy
5a15e240d5
Remove branding and year from header.
2025-07-19 14:55:59 +00:00
Andy
4f4542c41c
fixes: ✨ add SubtitleCodecChoice for resolving issues with config clicktype selection, using names like VTT or SRT was not working as expected
...
* Introduced `SubtitleCodecChoice` to allow selection of subtitle codecs with support for enum names, values, and common aliases.
* Updated `--sub-format` option in `dl.py` to utilize the new `SubtitleCodecChoice`.
2025-07-19 05:44:33 +00:00
Andy
fa0224b19f
fix: add video_only condition to subtitle track selection logic fixes issues where ccextractor would run even with -V enabled
2025-07-18 23:21:13 +00:00
Andy
49a0eb7cf3
feat: implement VideoCodecChoice for enhanced codec selection
2025-07-18 23:20:46 +00:00
Andy
ed03b1a4fd
refactor: improve track selection logic in dl.py
2025-07-18 23:19:01 +00:00
Andy
fd2d9829a1
feat: add .github/ to .gitignore to exclude GitHub-related files
2025-07-18 21:53:57 +00:00
Andy
703ed6f3b2
refactor: reorganize Planned Features section in README for clarity
2025-07-18 18:54:55 +00:00
Andy
6037b640ac
feat: update .gitignore and enhance README with planned features
2025-07-18 18:30:55 +00:00
Andy
1a49d288f8
fix: change default value of set_terminal_bg to False
2025-07-18 01:40:55 +00:00
Andy
e98c9ef66a
feat: enhance CONFIG.md with new configuration options for curl_impersonate, filenames, n_m3u8dl_re, and nordvpn
2025-07-18 01:39:47 +00:00
Andy
5b8cd847dc
Add fancy icon.
2025-07-18 01:19:54 +00:00
Andy
d856cb81d8
refactor: streamline README by removing outdated service and legal information and moved it directly to the WIKI
2025-07-18 01:11:44 +00:00
Andy
d37014f53f
Initial Commit
2025-07-18 00:46:05 +00:00