HermesApp / Hermes

Compact macOS Pandora client that doesn’t use Flash
http://hermesapp.org/
MIT License
381 stars 100 forks source link

Repeats the same song too close together #356

Open pfahlstrom opened 4 years ago

pfahlstrom commented 4 years ago

When it queues the next song, it should do some kind of check to see if that song has already been played in the last X number songs. I'm getting a lot of songs repeating with only a small number of different songs played in the interim, sometimes less than 5. Today Hermes just played the same song twice in a row, in a station that has over 400 thumbs-ups.

Hermes builds on pianobar, right? Is this a pianobar issue?

Screen Shot 2019-10-21 at 11 59 11 AM
pmetzger commented 4 years ago

The music is sent to you by Pandora. So far as I know, Hermes is not selecting the songs.

pfahlstrom commented 4 years ago

Sure. There's clearly something different about how the next song is selected though; repeats don't happen when listening on Pandora.com. There could be some type of client-side check added to see whether the next song was played recently.

nriley commented 4 years ago

It's possible Hermes is using an older API versus other Pandora clients. But as @pmetzger said, we just play what Pandora tells us to play.

pfahlstrom commented 4 years ago

I understand. That makes this a feature request, to add a client-side check to keep songs from repeating too quickly. The current behavior is unfortunate.

pmetzger commented 4 years ago

Pandora clients don't do that. Which is to say, they don't check whether songs have played recently. That's something that is done by the server.

pfahlstrom commented 4 years ago

It's certainly not done by the server, at least not at all well; the screenshot is the proof. And I just had this exact same song repeat again today, this time with one song intervening.

Pianobar's documentation says that Hermes is a client based on it. Pianobar has a command to see what songs are up next. I'm barely a scripter rather than a coder, but it would be straightforward to build a local hashtable or other list of the song IDs of the recently played songs, see what song is coming up next, and if its song ID appears in that list, play the next one instead.

pmetzger commented 4 years ago

Whether it is done well by the server or not, the server is the part that selects what it's going to play you. 🤷🏻‍♂️

Which is to say that, fundamentally, the problem isn't Hermes but Pandora.

pfahlstrom commented 4 years ago

There is no technical reason Hermes couldn't compensate for Pandora's error. Hermes plainly already keeps a list of what songs were played recently, since those appear in the sidebar.

ghost commented 3 years ago

The list of previous songs is local though. Could check for duplicates.

bmehling commented 3 years ago

I too am seeing the same fews songs played quite often (same handful of songs over and over).

My hunch was this is related to their Modes feature. I tested playing directly from the web UI all day yesterday and believe my hunch is accurate. I don't think I had any repeats after a few hours of playing via the web vs. Hermes.

If Pandora added a 'modes' API endpoint, then Hermes could add support for it. Unfortunately their API docs are behind a login so I can't verify if that's even possible for 3rd-party clients...

I see a related feature request ticket (#359).