spotcast icon indicating copy to clipboard operation
spotcast copied to clipboard

In podcast/show only play one episode

Open litecross91 opened this issue 10 months ago • 10 comments

The problem

When I start a podcast with the script below, only the first episode plays and then it stops. This is what version 4.x did. Is there a workaround to keep it going to the next episode? Thanks! tested show: https://open.spotify.com/show/6vgwu6GE3ACjEFRtckHVSu Experienced this issue with full URL and with URI.

The current episode starts. When this episode is over, it does not switch to the next one. This is my problem.

- action: spotcast.play_media
    data:
      media_player:
        entity_id: media_player.konyha_soundbar
      spotify_uri: spotify:show:6vgwu6GE3ACjEFRtckHVSu

System Health details

Core 2025.2.1 Supervisor 2025.02.0 Operating System 14.2 Frontend 20250205.0

Spotcast version: v5.0.0-b29 Installed from HACS.

What type of installation are you running?

Home Assistant OS

Diagnostics information

home-assistant_spotcast_2025-02-11T14-49-58.350Z.log

Example YAML snippet


Anything in the logs that might be useful for us?


Additional information

No response

litecross91 avatar Feb 11 '25 14:02 litecross91

@litecross91 there are a lot of diagnostic information missing. The whole spotcast section was removed. Can you please add it, that's the part I need. The two sections I need are the following and should look like this:

System Information

version core-2025.2.0
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.13.1
os_name Linux
os_version 4.18.0-553.34.1.el8_10.x86_64
arch x86_64
timezone America/Toronto
config_dir /config
Spotcast
Version 5.0.0-b29
Y2fxkk1m9iv06c8tiof4go8ko Is Default false
Y2fxkk1m9iv06c8tiof4go8ko Public Endpoint failed to load: timeout
Y2fxkk1m9iv06c8tiof4go8ko Public Token healthy
Y2fxkk1m9iv06c8tiof4go8ko Private Endpoint ok
Y2fxkk1m9iv06c8tiof4go8ko Private Token healthy
Y2fxkk1m9iv06c8tiof4go8ko Product premium
Darkfulldante Is Default true
Darkfulldante Public Endpoint failed to load: timeout
Darkfulldante Public Token healthy
Darkfulldante Private Endpoint ok
Darkfulldante Private Token healthy
Darkfulldante Product premium

Also I tested with the URI you provided and I am unable to replicate your issue. The problem seems to be specific to your setup.

fcusson avatar Feb 11 '25 15:02 fcusson

@fcusson

Version core-2025.2.1
Installation type Home Assistant OS
Development false
Supervisor true
Docker true
User root
Virtual environment false
Python version 3.13.1
Operating system family Linux
Operating system version 6.6.73-haos
CPU architecture x86_64
Timezone Europe/Budapest
Configuration directory /config
Spotcast:
Version 5.0.0-b29
11174709675 Is Default true
11174709675 Public Endpoint ok
11174709675 Public Token healthy
11174709675 Private Endpoint ok
11174709675 Private Token healthy
11174709675 Product premium

litecross91 avatar Feb 11 '25 15:02 litecross91

@litecross91 I tried multiple podcast and I am unable to recreate your issue. Could you provide a debug log (you can follow this process). Might help see if something weird happens in your Home Assistant instance.

fcusson avatar Feb 12 '25 15:02 fcusson

I also tested it with today's fresh episodes. Today I noticed that it moved to the next one, but for some reason it started in descending order --> ep: 5 - 4 - 3 - 2 - 1. Hmm, interesting. I'll try again tomorrow because it's a daily podcast.

litecross91 avatar Feb 12 '25 16:02 litecross91

Oh that would be normal actually, the order is dependant on how the podcast is setup in spotify

If you want oldest to newest change the sort order directly in the podcast. Screenshot_20250212-125037.png

I'm working on ways to go against the order in the app but that means creating custom contexts which remove some functionality like the ability to resume a deprecated playback.

Also it only plays the podcast episodes that you haven't listen to, that's the standard behavior for Spotify and without providing special arguments I want to keep it that way.

fcusson avatar Feb 12 '25 17:02 fcusson

I have changed the order. I will see it tomorrow. But it's not good if it is. In Spotify app on my mobile, do I have to scroll through months of episodes for the newest? In app it plays smoothly in the right order without me ever setting it.

litecross91 avatar Feb 12 '25 18:02 litecross91

@litecross91 in the spotify app, the order of episode being used to play is dictated by the sorting order you are using. The behavior the app has (web, deskstop or phone) is the following

  • When opening a show, go to the last episode played
  • When starting to play a show, the behavior needs to make a decision and from my expirements the decision three seems to be
    • if there is an unfinished episode, play this
    • else if you are in newest to oldest, play the most recent episode
    • else if you are in oldest to newest, play the next episode after the last one that was played
  • To establish order of episodes use the sort order set by the user.
    • In newest to oldest, play the most recent to the oldest that haven't been played
    • In oldest to newest, play from the playing episode up to the newest one in order

The goal Spotify had in mind seems to be to separate what I would call time sensitive podcast (current events and news podcast, where you should be more interested into recent stuff) and narrative driven podcast (like dnd live play, horror stories, etc. Where the order is much more important than the recency of the episode)

In the first case, Spotify wants to make sure you complete what you started and then go directly to the most relevant news, while in the case of narrative podcast, they want to make sure to not break the order.

I've experimented a bunch when refactoring the podcast part of the integration and without providing special attributes to the API, that is also the behavior it will follow.

But it's not good if it is. In Spotify app on my mobile, do I have to scroll through months of episodes for the newest?

As mentioned, it should already go toward where you were last for the show. Also, you can filter for unplayed only to make it easier and not have to scroll.

If you want Spotcast to break Spotify behavior, currently, this is not possible in its current format for podcast. I have in the road map some additional functionalities, but as mentioned, these would mean creating custom context, which do limit functionality when interacting with Spotify, mostly when it come for to the ability to transfer and resume back the playback.

fcusson avatar Feb 12 '25 20:02 fcusson

Thank you for your detailed reply.

litecross91 avatar Feb 13 '25 07:02 litecross91

I've been testing it ever since, but it doesn't work well for me. If I start the latest episode from my mobile (Spotify app), it loads the episodes I haven't listened to into the queue list. Thats the normal behavior:

Image

But if I start with Spotcast with the show URL, it starts with the latest episode alone that I haven't listened to yet, but the queue list stays empty and doesn't jump to the next episode, it just stops playing.

Image

I reinstalled Spotcast, restarted the server several times.

litecross91 avatar Feb 19 '25 09:02 litecross91

Ok, so at this point this means its Spotify that is deciding in your case to only play one episode. The weird part is that it seems to be intermittent. As already mentionned, improvements to spotcast to go beyond the default behavior of Spotify are on the roadmap, but not ready yet. I'll move your ticket to an enhancement.

fcusson avatar Feb 19 '25 10:02 fcusson