Soundcloud music do not play if it's private
VanderCat opened this issue ยท 3 comments
What version are you seeing the problem on?
1.16.5
Describe the issue
1. Upload music to SoundCloud with private mode
2. Copy link with key (this key allows people without access to play it)
3. Paste URL to etcher table
4. Try to play it in jukebox
I think the problem is the current API ignore key in the URL and thus can't play
latest.log
[13:28:19] [Downloader 4/INFO]: Attempting to authenticate
[13:28:19] [Downloader 4/INFO]: Retrieving sound cloud id
[13:28:20] [Worker-Main1/INFO]: [net.minecraft.client.audio.SoundEngine:mdedb7a2$lambda$redirectSoundStream$4$0:625]: java.util.concurrent.CompletionException: java.util.concurrent.CompletionException: Failed to connect to SoundCloud API
[13:28:20] [Worker-Main1/INFO]: [net.minecraft.client.audio.SoundEngine:mdedb7a2$lambda$redirectSoundStream$4$0:625]: at me.jaackson.etched.client.sound.download.SoundCache.lambda$getAudioStream$3(SoundCache.java:96)
[13:28:20] [Worker-Main1/INFO]: [net.minecraft.client.audio.SoundEngine:mdedb7a2$lambda$redirectSoundStream$4$0:625]: at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
[13:28:20] [Worker-Main1/INFO]: [net.minecraft.client.audio.SoundEngine:mdedb7a2$lambda$redirectSoundStream$4$0:625]: at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
[13:28:20] [Worker-Main1/INFO]: [net.minecraft.client.audio.SoundEngine:mdedb7a2$lambda$redirectSoundStream$4$0:625]: at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
[13:28:20] [Worker-Main1/INFO]: [net.minecraft.client.audio.SoundEngine:mdedb7a2$lambda$redirectSoundStream$4$0:625]: at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1705)
[13:28:20] [Worker-Main1/INFO]: [net.minecraft.client.audio.SoundEngine:mdedb7a2$lambda$redirectSoundStream$4$0:625]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[13:28:20] [Worker-Main1/INFO]: [net.minecraft.client.audio.SoundEngine:mdedb7a2$lambda$redirectSoundStream$4$0:625]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[13:28:20] [Worker-Main1/INFO]: [net.minecraft.client.audio.SoundEngine:mdedb7a2$lambda$redirectSoundStream$4$0:625]: at java.base/java.lang.Thread.run(Thread.java:829)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:639]: Caused by: java.util.concurrent.CompletionException: Failed to connect to SoundCloud API
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:639]: at me.jaackson.etched.client.sound.download.SoundCache.lambda$getAudioStream$1(SoundCache.java:80)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:639]: at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:639]: ... 3 more
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: Caused by: java.lang.NullPointerException
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: at java.base/java.io.Reader.<init>(Reader.java:167)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: at java.base/java.io.InputStreamReader.<init>(InputStreamReader.java:109)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: at org.apache.commons.io.IOUtils.copy(IOUtils.java:2272)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: at org.apache.commons.io.IOUtils.toString(IOUtils.java:1041)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: at me.jaackson.etched.client.sound.download.SoundCloud.get(SoundCloud.java:77)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: at me.jaackson.etched.client.sound.download.SoundCloud.lambda$resolveUrl$0(SoundCloud.java:123)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: at me.jaackson.etched.client.sound.download.SoundCloud.resolve(SoundCloud.java:96)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: at me.jaackson.etched.client.sound.download.SoundCloud.resolveUrl(SoundCloud.java:111)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: at me.jaackson.etched.client.sound.download.SoundCache.lambda$getAudioStream$1(SoundCache.java:78)
[13:28:20] [Worker-Main1/INFO]: [java.lang.Throwable:printStackTrace:648]: ... 4 more
it's like default SoundCloud url, but threre's a key at the end allowing someone with link listen to private song:
https://soundcloud.com/<username>/<song_name>/<key>
Should be fixed in a27d358