From 27048d56eec723f36134fb9f468e75ee959488e0 Mon Sep 17 00:00:00 2001 From: kenzuya Date: Mon, 2 Mar 2026 02:59:33 +0700 Subject: [PATCH] fix(netflix): scope 720p QC filter to explicit 720 requests Refine QC manifest profile selection so `l40` profiles are filtered out only when the user requests **only** 720p, instead of whenever 720 is included. This prevents unintended profile narrowing for mixed-quality requests and default quality runs. Also bump the Netflix client `platform` version from `138.0.0.0` to `145.0.0.0` to keep manifest requests aligned with current expectations.fix(netflix): scope 720p QC filter to explicit 720 requests Refine QC manifest profile selection so `l40` profiles are filtered out only when the user requests **only** 720p, instead of whenever 720 is included. This prevents unintended profile narrowing for mixed-quality requests and default quality runs. Also bump the Netflix client `platform` version from `138.0.0.0` to `145.0.0.0` to keep manifest requests aligned with current expectations. --- unshackle/services/Netflix/__init__.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/unshackle/services/Netflix/__init__.py b/unshackle/services/Netflix/__init__.py index 2a1d45a..9ddd016 100644 --- a/unshackle/services/Netflix/__init__.py +++ b/unshackle/services/Netflix/__init__.py @@ -198,8 +198,14 @@ class Netflix(Service): if self.profile is not None: self.log.info(f"Requested profiles: {self.profile}") else: - qc_720_profile = [x for x in self.config["profiles"]["video"][self.vcodec.extension.upper()]["QC"] if "l40" not in x and 720 in self.quality] - qc_manifest = self.get_manifest(title, qc_720_profile if 720 in self.quality else self.config["profiles"]["video"][self.vcodec.extension.upper()]["QC"]) + requested_qualities = self.quality or [] + qc_profiles = self.config["profiles"]["video"][self.vcodec.extension.upper()]["QC"] + use_720_qc_only = len(requested_qualities) == 1 and 720 in requested_qualities + + if use_720_qc_only: + qc_profiles = [x for x in qc_profiles if "l40" not in x] + + qc_manifest = self.get_manifest(title, qc_profiles) qc_tracks = self.manifest_as_tracks(qc_manifest, title, False) tracks.add(qc_tracks.videos) @@ -693,7 +699,7 @@ class Netflix(Service): "manifestVersion": "v2", "osName": "windows", "osVersion": "10.0", - "platform": "138.0.0.0", + "platform": "145.0.0.0", "profilesGroups": [{ "name": "default", "profiles": video_profiles