From 7c2ea1bfa7d0d9ce515d39d6d030c51dfadbb7a2 Mon Sep 17 00:00:00 2001 From: Nirvana Date: Wed, 1 Apr 2026 09:47:32 +0200 Subject: [PATCH] Add orignal manifest --- .../providers/movetv/provider.py | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/streaming_providers/providers/movetv/provider.py b/lib/streaming_providers/providers/movetv/provider.py index 0b160f2..7f7a118 100644 --- a/lib/streaming_providers/providers/movetv/provider.py +++ b/lib/streaming_providers/providers/movetv/provider.py @@ -494,15 +494,26 @@ class MoveTVProvider(StreamingProvider): logger.debug(f"move.tv: POST {MoveTVConfig.live_source_url()} liveId={live_id}") - response = self.http_manager.post( - MoveTVConfig.live_source_url(), - operation="manifest", - json=payload, - headers=headers, - ) + try: + response = self.http_manager.post( + MoveTVConfig.live_source_url(), + operation="manifest", + json=payload, + headers=headers, + ) + # http_manager returned a response object — check status before raise_for_status(). + is_401 = response.status_code == 401 + except requests.HTTPError as exc: + # http_manager raised before returning (e.g. it calls raise_for_status internally). + # Extract the 401 from the exception's attached response instead. + if exc.response is not None and exc.response.status_code == 401: + is_401 = True + response = exc.response + else: + raise # On 401, attempt a token refresh and retry once before giving up. - if response.status_code == 401: + if is_401: logger.info(f"move.tv: 401 on manifest fetch for liveId={live_id} — attempting token refresh …") token = cast(MoveTVAuthToken, self.authenticator._current_token) refreshed = self.authenticator.refresh_token(token) if token else None