From 34bf93c2d5ceba7c7e951a045bd96a2d242ef39b Mon Sep 17 00:00:00 2001 From: chu23465 <130033130+chu23465@users.noreply.github.com> Date: Wed, 30 Apr 2025 08:31:28 +0530 Subject: [PATCH] Fix Fix for getting CSRF token for Germany region (Amazon) --- vinetrimmer/config/Services/amazon.yml | 3 ++- vinetrimmer/services/amazon.py | 14 +++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/vinetrimmer/config/Services/amazon.yml b/vinetrimmer/config/Services/amazon.yml index b658235..c29089b 100644 --- a/vinetrimmer/config/Services/amazon.yml +++ b/vinetrimmer/config/Services/amazon.yml @@ -99,7 +99,8 @@ endpoints: # chapters/scenes xray: '/swift/page/xray' # device registration - ontv: '/region/eu/ontv/code?ref_=atv_auth_red_aft' #/gp/video/ontv/code + ontv: '/region/eu/ontv/code?ref_=atv_auth_red_aft' + ontvold: '/gp/video/ontv/code/ref=atv_device_code' devicelink: '/gp/video/api/codeBasedLinking' codepair: '/auth/create/codepair' register: '/auth/register' diff --git a/vinetrimmer/services/amazon.py b/vinetrimmer/services/amazon.py index c503451..a954851 100644 --- a/vinetrimmer/services/amazon.py +++ b/vinetrimmer/services/amazon.py @@ -788,7 +788,7 @@ class Amazon(BaseService): def prepare_endpoint(self, name: str, uri: str, region: dict) -> str: if name in ("browse", "playback", "licence", "xray"): return f"https://{(region['base_manifest'])}{uri}" - if name in ("ontv", "devicelink", "details", "getDetailWidgets"): + if name in ("ontv", "ontvold", "devicelink", "details", "getDetailWidgets"): if self.pv: host = "www.primevideo.com" else: @@ -961,9 +961,10 @@ class Amazon(BaseService): return "".join(match.groups()) else: try: - mpd_url = "".join( - re.split(r"(?i)(/)", mpd_url)[:5] + re.split(r"(?i)(/)", mpd_url)[9:] - ) + if not "live" in mpd_url: + mpd_url = "".join( + re.split(r"(?i)(/)", mpd_url)[:5] + re.split(r"(?i)(/)", mpd_url)[9:] + ) except IndexError: self.log.warning("Unable to parse manifest URL") return mpd_url @@ -1231,7 +1232,10 @@ class Amazon(BaseService): this token is used to register the device :return: OnTV Page's CSRF Token """ - res = self.session.get(self.endpoints["ontv"]) + try: + res = self.session.get(self.endpoints["ontv"]) + except: + res = self.session.get(self.endpoints["ontvold"]) response = res.text if 'input type="hidden" name="appAction" value="SIGNIN"' in response: raise self.log.exit(