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

Spotube plays some tracks from the playlists with the wrong sound (from another track) #2067

Open
1 of 2 tasks
MurzNN opened this issue Nov 18, 2024 · 2 comments
Open
1 of 2 tasks
Labels
bug Something isn't working

Comments

@MurzNN
Copy link

MurzNN commented Nov 18, 2024

Is there an existing issue for this? (Please read the description)

  • I have searched the existing issues

Current Behavior

Sometimes Spotube plays the wrong track instead of the correct one.

For example, this track https://song.link/s/3vDq5JYpBtSwqboVor8Td5 - here is the problem:
On Spotify, you can listen to it here: https://open.spotify.com/track/3vDq5JYpBtSwqboVor8Td5

But the Spotube plays the wrong sound for it! I attached the downloaded track to the issue, so you can listen and compare: Far From Home - knuni.zip

And this happens not only with this specific track, but with many others.

if I start to listen playlistsThe When I start to play a playlist from my Library, I hear the wrong played sound

Expected Behavior

I expect to hear the same track sound that I hear on Spotify.

Steps to reproduce

  1. Open this playlist on Spotify: https://open.spotify.com/playlist/6Uls6BAiuTRMfqEUyyeODT, start to play the first track and remeber the sound.
  2. Start to play the same track on Spotube, and hear another sound!

Logs

Logs
[2024-11-18 09:04:44.489159]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 500 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 500 has the following meaning: "Server error - the server failed to fulfil an apparently valid request"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:509)
<asynchronous suspension>
#1      PipedClient.streams (package:piped_client/src/client.dart:35)
<asynchronous suspension>
#2      PipedSourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sources/piped.dart:91)
<asynchronous suspension>
#3      SourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sourced_track.dart:136)
<asynchronous suspension>
#4      sourcedTrackProvider.<anonymous closure> (package:spotube/provider/server/sourced_track.dart:25)
<asynchronous suspension>
#5      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

----------------------------------------
[2024-11-18 09:04:50.884850]---------------------
Exception: [CustomSpotifyEndpoints.getView]: accessToken is empty
#0      CustomSpotifyEndpoints.getView (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:65)
#1      viewProvider.<anonymous closure> (package:spotube/provider/spotify/views/view.dart:13)
#2      AutoDisposeFamilyBase.call.<anonymous closure> (package:riverpod/src/framework/family.dart:199)
#3      FutureProvider._create (package:riverpod/src/future_provider/base.dart:65)
#4      FutureProviderElement.create.<anonymous closure> (package:riverpod/src/future_provider/base.dart:107)
#5      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:334)
#6      FutureHandlerProviderElementMixin._handleAsync (package:riverpod/src/async_notifier/base.dart:381)
#7      FutureHandlerProviderElementMixin.handleFuture (package:riverpod/src/async_notifier/base.dart:328)
#8      FutureProviderElement.create (package:riverpod/src/future_provider/base.dart:106)
#9      ProviderElementBase.buildState (package:riverpod/src/framework/element.dart:409)
#10     ProviderElementBase._performBuild (package:riverpod/src/framework/element.dart:346)
#11     ProviderElementBase.flush (package:riverpod/src/framework/element.dart:307)
#12     ProviderScheduler._performRefresh (package:riverpod/src/framework/scheduler.dart:94)
#13     ProviderScheduler._task (package:riverpod/src/framework/scheduler.dart:82)
#14     ProviderScheduler.vsync.<anonymous closure>.invoke (package:riverpod/src/framework/scheduler.dart:41)
#15     _UncontrolledProviderScopeElement.build (package:flutter_riverpod/src/framework.dart:396)
#16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5617)
#17     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#18     BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2693)
#19     BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2752)
#20     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3048)
#21     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1162)
#22     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468)
#23     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397)
#24     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318)
#25     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1176)
#26     _rootRun (dart:async/zone.dart:1399)
#27     _CustomZone.run (dart:async/zone.dart:1301)
#28     _CustomZone.runGuarded (dart:async/zone.dart:1209)
#29     _invoke (dart:ui/hooks.dart:314)
#30     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419)
#31     _drawFrame (dart:ui/hooks.dart:283)

