diff --git a/CHANGELOG.md b/CHANGELOG.md index 9625999..f477a7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.2.0] - 2026-01-15 + +### Added + +- **CDM-Aware PlayReady Fallback Detection**: Intelligent DRM fallback based on selected CDM + - Adds PlayReady PSSH/KID extraction from track and init data with CDM-aware ordering + - When PlayReady CDM is selected, tries PlayReady first then falls back to Widevine + - When Widevine CDM is selected (default), tries Widevine first then falls back to PlayReady +- **Comprehensive Debug Logging**: Enhanced debug logging for downloaders and muxing + - Added detailed debug logging to aria2c, curl_impersonate, n_m3u8dl_re, and requests downloaders + - Enhanced manifest parsers (DASH, HLS, ISM) with debug logging + - Added debug logging to track muxing operations + +### Fixed + +- **Hybrid DV+HDR10 Filename Detection**: Fixed HDR10 detection in hybrid Dolby Vision filenames + - Hybrid DV+HDR10 files were incorrectly named "DV.H.265" instead of "DV.HDR.H.265" + - Now checks both `hdr_format_full` and `hdr_format_commercial` fields for HDR10 indicators +- **Vault Adaptive Batch Sizing**: Improved bulk key operations with adaptive batch sizing + - Prevents query limit issues when retrieving large numbers of keys from vaults + - Dynamically adjusts batch sizes based on vault response characteristics +- **Test Command Improvements**: Enhanced test command error detection and sorting + - Improved error detection in test command output + - Added natural sorting for test results + ## [2.1.0] - 2025-11-27 ### Added diff --git a/pyproject.toml b/pyproject.toml index 5c91c9b..68b8a79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "unshackle" -version = "2.1.0" +version = "2.2.0" description = "Modular Movie, TV, and Music Archival Software." authors = [{ name = "unshackle team" }] requires-python = ">=3.10,<3.13" diff --git a/unshackle/core/__init__.py b/unshackle/core/__init__.py index 9aa3f90..8a124bf 100644 --- a/unshackle/core/__init__.py +++ b/unshackle/core/__init__.py @@ -1 +1 @@ -__version__ = "2.1.0" +__version__ = "2.2.0" diff --git a/uv.lock b/uv.lock index f2ad4bb..9ca0001 100644 --- a/uv.lock +++ b/uv.lock @@ -1565,7 +1565,7 @@ wheels = [ [[package]] name = "unshackle" -version = "2.1.0" +version = "2.2.0" source = { editable = "." } dependencies = [ { name = "aiohttp-swagger3" },