Add support for Playlists, etc (#656)
This Wiki page describes these changes from the user's viewpoint.
I use pianobar for playback but I use the Pandora App to manage my "collection" so I have not added any support for creating or editing playlists or collecting tracks.
I have however added support for deleting podcasts, albums, playlists and tracks to the delete command.
Most of the new changes are only of any value to those with a premium account, If it's not worth your effort to review/merge the changes I understand.
As another thought: We already have a song “history” and “upcoming“ songs. If we add support for playlists, we might as well merge all of that into a single, big “playlist“ functionality, allowing to move freely between past and future songs (only if we can fetch a new song URL, obviously).
Sorry for the months of silence :( I finally had a look at the code and tried your branch. My problem as a maintainer is that your changes are pretty invasive and I cannot test alot of them myself due to the lack of a premium subscription (and not living inside the US). I was hoping that – on the pianobar UI side – we would not have to differentiate between stations, playlists, podcasts, … and that we could hide this complexity in libpiano. I’m going to add a few review comments, but I’m unsure how to proceed.
Thanks for the feedback!
I was surprised by how invasive the changes became, but once I got the hang of reverse engineering the protocol I got a bit carried away.
I'm an old fart who typically plays "albums" from beginning to end while focused on listening, otherwise the "station" concept works for me for background music. Personally I'm not that interested in playlists, tracks or podcasts, but since they were there ...
I'll look into the detailed code comments in the next few days.
As another thought: We already have a song “history” and “upcoming“ songs. If we add support for playlists, we might as well merge all of that into a single, big “playlist“ functionality, allowing to move freely between past and future songs (only if we can fetch a new song URL, obviously).
Yes, but I don't think you can fetch a new song URL with a non-paid account. I'm not sure, I haven't done much testing with a free account.
Sorry for the months of silence :( I finally had a look at the code and tried your branch. My problem as a maintainer is that your changes are pretty invasive and I cannot test alot of them myself due to the lack of a premium subscription (and not living inside the US). I was hoping that – on the pianobar UI side – we would not have to differentiate between stations, playlists, podcasts, … and that we could hide this complexity in libpiano. I’m going to add a few review comments, but I’m unsure how to proceed.
I've addressed several of your comments and updated the PR.
The rest will require some work which I'm fine with if our eventual goal is to merge this PR.
As far as testing goes is it possible for you to create a throwaway account, start a premium subscription trial and then cancel before the end of the trial period?
If it's just not worth your effort and/or not practical I'm fine with that but I probably won't make additional changes since the current code is filling my needs.