From 3dda3290d302a439f94eb694338a365f44d8f4cc Mon Sep 17 00:00:00 2001 From: Andy Date: Wed, 20 Aug 2025 05:10:45 +0000 Subject: [PATCH] feat(release): Bump version to 1.4.3 and update changelog with new features and improvements --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ pyproject.toml | 2 +- unshackle/core/__init__.py | 2 +- uv.lock | 2 +- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ed56c0..67bcc36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,32 @@ 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). +## [1.4.3] - 2025-08-20 + +### Added + +- Cached IP info helper for region detection + - New `get_cached_ip_info()` with 24h cache and provider rotation (ipinfo/ipapi) with 429 handling. + - Reduces external calls and stabilizes non-proxy region lookups for caching/logging. + +### Changed + +- DRM decryption selection is fully configuration-driven + - Widevine and PlayReady now select the decrypter based solely on `decryption` in YAML (including per-service mapping). + - Shaka Packager remains the default decrypter when not specified. + - `dl.py` logs the chosen tool based on the resolved configuration. +- Geofencing and proxy verification improvements + - Safer geofence checks with error handling and clearer logs. + - Always verify proxy exit region via live IP lookup; fallback to proxy parsing on failure. +- Example config updated to default to Shaka + - `unshackle.yaml`/example now sets `decryption.default: shaka` (service overrides still supported). + +### Removed + +- Deprecated parameter `use_mp4decrypt` + - Removed from `Widevine.decrypt()` and `PlayReady.decrypt()` and all callsites. + - Internal naming switched from mp4decrypt-specific flags to generic `decrypter` selection. + ## [1.4.2] - 2025-08-14 ### Added diff --git a/pyproject.toml b/pyproject.toml index 48f9199..2a0b84f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "unshackle" -version = "1.4.2" +version = "1.4.3" 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 daa50c7..aa56ed4 100644 --- a/unshackle/core/__init__.py +++ b/unshackle/core/__init__.py @@ -1 +1 @@ -__version__ = "1.4.2" +__version__ = "1.4.3" diff --git a/uv.lock b/uv.lock index e7d0ffc..e8ff5a1 100644 --- a/uv.lock +++ b/uv.lock @@ -1499,7 +1499,7 @@ wheels = [ [[package]] name = "unshackle" -version = "1.4.2" +version = "1.4.3" source = { editable = "." } dependencies = [ { name = "appdirs" },