jagrosh / MusicBot

🎶 A Discord music bot that's easy to set up and run yourself!
https://jmusicbot.com
Apache License 2.0
4.9k stars 2.44k forks source link

[Bug Report] Doesn't seem to play anything #1537

Closed SevenSQS closed 2 months ago

SevenSQS commented 3 months ago

Bug Description

The bot doesn't seem to play anything. When I call the bot in discord, it would reply "Added (song title) to begin playing". But there are no audio and if I check nowplaying, it would say there must be music playing to use that. Checked the console and this is all it shows: [16:23:25] [INFO] [JMusicBot]: Loaded config from D:\musicbot\config.txt [16:23:25] [INFO] [JDA]: Login Successful! [16:23:25] [INFO] [WebSocketClient]: Connected to WebSocket [16:23:25] [INFO] [JDA]: Finished Loading! [16:23:33] [INFO] [YoutubeAccessTokenTracker]: Updating YouTube visitor id (current is null). [16:23:33] [INFO] [YoutubeAccessTokenTracker]: Updating YouTube visitor id succeeded, new one is CgtqSjY4aVdscmx1RSjF0rGwBjIKCgJVUxIEGgAgUToKIPi3le_RqJqGZg%3D%3D, next update will be after 600 seconds.

Steps to Reproduce

  1. Launch the bot
  2. Use the play command in discord
  3. No audio despite the bot responding

Expected Result

The bot is "half alive" it will look like it works but it won't do anything(no audio)

Debug Output

System Properties:
  java.version = 11.0.21
  java.vm.name = Java HotSpot(TM) 64-Bit Server VM
  java.vm.specification.version = 11
  java.runtime.name = Java(TM) SE Runtime Environment
  java.runtime.version = 11.0.21+9-LTS-193
  java.specification.version = 11
  os.arch = amd64
  os.name = Windows 10

JMusicBot Information:
  Version = 0.4.0
  Owner = ( Removed by me, but it shows my discord ID)
  Prefix = ?
  AltPrefix = null
  MaxSeconds = 0
  NPImages = false
  SongInStatus = true
  StayInChannel = true
  UseEval = false
  UpdateAlerts = true

Dependency Information:
  JDA Version = 4.4.1_353
  JDA-Utilities Version = 3.0.5
  Lavaplayer Version = 727959e9f621fc457b3a5adafcfffb55fdeaa538-SNAPSHOT

Runtime Information:
  Total Memory = 254
  Used Memory = 143

Discord Information:
  ID = 901305000062484520
  Guilds = 3
  Users = 3

Additional Info

No response

Checklist

FSKiller commented 3 months ago

Can also confirm.

This happens with the latest version 0.4.0.

However you can bypass the issue by using the previous version JMusicBot-0.3.9

elijahtaylorr commented 3 months ago

Can confirm aswell

SrLicht commented 3 months ago

same

Tosiek99 commented 3 months ago

Same situation here, after downgrading to version 0.3.9 everything works fine.

Same URL:

on 0.4.0 - 🚫 Error loading: Video returned by YouTube isn't what was requested on 0.3.9 - works perfectly fine

MCH170 commented 3 months ago

Same here. Downgrading to 0.3.9 works.

wolfeservices commented 3 months ago

can confirm, issue is with 0.4.0, downgrade worked

DylanSpeiser commented 3 months ago

Same issue here. Waiting for a fix before updating.

Rickedydoo commented 3 months ago

same issue using 0.4.0 downgrading to 0.3.9 works well

djripcord commented 3 months ago

Also experiencing this. java 17.0.6 2023-01-17 LTS

albatross1 commented 3 months ago

Downgrading fixed for me as well. Downgrading.

IngwiePhoenix commented 3 months ago

Been getting a lot of "Error loading: Video returned by YouTube isn't what was requested " as of late. Nothing in the logs indicates what the real error is, let alone what the output was.

Is there a way to drop it into debug logging to see those outputs?

ethan91 commented 3 months ago

I am also having this issue, although I have found that it isn't a global won't play anything issue but only with youtube. I tested both Soundcloud and twitch stream audios and those worked just fine.

sblmbb commented 3 months ago

Same and I can't downgrade on my server because its running as service and I can't be there to skip the "new update" everytime it starts. Hope it gets fixed soon

smakus commented 3 months ago

Youtube will not playback on 0.4.0 with macOS 14.4.1, Soundcloud still works with 0.4.0. I wonder if it is related to this warning from the terminal when running the jar file (MacOS 14.4.1 Sonoma latest release):

WARNING: Secure coding is automatically enabled for restorable state! However, not on all supported macOS versions of this application. Opt-in to secure coding explicitly by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState:.

Likely not as that warning is still present on 0.3.9.

I can confirm that 0.3.9 still works and can playback YouTube music, so I think this is likely something to do with the latest MacOS release and 0.4.0 only.