----------------------------------------
[2024-11-18 09:04:50.972772]---------------------
Exception: [CustomSpotifyEndpoints.getView]: accessToken is empty
#0      CustomSpotifyEndpoints.getView (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:65)
#1      viewProvider.<anonymous closure> (package:spotube/provider/spotify/views/view.dart:13)
#2      AutoDisposeFamilyBase.call.<anonymous closure> (package:riverpod/src/framework/family.dart:199)
#3      FutureProvider._create (package:riverpod/src/future_provider/base.dart:65)
#4      FutureProviderElement.create.<anonymous closure> (package:riverpod/src/future_provider/base.dart:107)
#5      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:334)
#6      FutureHandlerProviderElementMixin._handleAsync (package:riverpod/src/async_notifier/base.dart:381)
#7      FutureHandlerProviderElementMixin.handleFuture (package:riverpod/src/async_notifier/base.dart:328)
#8      FutureProviderElement.create (package:riverpod/src/future_provider/base.dart:106)
#9      ProviderElementBase.buildState (package:riverpod/src/framework/element.dart:409)
#10     ProviderElementBase._performBuild (package:riverpod/src/framework/element.dart:346)
#11     ProviderElementBase.flush (package:riverpod/src/framework/element.dart:307)
#12     ProviderScheduler._performRefresh (package:riverpod/src/framework/scheduler.dart:94)
#13     ProviderScheduler._task (package:riverpod/src/framework/scheduler.dart:82)
#14     ProviderScheduler.vsync.<anonymous closure>.invoke (package:riverpod/src/framework/scheduler.dart:41)
#15     _UncontrolledProviderScopeElement.build (package:flutter_riverpod/src/framework.dart:396)
#16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5617)
#17     Element.rebuild (package:flutter/src/widgets/framework.dart:5333)
#18     BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2693)
#19     BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2752)
#20     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3048)
#21     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1162)
#22     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468)
#23     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397)
#24     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318)
#25     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1176)
#26     _rootRun (dart:async/zone.dart:1399)
#27     _CustomZone.run (dart:async/zone.dart:1301)
#28     _CustomZone.runGuarded (dart:async/zone.dart:1209)
#29     _invoke (dart:ui/hooks.dart:314)
#30     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419)
#31     _drawFrame (dart:ui/hooks.dart:283)

----------------------------------------
[2024-11-18 09:04:51.186326]---------------------
Error Code: 401
Valid user authentication required
#0      SpotifyApiBase.handleResponseWithBody (package:spotify/src/spotify_base.dart:282)
#1      SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:256)
<asynchronous suspension>
#2      SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
<asynchronous suspension>
#3      CursorPages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:292)
<asynchronous suspension>
#4      SinglePages.stream.handlePageAndGetNext (package:spotify/src/endpoints/endpoint_paging.dart:187)
<asynchronous suspension>

----------------------------------------
[2024-11-18 09:04:51.224489]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 401 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 401 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:509)
<asynchronous suspension>
#1      CustomSpotifyEndpoints.getFriendActivity (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:113)
<asynchronous suspension>
#2      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

----------------------------------------
[2024-11-18 09:04:51.264677]---------------------
FormatException: Unexpected character (at character 1)
Too many requests
^

#0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1465)
#1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1332)
#2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:933)
#3      _parseJson (dart:convert-patch/convert_patch.dart:36)
#4      JsonDecoder.convert (dart:convert/json.dart:610)
#5      JsonCodec.decode (dart:convert/json.dart:216)
#6      SpotifyApiBase.handleResponseWithBody (package:spotify/src/spotify_base.dart:276)
#7      SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:256)
<asynchronous suspension>
#8      SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
<asynchronous suspension>
#9      Pages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:253)
<asynchronous suspension>
#10     FeaturedPlaylistsNotifier.fetch (package:spotube/provider/spotify/playlist/featured.dart:33)
<asynchronous suspension>
#11     FeaturedPlaylistsNotifier.build (package:spotube/provider/spotify/playlist/featured.dart:44)
<asynchronous suspension>
#12     FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

----------------------------------------
[2024-11-18 09:04:51.265677]---------------------
FormatException: Unexpected character (at character 1)
Too many requests
^

#0      _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1465)
#1      _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1332)
#2      _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:933)
#3      _parseJson (dart:convert-patch/convert_patch.dart:36)
#4      JsonDecoder.convert (dart:convert/json.dart:610)
#5      JsonCodec.decode (dart:convert/json.dart:216)
#6      SpotifyApiBase.handleResponseWithBody (package:spotify/src/spotify_base.dart:276)
#7      SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:256)
<asynchronous suspension>
#8      SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
<asynchronous suspension>
#9      Pages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:253)
<asynchronous suspension>
#10     SinglePages.stream.handlePageAndGetNext (package:spotify/src/endpoints/endpoint_paging.dart:187)
<asynchronous suspension>

