forked from kenzuya/unshackle
Update Unshackle to v2.1.0 #3
Reference in New Issue
Block a user
No description provided.
Delete Branch "update-unshackle"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
HDR10/PQ detection now includes: - PQ (most common) - SMPTE ST 2084 (CICP value 16) - BT.2100 - BT.2020-10 - smpte2084 (lowercase variant) HLG detection now includes: - HLG - Hybrid Log-Gamma - ARIB STD-B67 (CICP value 18) - arib-std-b67 (lowercase variant) Hybrid DV+HDR10 detection: - Now checks full hdr_format field for both "Dolby Vision" AND ("HDR10" OR "SMPTE ST 2086") - Properly generates filenames like "Movie.2160p.DV HDR H.265.mkv" - MediaInfo reports: "Dolby Vision / SMPTE ST 2086, HDR10 compatible" Also adds null safety for transfer characteristics to prevent errors when the field is None.Fixed TypeError in calculate_byte_range where range_offset was a string instead of int. The byte_range.split("-")[0] returns a string, but the calculate_byte_range method expects fallback_offset parameter to be int.Enable quality-based CDM selection during runtime DRM switching by passing track quality to get_cdm() calls. This allows different CDMs to be used for different video quality levels within the same download session. Example configuration: cdm: SERVICE: "<=1080": wv_l3_local # Widevine L3 for SD/HD ">1080": pr_sl3_remote # PlayReady SL3 for 4K- Add skip_merge flag for N_m3u8DL-RE to prevent duplicate init data - Pass content_keys to N_m3u8DL-RE for internal decryption handling - Use shutil.move() instead of manual merge when skip_merge is True - Skip manual decryption when N_m3u8DL-RE handles it internally Fixes audio corruption ("Box 'OG 2' size is too large") when using N_m3u8DL-RE with DASH manifests that have SegmentBase init data. The init segment was being written twice: once by N_m3u8DL-RE during its internal merge, and again by dash.py during post-processing.The replace("Bearer ", "") approach returned the full Authorization header value when the prefix was not present, incorrectly treating other auth schemes (e.g., "Basic xyz") as API keys.Some MPD manifests use the cenc: namespace prefix for PSSH elements (e.g., <cenc:pssh>) instead of non-namespaced <pssh>. This caused DRM extraction to fail for services. - Add {urn:mpeg:cenc:2013}pssh fallback for Widevine PSSH extraction - Add {urn:mpeg:cenc:2013}pssh fallback for PlayReady PSSH extractionTitle filenames now include resolution/service/WEB-DL/codecs/HDR tokens in both modes; scene_naming only changes the spacer ('.' vs ' '). Also avoid overwriting muxed outputs by disambiguating on collision (append codec suffix when needed, then a numeric suffix).View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.