donnybeelo commented 3 months ago

Can confirm same issue, downgrading to 0.3.9 fixes the issue

siggijarl commented 3 months ago

Downgraded and now the bot sends me a discord PM frequently telling me about a new version

Preycon commented 3 months ago

Downgraded and now the bot sends me a discord PM frequently telling me about a new version

Yo can change that in the config file, just read the manual.

donnybeelo commented 3 months ago

Downgraded and now the bot sends me a discord PM frequently telling me about a new version

add updatealerts=false to your config.txt file :)

DaanSelen commented 3 months ago

Will this be resolved in 4.1.0?

MichjuX commented 3 months ago

I can confirm, for me doesn't work on Ubuntu (haven't tested on Windows)

wolfeservices commented 3 months ago

It seems to be an issue with how version 0.4.0 handles ingest from YouTube, as other ingest sources still work. Id imagine version 0.4.1 would include a rollback/fix to YouTube as the previous version of 0.3.9 works well.

jagrosh commented 3 months ago

It seems to be an issue with how version 0.4.0 handles ingest from YouTube, as other ingest sources still work. Id imagine version 0.4.1 would include a rollback/fix to YouTube as the previous version of 0.3.9 works well.

A rollback will lead to the 403 issues that plagued the extremely-outdated lavaplayer build in 0.3.9; we're going to wait for a proper fix for this from the new lavaplayer fork

MichailiK commented 3 months ago

There's an open pull request at https://github.com/lavalink-devs/lavaplayer/pull/88 that fixes this issue. I've made a build of JMusicBot on my fork that includes the changes of that pull request. You're welcome to try that version out & use it as a temporary stop-gap solution until 0.4.1 comes out.

The release is on my fork & is provided as-is. No support is provided here. Do not report issues of my fork on here.

LattVines commented 3 months ago

just to add my 2 cents, I got called in by a friend to help troubleshoot his music bot on 0.4.0 version after he upgraded on Windows 10. Tried lots of things, but had to downgrade to get it to work. One difference between version 0.4.0 and 0.3.9 that I noticed is that when the 0.4.0 music bot joined the voice channel, it had the "deafened" status symbol. We could find no permission concerning this in the settings file or on Discord. I don't know if it is related to us not hearing the audio.

BuzzfeedBlue commented 3 months ago

just to add my 2 cents, I got called in by a friend to help troubleshoot his music bot on 0.4.0 version after he upgraded on Windows 10. Tried lots of things, but had to downgrade to get it to work. One difference between version 0.4.0 and 0.3.9 that I noticed is that when the 0.4.0 music bot joined the voice channel, it had the "deafened" status symbol. We could find no permission concerning this in the settings file or on Discord. I don't know if it is related to us not hearing the audio.

this has nothing to do with what you hear, its a privacy quality of life feature to show that the bot is not listening to you and potentially recording private data

jagrosh commented 3 months ago

just to add my 2 cents, I got called in by a friend to help troubleshoot his music bot on 0.4.0 version after he upgraded on Windows 10. Tried lots of things, but had to downgrade to get it to work. One difference between version 0.4.0 and 0.3.9 that I noticed is that when the 0.4.0 music bot joined the voice channel, it had the "deafened" status symbol. We could find no permission concerning this in the settings file or on Discord. I don't know if it is related to us not hearing the audio.

this has nothing to do with what you hear, its a privacy quality of life feature to show that the bot is not listening to you and potentially recording private data

Actually, the "deafened" status is purely visual and doesn't prevent a bot from recording you. Only the "server deafened" status actually prevents a bot from receiving audio.

livehifi commented 2 months ago

looks like lavalink-devs spun off youtube support into a separate project under https://github.com/lavalink-devs/youtube-source and will not be updating the base lavaplayer

source: https://github.com/lavalink-devs/lavaplayer/issues/97#issuecomment-2067810065

Snailpower commented 2 months ago

Having the same issue, hopefully fixed soon! Rollback to 3.9.0 for now.

Must be the deafened state that is the problem here. It prevents a user from sending audio, so the same thing might be happening with the bot.

smakus commented 2 months ago

Must be the deafened state that is the problem here. It prevents a user from sending audio, so the same thing might be happening with the bot.

No. Deafening the bot is for audio only. The bot doesn't need to hear you speak audibly. Theoretically saves bandwidth because no audio is transmitted to the bot.

jagrosh commented 2 months ago

Must be the deafened state that is the problem here. It prevents a user from sending audio, so the same thing might be happening with the bot.

No. Deafening the bot is for audio only. The bot doesn't need to hear you speak audibly. Theoretically saves bandwidth because no audio is transmitted to the bot.

While deafening is unrelated to this issue, deafening doesn't save any bandwidth because the bot still receives audio when deafened. Only server-deafening actually saves bandwidth.

MichailiK commented 2 months ago

