KRTirtho / spotube

🎧 Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile!
https://spotube.krtirtho.dev/
Other
30.76k stars 1.27k forks source link

Some songs just don't play #480

Closed rnsag22 closed 1 year ago

rnsag22 commented 1 year ago

Is there an existing issue for this?

Current Behavior

Hello,

I really like your work, the app is much appreciated. However, as of now Spotube doesn't seem to work realiable. A lot of songs just don't seem to play. I cannot quantify this but I would say one out of ten songs does not play.

I hope you can sort those issues out. To compare, I started the original Spotify client. No problem with the song then - it starts instantly.

For example, find a screenshot of the song (or actually the whole album) that doesn't play attached. No matter what I try, it just doesn't work.

Screenshot from 2023-04-16 01-11-24

Using Spotube with my free Spotify account.

Expected Behavior

Song should play instantly.

Steps to reproduce

  1. Start the app
  2. Search for the song
  3. Try playing the song
  4. Song doesn't play

Operating System

Linux

Spotube version

2.7.1

Installation source

Flathub (Flatpak)

Additional information

No response

rnsag22 commented 1 year ago

Well, same problem with the app on Android. Additionally, it takes really long for a song to load. Granted, some songs load fast, but most songs take between 20 to 60 seconds just to load.

This issue really makes it uncomfortable to use the app at all. @developers, is this a known issue? Any comment on that if this is fixable or do we need to live with it?

ioogithub commented 1 year ago

Same issue here as @rnsag22 although my songs are taking up to 2 minutes (120 seconds) to stat playing. Many songs do not play at all. Some songs will play but I have to press play 3 times: Press play, wait 2 minutes and the spin ball stops spinning, nothing happens. Press play again, wait another 2 minutes, nothing happens. Press play again and it will play after 120 seconds. So it can take up to 6 minutes to play a single song.

@KRTirtho Are you aware of this issue? Do you know what is happening during these 2 minute periods, even if the song was completely downloaded locally before playing it wouldn't take 2 minutes.

Another issue is that the songs that do play just stop playing randomly.

I would say the app is unusable in this state. Is this version of the app known to be broken now? Are there any plans to fix it?

Version 2.7.1 from F-Droid.

KRTirtho commented 1 year ago

All this is caused by a change on YouTube API. YouTube's stream (HLS) URL used to be faster but recently they limited the speed So songs are downloading slowly (360kb/s max) and thus this high gap. For now, try turning off "Pre-Download and Play" from Settings as streaming now performs better than downloading. This disables the caching feature btw. To make playback even faster set "Audio Quality" to "Low" which will download lower bitrate audio (126kbps) with smaller size and slightly lower quality but the playback will be faster

Also this issue is only happening in Android because audioplayers plugin used by Spotube uses old android.MediaPlayer which is terrible at streaming audio. I'm working on this issue to migrate to newer and better android.media3.ExoPlayer based plugins

@KRTirtho Are you aware of this issue? Do you know what is happening during these 2 minute periods, even if the song was completely downloaded locally before playing it wouldn't take 2 minutes.

Of course I'm aware. I'm the developer 😄

I would say the app is unusable in this state. Is this version of the app known to be broken now? Are there any plans to fix it?

Only "Pre-download and play" is broken only on Android, in other platforms there is no such issue

ioogithub commented 1 year ago

All this is caused by a change on YouTube API.

I don't understand,I am trying to play Spotify content. How does a YouTube API change cause spotify content to playback slowly?

KRTirtho commented 1 year ago

That's because Spotube doesn't pirate Spotify Songs instead it uses the Spotify track list (data) to fetch the actual audio stream from YouTube Spotify music is right protected (DRM protection) and using them can be inllegal but YouTube tracks are public. To avoid legal issues, Spotube uses YouTube API for the content

KRTirtho commented 1 year ago

In the latest nightly apk the old android.MediaPlayer based audioplayers plugin is replaced with android.media3.ExoPlayer based just_audio which significantly decreases the loading time. And now it adds the ability to even show buffered duration So please try out the nightly apk to check if it's working for you too

