Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switching between multiple music sources in the queue is buggy in several ways #2142

Open
PureTryOut opened this issue Nov 30, 2023 · 5 comments

Comments

@PureTryOut
Copy link

Describe the bug
When playing audio from e.g. a Spotify source and then switching to a different source (in my case Soundcloud or Youtube) is buggy. Buggy meaning either the current track will be played on repeat rather than switching to the next track in the queue, the music stops playing entirely, or Mopidy fails to play any track and it removes every track it encounters any error at (which at that point is every track, after each other) from the queue.

How to reproduce
Make a queue of tracks from multiple sources. In my case the primary source of music is Spotify so start with that, then a track from either Soundcloud or Youtube.

Expected behaviour
The next track to play, as a listener not noticing that the source of music has changed.

Environment
Please complete the following information:

  • Operating system: Docker container using the Iris image, which is Debian Bullseye
  • Running Mopidy as a service or in the terminal? Service, Docker
  • Your config (output of sudo mopidyctl config):
    You can't get root rights in the used Docker image, but the config file used is as follows:
[core]
data_dir = /var/lib/mopidy

[local]
enabled = false
media_dir = /var/lib/mopidy/media

[audio]
output = alsasink device=rate48000Hz

[m3u]
enabled = true
playlists_dir = /var/lib/mopidy/playlists

[http]
hostname = 0.0.0.0
default_app = iris

[mpd]
enabled = false

[spotify]
enabled = true
client_id = <redacted>
client_secret = <redacted>
username = <redacted>
password = <redacted>
private_session = true
allow_playlists = false

[youtube]
enabled = true
youtube_dl_package = yt_dlp
autoplay_enabled = false

[soundcloud]
enabled = true
auth_token = <redacted>

[pandora]
enabled = false

[tidal]
enabled = false

[ytmusic]
enabled = false
  • Software versions (output of sudo mopidyctl deps)
    Due to not having root rights in the Docker container I can not give this information.
  • Any specific hardware (e.g. an exotic USB soundcard)
    No but audio is played through an alsasink to a Snapcast server.
@kingosticks
Copy link
Member

kingosticks commented Nov 30, 2023

Are you able to reproduce this with any combination of music sources or do you need to start with Spotify music? Likewise, can you reproduce when only using local music? Can you reproduce with other sinks or is (loopback) alsasink only?

To make any progress we need software versions and a log.

@PureTryOut
Copy link
Author

Mopidy version 3.4.2, mopidy-spotify commit a82e1b2016dbfeddb4ac9c6027c2cdaf0331b9b1, Iris 3.69.2.

I'll give it a shot without Spotify in the equation tomorrow, and get you some logs if there is anything relevant in there.

Trying other sinks is going to be hard, the machine that Mopidy is running on is remote and has no speaker attached.

@kingosticks
Copy link
Member

Re sinks, you can try some of the other ways to hook up Mopidy and Snapchat. There's a few given in their docs.

@PureTryOut
Copy link
Author

Sorry for the very late response. Switching from any source to Spotify is the one going wrong, I can switch between Soundcloud and Youtube just fine for example. And I can switch from Spotify, just not to Spotify.

When things go wrong nothing appears in logs, it just starts skipping songs...

@kingosticks
Copy link
Member

Thanks, that is very useful. And just to double check: so it's the opposite of what's described in the original post? I think I can imagine switching to Spotify being more likely to have a problematic given GStreamer's rellatively young spotify source element.

Would you be able to get a verbose log when it goes wrong? Ideally with GST_DEBUG=3 ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants