From 504de2197aa7847bcb5ae86baa1becca1fdad486 Mon Sep 17 00:00:00 2001 From: Andy Date: Tue, 28 Oct 2025 18:49:13 +0000 Subject: [PATCH] fix(drm): add explicit UTF-8 encoding to mp4decrypt subprocess calls Fixes 'charmap' codec can't decode byte error that occurs on Windows when mp4decrypt outputs non-ASCII characters. Without explicit encoding, --- unshackle/core/drm/playready.py | 2 +- unshackle/core/drm/widevine.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/unshackle/core/drm/playready.py b/unshackle/core/drm/playready.py index a26428a..b1fcea0 100644 --- a/unshackle/core/drm/playready.py +++ b/unshackle/core/drm/playready.py @@ -338,7 +338,7 @@ class PlayReady: ] try: - subprocess.run(cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + subprocess.run(cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, encoding='utf-8') except subprocess.CalledProcessError as e: error_msg = e.stderr if e.stderr else f"mp4decrypt failed with exit code {e.returncode}" raise subprocess.CalledProcessError(e.returncode, cmd, output=e.stdout, stderr=error_msg) diff --git a/unshackle/core/drm/widevine.py b/unshackle/core/drm/widevine.py index 6c3d683..7fee1c9 100644 --- a/unshackle/core/drm/widevine.py +++ b/unshackle/core/drm/widevine.py @@ -289,7 +289,7 @@ class Widevine: ] try: - subprocess.run(cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + subprocess.run(cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, encoding='utf-8') except subprocess.CalledProcessError as e: error_msg = e.stderr if e.stderr else f"mp4decrypt failed with exit code {e.returncode}" raise subprocess.CalledProcessError(e.returncode, cmd, output=e.stdout, stderr=error_msg)