Make sure Settings > Pre-download and Play is turned off

Some parts maybe broken especially the notification control and local tracks but it'll be fixed eventually

ioogithub commented 1 year ago

hat's because Spotube doesn't pirate Spotify Songs instead it uses the Spotify track list (data) to fetch the actual audio stream from YouTube Spotify music is right protected (DRM protection) and using them can be inllegal but YouTube tracks are public. To avoid legal issues, Spotube uses YouTube API for the content

Okay, so you are saying that Spotube is using Spotify track data to fetch audio from Youtube? I only looking to playback content from Spotify, how is youtube involved at all?

You are in effect saying that Spotube is using Youtube API to playback Spotify content???

snabie23 commented 1 year ago

Also this issue is only happening in Android because audioplayers plugin used by Spotube uses old android.MediaPlayer which is terrible at streaming audio. I'm working on this issue to migrate to newer and better android.media3.ExoPlayer based plugins

@KRTirtho Sorry, but my experience is different here. This happens with the desktop version too. There's just many songs who do not play at all.

That's because Spotube doesn't pirate Spotify Songs instead it uses the Spotify track list (data) to fetch the actual audio stream from YouTube Spotify music is right protected (DRM protection) and using them can be inllegal but YouTube tracks are public. To avoid legal issues, Spotube uses YouTube API for the content

And now this makes sense. You take the track list from Spotify and try to stream it from youtube then. But what happens if the song in spotify's tracklist is not available on youtube? Is this the reason many songs dont play?

Well, I really misunderstood the concept of Spotube, thanks for explaining. I think you should make it more prominent how the app actually works.

KRTirtho commented 1 year ago

I think you should make it more prominent how the app actually works.

@snabie23 Please read the README/docs before suggesting this kind of improvements It's literally mentioned in the project description

image

ioogithub commented 1 year ago

It's literally mentioned in the project description

I have to admit, like snabie23 I assumed you were using the Spotify API to play spotify tracks. I had no idea you were actually playing the tracks from youtube. Is this really what is happening? The screenshot you underlined does not clarify this for me at all. I assumed that spotube played tracks from spotify AND youtube but you are asking that you are actually just getting the metadata from the spotify API and then playing back from youtube.

If this is the case I am also very surprised to hear this. While this is admittedly an interesting idea this is not what I thought the app did at all. I thought the Spotify API granted access to playback the tracks. I agree that this needs to be more clear. The wording as you have underlined it does not communicate to me that this is what is happening.

This may also explain why spotify locked up my account a few minutes after logging in with spotube for the first time. Shortly after installing spotube and entering my credentials, I was playing tracks from a PC and spotify logged me out of all sessions and devices. When I tried to log back in again in on the spotify website it said my password was invalid!

I quickly used the password reset link to reset my password and I had to go though several Spotify setup screens after this that I had never seen before. This has never happened to me but until this point I have only ever used the official Spotify app or pwa.

Thanks for the clarification, I wonder if other users have also failed to understand how spotube actually works.

KRTirtho commented 1 year ago

This may also explain why spotify locked up my account a few minutes after logging in with spotube for the first time. Shortly after installing spotube and entering my credentials, I was playing tracks from a PC and spotify logged me out of all sessions and devices. When I tried to log back in again in on the spotify website it said my password was invalid!

Sorry for your lose but this is unrelated to Spotube. It uses encryption to keep your credentials safe thus there is no way it was leaked by Spotube. You've to be careful in this case, use strong password & if possible turn on 2 Factor Authentication. Also don't share the cookies with others or screenshot them; we don't have responsibility for such kind of actions So please stop accusing Spotube & sharing misinformation

Personally, I've been using the same account for developing the app since the very beginning of the project (2021). And I never faced such issue although it has over 75k+ requests per month but there was no action from Spotify. Thus I'm not sure what happened in your case

KRTirtho commented 1 year ago

Sorry for getting side tracked

But this issue was fixed in v3.0.0 & I recommend everyone to upgrade to v3.1.0 (latest) Closing it as resolved