Fix Youtube Music support for some countries (#454)
authorĐặng Ngọc Quảng <quanghd96@gmail.com>
Mon, 15 Aug 2022 23:33:36 +0000 (06:33 +0700)
committerGitHub <noreply@github.com>
Mon, 15 Aug 2022 23:33:36 +0000 (01:33 +0200)
* support some country that not supported youtube music

music_assistant/music_providers/ytmusic/ytmusic.py

index 960cbd090089a0ce6c5f36ceac6e3234f9e6ab91..9e2b1c74c51522bc98c936f99bbb8991cdc98d07 100644 (file)
@@ -50,6 +50,7 @@ from music_assistant.music_providers.ytmusic.helpers import (
     search,
 )
 
+YT_DOMAIN = "https://www.youtube.com"
 YTM_DOMAIN = "https://music.youtube.com"
 YTM_BASE_URL = f"{YTM_DOMAIN}/youtubei/v1/"
 
@@ -612,6 +613,10 @@ class YoutubeMusicProvider(MusicProvider):
         """Get a signature timestamp required to generate valid stream URLs."""
         response = await self._get_data(url=YTM_DOMAIN)
         match = re.search(r'jsUrl"\s*:\s*"([^"]+)"', response)
+        if match is None:
+            # retry with youtube domain
+            response = await self._get_data(url=YT_DOMAIN)
+            match = re.search(r'jsUrl"\s*:\s*"([^"]+)"', response)
         if match is None:
             raise Exception("Could not identify the URL for base.js player.")
         url = YTM_DOMAIN + match.group(1)