jacksonhardaway / etched

💿 A new form of entertainment.
https://www.curseforge.com/minecraft/mc-mods/etched
Other
50 stars 19 forks source link

Soundcloud music do not play if it's private #30

Closed VanderCat closed 2 years ago

VanderCat commented 2 years ago

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
jacksonhardaway commented 2 years ago

What's the format of the URL?

VanderCat commented 2 years ago

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>

Ocelot5836 commented 2 years ago

Should be fixed in a27d358