feat: more extensive browse id
This commit is contained in:
parent
c8cbfc7cb9
commit
1ba6c97f5a
@ -549,6 +549,11 @@ class YoutubeMusic(SuperYouTube):
|
|||||||
return album
|
return album
|
||||||
|
|
||||||
def fetch_lyrics(self, video_id: str, playlist_id: str = None) -> str:
|
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 = {
|
request_data = {
|
||||||
"context": {**self.credentials.context, "adSignalsInfo": {"params": []}},
|
"context": {**self.credentials.context, "adSignalsInfo": {"params": []}},
|
||||||
"videoId": video_id,
|
"videoId": video_id,
|
||||||
@ -575,6 +580,7 @@ class YoutubeMusic(SuperYouTube):
|
|||||||
pageType = traverse_json_path(tab, "tabRenderer.endpoint.browseEndpoint.browseEndpointContextSupportedConfigs.browseEndpointContextMusicConfig.pageType", default="")
|
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():
|
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)
|
browse_id = traverse_json_path(tab, "tabRenderer.endpoint.browseEndpoint.browseId", default=None)
|
||||||
|
if browse_id is not None:
|
||||||
break
|
break
|
||||||
|
|
||||||
if browse_id is None:
|
if browse_id is None:
|
||||||
|
Loading…
Reference in New Issue
Block a user