feat: more extensive browse id
This commit is contained in:
parent
c8cbfc7cb9
commit
1ba6c97f5a
@ -549,6 +549,11 @@ class YoutubeMusic(SuperYouTube):
|
||||
return album
|
||||
|
||||
def fetch_lyrics(self, video_id: str, playlist_id: str = None) -> str:
|
||||
"""
|
||||
1. fetches the tabs of a song, to get the browse id
|
||||
2. finds the browse id of the lyrics
|
||||
3. fetches the lyrics with the browse id
|
||||
"""
|
||||
request_data = {
|
||||
"context": {**self.credentials.context, "adSignalsInfo": {"params": []}},
|
||||
"videoId": video_id,
|
||||
@ -575,7 +580,8 @@ class YoutubeMusic(SuperYouTube):
|
||||
pageType = traverse_json_path(tab, "tabRenderer.endpoint.browseEndpoint.browseEndpointContextSupportedConfigs.browseEndpointContextMusicConfig.pageType", default="")
|
||||
if pageType in ("MUSIC_TAB_TYPE_LYRICS", "MUSIC_PAGE_TYPE_TRACK_LYRICS") or "lyrics" in pageType.lower():
|
||||
browse_id = traverse_json_path(tab, "tabRenderer.endpoint.browseEndpoint.browseId", default=None)
|
||||
break
|
||||
if browse_id is not None:
|
||||
break
|
||||
|
||||
if browse_id is None:
|
||||
return None
|
||||
|
Loading…
Reference in New Issue
Block a user