From d0fcb5a1594a93d47c79fc2b31a4802050717b23 Mon Sep 17 00:00:00 2001 From: Nirvana Date: Fri, 24 Apr 2026 11:10:35 +0200 Subject: [PATCH] Prepare RTLPlus for new streaming prov --- .../providers/rtlplus/channel_manager.py | 6 +++++- .../providers/rtlplus/provider.py | 14 +++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/streaming_providers/providers/rtlplus/channel_manager.py b/lib/streaming_providers/providers/rtlplus/channel_manager.py index 9c034d6..5d13371 100644 --- a/lib/streaming_providers/providers/rtlplus/channel_manager.py +++ b/lib/streaming_providers/providers/rtlplus/channel_manager.py @@ -336,7 +336,11 @@ class RTLPlusChannelManager: preferred_format preferred_drm_type """ - # Normalize the channel identifier to SEO name + token = self._provider.get_user_bearer_token() + if not token: + logger.error("User authentication required for linear TV stream, not authenticated") + return None # or [] for DRM + channel_seo = self._normalize_channel_identifier(channel_id) assets = self.extract_stream_assets(channel_seo) diff --git a/lib/streaming_providers/providers/rtlplus/provider.py b/lib/streaming_providers/providers/rtlplus/provider.py index e23cf7e..4a2f996 100644 --- a/lib/streaming_providers/providers/rtlplus/provider.py +++ b/lib/streaming_providers/providers/rtlplus/provider.py @@ -358,4 +358,16 @@ class RTLPlusProvider(StreamingProvider): data = response.json() self._manifest_cache[content_id] = (data, now) - return data \ No newline at end of file + return data + + def get_user_bearer_token(self) -> Optional[str]: + """Get a user-authenticated bearer token, upgrading if necessary. Returns None if impossible.""" + from ...base.auth.base_auth import TokenAuthLevel + current_level = self.authenticator.get_current_token_level() + if current_level == TokenAuthLevel.USER_AUTHENTICATED: + return self.authenticator.get_bearer_token() + if self.authenticator.has_user_credentials(): + token = self.authenticator.get_bearer_token(force_upgrade=True) + if self.authenticator.get_current_token_level() == TokenAuthLevel.USER_AUTHENTICATED: + return token + return None \ No newline at end of file