Thanks for the feedback. Once again, first incursion in python - unsure if this is what you expected on the dictionary front.
Also, added the declaration/instancing of GGMUSICLIST to after the authentication part because it'd fail miserably if we weren't authenticated, I imagine?
As for the behavior, I have a free account, all playlists created by myself, mostly uploaded tracks, some purchased. This seemed to be the way it'd work for me. A simple way I got to troubleshoot it was to run
print("Playlist length: {}".format(len(mc.get_shared_playlist_contents(shareToken))))
print("Playlist SOURCE length: {}".format(len(pl['tracks'])))
and in many cases there was a difference there (the SOURCE would always be the same number or larger than the one from get_shared_playlist_contents(shareToken), and the correct number from what I could tell).
Hope this helps, but once again, your mileage may vary. Just wanted to share in case it'd help.
- adds more robust playlist song retrieval from Google Play Music for when, for some reason, the get_shared_playlist_contents() method didn't return all the playlist elements;
- removes unnecessary encoding of title and album that were preventing Plex searches from finding the right songs.