As says in the title, SoundCloud tracks are no longer playing. This is the error text on the Guru Meditation popup.
Crash log
org.schabi.newpipe.extractor.stream.StreamInfo$StreamExtractException: Could not get any stream. See error variable to get further details.
at org.schabi.newpipe.extractor.stream.StreamInfo.extractStreams(StreamInfo.java:187)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:67)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:59)
at org.schabi.newpipe.util.ExtractorHelper.lambda$getStreamInfo$3(ExtractorHelper.java:115)
at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$5fJcha6Sq5APJBLdG6osaJby-mc.call(Unknown Source:4)
at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
at io.reactivex.Single.subscribe(Single.java:3438)
at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:35)
at io.reactivex.Single.subscribe(Single.java:3438)
at io.reactivex.internal.operators.maybe.MaybeFromSingle.subscribeActual(MaybeFromSingle.java:41)
at io.reactivex.Maybe.subscribe(Maybe.java:4154)
at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:153)
at io.reactivex.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
at io.reactivex.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
at io.reactivex.Flowable.subscribe(Flowable.java:14479)
at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
at io.reactivex.Maybe.subscribe(Maybe.java:4154)
at io.reactivex.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
at io.reactivex.Single.subscribe(Single.java:3438)
at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
I get the same error. Seems like Soundcloud changed something on their website again.
I can confirm that not only can I not view soundcloud pages in-app but when I start typing in the search bar while in "SoundCloud mode" I get a nice exception:
Crash log
org.schabi.newpipe.extractor.exceptions.ParsingException: Could not parse json response
at org.schabi.newpipe.extractor.services.soundcloud.SoundcloudSuggestionExtractor.suggestionList(SoundcloudSuggestionExtractor.java:47)
at org.schabi.newpipe.util.ExtractorHelper.lambda$suggestionsFor$2(ExtractorHelper.java:105)
at org.schabi.newpipe.util.-$$Lambda$ExtractorHelper$kAwiU5Tjeit-NCwHTWhD3V6UHS8.call(Unknown Source:4)
at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:44)
at io.reactivex.Single.subscribe(Single.java:3438)
at io.reactivex.internal.operators.single.SingleToObservable.subscribeActual(SingleToObservable.java:35)
at io.reactivex.Observable.subscribe(Observable.java:12090)
at io.reactivex.internal.operators.observable.ObservableMap.subscribeActual(ObservableMap.java:32)
at io.reactivex.Observable.subscribe(Observable.java:12090)
at io.reactivex.internal.operators.observable.ObservableZip$ZipCoordinator.subscribe(ObservableZip.java:110)
at io.reactivex.internal.operators.observable.ObservableZip.subscribeActual(ObservableZip.java:72)
at io.reactivex.Observable.subscribe(Observable.java:12090)
at io.reactivex.internal.operators.observable.ObservableMaterialize.subscribeActual(ObservableMaterialize.java:28)
at io.reactivex.Observable.subscribe(Observable.java:12090)
at io.reactivex.internal.operators.observable.ObservableSwitchMap$SwitchMapObserver.onNext(ObservableSwitchMap.java:127)
at io.reactivex.internal.operators.observable.ObservableFilter$FilterObserver.onNext(ObservableFilter.java:52)
at io.reactivex.internal.operators.observable.ObservableConcatMap$ConcatMapDelayErrorObserver$DelayErrorInnerObserver.onNext(ObservableConcatMap.java:506)
at io.reactivex.observers.SerializedObserver.onNext(SerializedObserver.java:111)
at io.reactivex.internal.operators.observable.ObservableDebounceTimed$DebounceTimedObserver.emit(ObservableDebounceTimed.java:143)
at io.reactivex.internal.operators.observable.ObservableDebounceTimed$DebounceEmitter.run(ObservableDebounceTimed.java:168)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: com.grack.nanojson.JsonParserException: Expected JSON value, got EOF on line 1, char 0
at com.grack.nanojson.JsonParser.createParseException(Unknown Source:44)
at com.grack.nanojson.JsonParser.currentValue(Unknown Source:30)
at com.grack.nanojson.JsonParser.parse(Unknown Source:3)
at com.grack.nanojson.JsonParser$JsonParserContext.from(Unknown Source:15)
at org.schabi.newpipe.extractor.services.soundcloud.SoundcloudSuggestionExtractor.suggestionList(SoundcloudSuggestionExtractor.java:40)
... 26 more
Yeah SoundCloud isn't working anymore, same thing happened to me just now
On Youtube-DL, they changed the CLIENT_ID : https://github.com/ytdl-org/youtube-dl/commit/cf3c9eafad5e6b83788e15a605aa6804b1ab307c
(ping @mauriciocolli)
Updating the client_id solves some of the problems. ~It seems like soundcloud moved the JSON where it was extracted from again^^.~ I'll investigate further to provide a full fix asap
Edit: Please use the crashreport converter to convert the json repotr to markdown. This makes things for us easier and the report understandable for other people, too.
@AmbientCyan Your problem will be solved by TeamNewPipe/NewPipeExtractor#217 and further client_id changes handled properly by the app (no more crashing, but fetching the new one).
@nahteyamashita However there is still an auth problem to get the tracks. I'll take a look at it at the weekend if no one else is doing it before me.
Is there any ETA on this fix? The app is more or less unusable for me since it doesn't stream anything from SC.
PS thank you for all the hours that y'all have put into this! Only asking because I really like this app
TeamNewPipe/NewPipeExtractor#217 fixes this issue, it should be merged in a few days @genevera
One half of the problem is solved. We can access SoundCloud again. However, it is not possible to get any streams which makes sc quite useless :(
I think we need help.
I managed to get the stream urls. See this method for more info. However, I still cannot play them. I can generate an url for each audio format, which points to a m3u file, but exoplayer has problems with playing them. Can someone with more knowledge of the player help me out?
CC @theScrabi @Stypox @Redirion @yausername @mauriciocolli @karyogamy
Is this exoplayer issue helpful or related? https://github.com/google/ExoPlayer/issues/3722
I saw this fail in the https://github.com/TeamNewPipe/NewPipeExtractor/pull/217 Travis CI log:
Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: https://api.soundcloud.com/i1/tracks/276206960/streams?client_id=bkcJLoXNaiFlsLaKBQXOxO5FhW0NJVnu
Here are the stream URLs for this track:
https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/soundcloud.py helped me a bit. I used youtube-dl -s -v --print-traffic https://soundcloud.com/liluzivert/do-what-i-want-produced-by-maaly-raw-don-cannon to see the requests done.
I don't know if these are the one you are not able to play with ExoPlayer.
Ha perfect 鉂わ笍 we need to choose the last one.
Most helpful comment
@AmbientCyan Your problem will be solved by TeamNewPipe/NewPipeExtractor#217 and further client_id changes handled properly by the app (no more crashing, but fetching the new one).
@nahteyamashita However there is still an auth problem to get the tracks. I'll take a look at it at the weekend if no one else is doing it before me.