sigma67 / ytmusicapi

Unofficial API for YouTube Music
https://ytmusicapi.readthedocs.io
MIT License
1.76k stars 209 forks source link

get_playlist: fix artists for unnoficial videos (#627) #630

Closed czifumasa closed 4 months ago

czifumasa commented 4 months ago

Fix for #627.

In the scope of this PR the new logic has been removed for albums. So for albums flexColumns are hardcoded and for playlist they are still resolved using navigationEndpoints. There are border cases with columns without navigationEndpoint, where I have to guess their meaning. Those cases are different for albums and for playlists, so I cannot use the same logic for both methods. Albums always have the same order of flexColumns, so dynamic resolving is not needed there.

Now it's safe to assume that first column without navigationEndpoint is an artist column.

Additionally I added some tests for get_playlist. I prepared json for collaborative playlist with all types of tracks that has been problematic in the recent days:

Asserts will check if all those tracks have title and artist and if there is album for regular songs. I added the same asserts for already existing tests with mocked jsons in get_playlist and get_album.