----------------------------------------
provider/spotify/album/releases.dart:50)
<asynchronous suspension>
#12     FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

----------------------------------------
[2024-11-18 09:16:42.552039]---------------------
VideoUnplayableException: Video '_JhlOSUmUOE' is unplayable.
Streams are not available for this video.
In most cases, this error indicates that there are 
some restrictions in place that prevent watching this video.
Reason: Please sign in
#0      StreamClient._getCipherStream (package:youtube_explode_dart/src/videos/streams/stream_client.dart:179)
<asynchronous suspension>
#1      StreamClient._getStreams (package:youtube_explode_dart/src/videos/streams/stream_client.dart:137)
<asynchronous suspension>
#2      Stream.toList.<anonymous closure> (dart:async/stream.dart:1351)
<asynchronous suspension>
#3      StreamClient.getManifest.<anonymous closure> (package:youtube_explode_dart/src/videos/streams/stream_client.dart:37)
<asynchronous suspension>
#4      retry (package:youtube_explode_dart/src/retry.dart:16)
<asynchronous suspension>
#5      Future.timeout.<anonymous closure> (dart:async/future_impl.dart:963)
<asynchronous suspension>
#6      YoutubeSourcedTrack.toSiblingType (package:spotube/services/sourced_track/sources/youtube.dart:145)
<asynchronous suspension>
#7      YoutubeSourcedTrack.fetchSiblings (package:spotube/services/sourced_track/sources/youtube.dart:239)
<asynchronous suspension>
#8      YoutubeSourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sources/youtube.dart:63)
<asynchronous suspension>
#9      SourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sourced_track.dart:117)
<asynchronous suspension>
#10     sourcedTrackProvider.<anonymous closure> (package:spotube/provider/server/sourced_track.dart:25)
<asynchronous suspension>
#11     FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

----------------------------------------
[2024-11-18 09:25:58.740937]---------------------
VideoUnplayableException: Video 'D5Ypbt_USRg' is unplayable.
Streams are not available for this video.
In most cases, this error indicates that there are 
some restrictions in place that prevent watching this video.
Reason: Please sign in
#0      StreamClient._getCipherStream (package:youtube_explode_dart/src/videos/streams/stream_client.dart:179)
<asynchronous suspension>
#1      StreamClient._getStreams (package:youtube_explode_dart/src/videos/streams/stream_client.dart:137)
<asynchronous suspension>
#2      Stream.toList.<anonymous closure> (dart:async/stream.dart:1351)
<asynchronous suspension>
#3      StreamClient.getManifest.<anonymous closure> (package:youtube_explode_dart/src/videos/streams/stream_client.dart:37)
<asynchronous suspension>
#4      retry (package:youtube_explode_dart/src/retry.dart:16)
<asynchronous suspension>
#5      Future.timeout.<anonymous closure> (dart:async/future_impl.dart:963)
<asynchronous suspension>
#6      YoutubeSourcedTrack.toSiblingType (package:spotube/services/sourced_track/sources/youtube.dart:145)
<asynchronous suspension>
#7      YoutubeSourcedTrack.fetchSiblings (package:spotube/services/sourced_track/sources/youtube.dart:239)
<asynchronous suspension>
#8      YoutubeSourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sources/youtube.dart:63)
<asynchronous suspension>
#9      SourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sourced_track.dart:117)
<asynchronous suspension>
#10     sourcedTrackProvider.<anonymous closure> (package:spotube/provider/server/sourced_track.dart:25)
<asynchronous suspension>
#11     FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

----------------------------------------

Operating System

Ubuntu Linux, 24.04

Spotube version

v3.8.3

Installation source

Website (spotube.krtirtho.dev), GitHub Releases (Binary), Flathub (Flatpak)

Additional information

No response

Self grab

  • I'm ready to work on this issue!
@MurzNN MurzNN added the bug Something isn't working label Nov 18, 2024
@MurzNN
Copy link
Author

MurzNN commented Nov 18, 2024

Seems the duplicate of the #883

@remiantoine
Copy link

It is noted in the documentation that the audio tracks are taken from youtube, and naturally, it can happen that certain titles on spotify are not available on youte, or not easily accessible by the algorithm. The problem stems from the way spotube works

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants