Etched

Etched

2M Downloads

Soundcloud music do not play if it's private

VanderCat opened this issue ยท 3 comments

commented

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
commented

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>

commented

What's the format of the URL?

commented

Should be fixed in a27d358