looks like lavalink-devs spun off youtube support into a separate project under https://github.com/lavalink-devs/youtube-source and will not be updating the base lavaplayer

source: lavalink-devs/lavaplayer#97 (comment)

Thank you for bringing this up! I opened #1552 yesterday to switch to the new source manager, it'll come with 0.4.1.

Until 0.4.1 gets released, I've already made a build of this on my fork for anyone who needs JMusicBot working right now.

:warning: Note that since this is a build from my fork, you should direct any questions to my repo rather than on here. Please update as soon as 0.4.1 releases!

Snailpower commented 2 months ago

No. Deafening the bot is for audio only. The bot doesn't need to hear you speak audibly. Theoretically saves bandwidth because no audio is transmitted to the bot.

I feel like we don't understand each other here. I am simply saying that when I deafen myself in discord, it automatically also mutes me. You cannot have your outgoing audio enabled when deafened as a user. This leads me to believe that for a bot the same thing applies, when deafened: The bot cannot send outgoing audio like a deafened user

MichailiK commented 2 months ago

Hi @Snailpower, deafening just makes you stop hearing other users, you can still transmit audio regardless. You can try this by playing any SoundCloud link, or by using the ?play command with a mp3 file attached.

The bot just struggles playing YouTube videos atm, as YouTube has been seriously cracking down on 3rd party clients like JMusicBot. We have a fix for this ready & will release 0.4.1 hopefully soon

DaanSelen commented 2 months ago

What is the status of this issue? Is it safe to upgrade from 3.9 to 4.0?

eomanis commented 2 months ago

What is the status of this issue? Is it safe to upgrade from 3.9 to 4.0?

If you are using Arch Linux: @MichailiK 's pull request has been integrated into the Arch Linux jmusicbot AUR package, YouTube playback works for me now on that platform.

GravityXTaC commented 2 months ago

Is there an argument I can use to click the okay for the popup message telling me there is a new version? I usually run the bot using task scheduler, but 0.3.9 doesn't boot because it gets stuck at that message.

eomanis commented 2 months ago

Is there an argument I can use to click the okay for the popup message telling me there is a new version? I usually run the bot using task scheduler, but 0.3.9 doesn't boot because it gets stuck at that message.

That would likely be the -Dnogui=true switch. Example, assuming Windows because you mentioned "task scheduler":

C:\path\to\java.exe -Dnogui=true -jar C:\path\to\jmusicbot.jar

Argument position is important; -Dnogui=true must be specified before -jar.

IngwiePhoenix commented 2 months ago

Yeehaw, Lavalink patch merged: https://github.com/jagrosh/MusicBot/pull/1552

Think we can expect an update soon! =)

jagrosh commented 2 months ago

Should be fixed as of 0.4.1

IngwiePhoenix commented 2 months ago

Can confirm, works!

And thus, I could finally make this.

k3s deployment! ```yaml apiVersion: v1 kind: Namespace metadata: name: musicbot --- apiVersion: v1 kind: ConfigMap metadata: name: musicbot-cm namespace: musicbot data: config.txt: |- token = owner = 472415352513626113 prefix = "!" game = "An old ode~" npimages = true stayinchannel = true alonetimeuntilstop = 900 aliases { // General commands settings = [ status ] // Music commands lyrics = [] nowplaying = [ np, current ] play = [ p ] playlists = [ pls ] queue = [ list ] remove = [ delete ] scsearch = [] search = [ ytsearch ] shuffle = [] skip = [ voteskip ] // Admin commands prefix = [ setprefix ] setdj = [] settc = [] setvc = [] // DJ Commands forceremove = [ forcedelete, modremove, moddelete ] forceskip = [ modskip, next, fs ] movetrack = [ move ] pause = [] playnext = [] repeat = [] skipto = [ jumpto ] stop = [] volume = [ vol ] } --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: musicbot-pvc namespace: musicbot spec: storageClassName: nfs-bunker accessModes: - ReadWriteOnce resources: requests: storage: 10Mi --- apiVersion: apps/v1 kind: Deployment metadata: name: musicbot-app namespace: musicbot labels: app: jmusicbot spec: replicas: 1 selector: matchLabels: app: jmusicbot template: metadata: labels: app: jmusicbot spec: volumes: - name: config-vol configMap: name: musicbot-cm - name: data-vol persistentVolumeClaim: claimName: musicbot-pvc initContainers: - name: write-config image: alpine:3.19 command: - /bin/cp - -v - /tmp/musicbot-cm/config.txt - /opt/jmusicbot/config/config.txt volumeMounts: - name: config-vol mountPath: /tmp/musicbot-cm - name: data-vol mountPath: /opt/jmusicbot/config containers: - name: app image: bas0korver/jmusicbot:0.4.1 volumeMounts: - name: data-vol mountPath: /opt/jmusicbot/config ```