Enitoni / pulseshitter

An overengineered workaround to Discord not supporting audio when screensharing on Linux.
Mozilla Public License 2.0
350 stars 8 forks source link

Pulseshitter detects playback streams, but it cannot use the audio from those streams #28

Open aVastAbyss opened 7 hours ago

aVastAbyss commented 7 hours ago

Problem: Pulseshitter launches fine and the bot joins the voice channel, but it does not stream any audio from the selected application. The sound meter remains completely empty, even though that application is playing sound.

OS: Debian 12 (bookworm) Sound Server: Pulseaudio 16.1

Installed sound packages:

Installation procedure for reproducibility:

  1. Created an application in the Discord developer portal
  2. Created an invite link for a bot user with the following permissions: Connect, Speak, Use Voice Activity.
  3. Successfully got the bot in the desired server (a server with just me for testing purposes).
  4. Downloaded the binary for the newest release of Pulseshitter.
  5. Made it an executable with sudo chmod +x pulseshitter
  6. Ran it, and then inputted the correct bot token and user ID
  7. Bot successfully joined the correct VC, and Discord showed a green circle around it (demonstrating it had the proper permissions)
  8. Attempted to stream a YouTube video from Firefox.
  9. No audio came from the bot (I was expecting a slight echo, or for the sound meter to not be completely gray).

Attempted solutions:

Enitoni commented 7 hours ago

Hi! Thanks for creating an issue.

Hmm, that is very strange. I'm wondering if the problem is pulseaudio. I've never actually tested pulseshitter for pulseaudio, because most distros (afaik) use pipewire now, and pipewire simply interops with the pulseaudio server API. Are you able to test the same setup with pipewire? I tested it just now in my VM running Fedora, and it works fine.

aVastAbyss commented 5 hours ago

Thanks for the speedy response! :D I will test it using pipewire and get back to you on that tomorrow.