A custom discord client that supports streaming with audio on Linux.
Go to file
Malte Jürgens e3d87e8202 v1.7.0
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEA093du9eDGE9L3k00p+9X5PAz8MFAmPsN6oACgkQ0p+9X5PA
 z8O8pg//UBo01WAv4NwK17gLIMMjwbXIcWCcC46RaJKo0gBSJy9wFvHCQfR3qLb4
 AJDlfnbSkkJ5w3xnEruUwmgbTkBOWnxYUX/Uaq2jI7JfxYWi1AdMINg0E7GirLqs
 T1AraC5bjaIlrfohgspi9BYw8g2fBE/doQKrUC5a4vTwPYmjZZmCOkwILPTKx8Ig
 L5CmBQPnpOMtfOvwyM7h3I4FT32M2WwW79gW9XYKNf3kiXDRqqTQODMzU0iNjHq3
 STDu3lrCgpdEyNuBsZQilfCWTPCVHTggYQGv0Brv+YPRE/ELzcfFuqqQcpvZC843
 hobJIuCNfCfJN7Bu6gc2RUfNZkDQUj7Ar62j+J7PS5CVfQjpwomfeDeX94vaq8hK
 JWret1lHzabbBmeEcX41wq/WcHMGfFzk30PlLK3f1EQqdu/QUvprXV3pQDWkrqdn
 gtamTz3TIxUBWd2dbC8oaOQLB9YKPLCJy+zbPNObNMII5PU3nmHSFMafTefjjiwA
 x1t5hwxwM6ND+YsDU3XTvMVLo87enQgnNhsfQyrIRPqaIRerB02w2j++b2SCluX1
 npsJhVK/ND9aih+x/dopMXDqJTVJhLqH31KOaRz2l7KTAubY/c8gVSnVBKDTp4ez
 /RuOjBys5qXNKU/RRn9cA09xuXCkDZK7WBtHpU6vqKmEuP18ND4=
 =vRVO
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEA093du9eDGE9L3k00p+9X5PAz8MFAmPw5voACgkQ0p+9X5PA
 z8PoCg//T+mXN0/wp0/nh8T44nptqBDy28RJzzWrbxyNLx5uazU0Nq97jToiY3QI
 3XnjtqN1pv+6DQeBKpJcHX3jsUQOXXqDWeVR4gsqjBe3w54mgRTUmzFUcnUsERud
 D/HI04vV2Z2+ky5opS3eQFhy9sVPwGvEMZRTsSNMkGYESGzvOzl3SXCDW4ftNm8Q
 9Qu11BlxYxu4NNKBtvbDPVICcXk2YRdjBBQ8dN66nyrHLa3AO/tbOP9mh8mLJuDB
 WjEaG29+Xpsx5l9woLg0JakGyf2HkYuHG/G/oEUknsCJ7/MUb0iknwFWy9BdaiO+
 Dnh4ABoK0PGDpzHAR5OUomyvAfOd8AOXcFaOztT/NJ6Tj1RNZgbPKbsS+wJxYzGN
 x8xsUXhGIY/y9EqEcKolRh3JKMihtvdVjfOaeRFse0juNErewsurSx+oxcSS8jj/
 ULABMR/SpDp+h0j9HGexqNnI7htGe2egabRIMUfqfN/kKO4i5onvTbq7gpIaak6B
 W3BAzPnAes81VKgcLIcEqrPBSTuAxb1L3tNeKU3dHMeFQz2P6p3CFx/UPObIdwzv
 GdX6hzQKIg/IGh+5i31Heyh6wB1e5FhEUKxqDrE1wVOPVDkP6bHlZEW0lI2feSYM
 xjk1/w5onEOKiXvXkgC64f7wZY/VCXOaa3Ptp2hZSLuypDgNxdY=
 =D7Pe
 -----END PGP SIGNATURE-----

Merge tag 'v1.7.0' into vencord

v1.7.0
2023-02-18 15:55:54 +01:00
assets v1.7.0 2023-02-18 15:55:54 +01:00
scripts vencord fixes 2022-10-25 20:27:22 +02:00
src v1.7.0 2023-02-18 15:55:54 +01:00
submodules remove Vencord folder 2022-11-04 20:45:55 +00:00
.gitignore testing 2022-10-14 23:16:34 +02:00
.gitmodules use rohrkabel as submodule and update it to v1.2 2022-07-26 16:33:34 +02:00
CMakeLists.txt use qtwebchannel to communicate with userscript 2023-02-12 17:20:33 +01:00
LICENSE fix license 2022-07-18 21:07:10 +02:00
README.md add faq about `userstyles.css` 2023-02-15 02:35:48 +01:00
resources.qrc testing 2022-10-14 23:16:34 +02:00
version.cmake cmake: use version from text file without suffix 2022-08-04 15:47:04 +02:00

README.md

discord-screenaudio

A custom discord client that supports streaming with audio on Linux, made possible by the great work of @edisionnano and the Rohrkabel library by @Curve.

Unlike a lot of other solutions, the audio here is directly fed into the screenshare and not passed to the user microphone (see explanation).

Screenshot_20221211_185028

The purpose of this project is not to provide an alternative to the original Discord client. Rather, it should be used in addition to the original client in case you want to stream something, maybe used with a second account. For anything else, this client has way too many things that work less well than in the original client.

Technically this could be against Discord's TOS, so be warned. Discord probably won't ban you for using this, but if they do I told you and it's not my fault.

Known Issues

  • Only works with PipeWire
  • Can only share primary screen on X11 (no other screens or specific applications) (see #1)

Installation

You have multiple options:

Building from Source

Requirements

  • Basic building tools
  • An up-to-date system (I can't guarantee that it works on Debian or Ubuntu 20/21)
  • CMake
  • Qt5 and QtWebEngine
  • PipeWire (it currently doesn't work with PulseAudio)
  • Git
  • Kf5Notifications (optional, for better notifications)
  • KXMLGui and KGlobalAccel (optional, for keybinds)

With apt: apt install -y build-essential cmake qtbase5-dev qtwebengine5-dev libkf5notifications-dev libkf5xmlgui-dev libkf5globalaccel-dev pkg-config libpipewire-0.3-dev git

Building

First, clone the repository:

git clone https://github.com/maltejur/discord-screenaudio.git
cd discord-screenaudio

Then, to build the program, run this in the source directory:

cmake -B build
cmake --build build --config Release

And then to optionally install it, run:

sudo cmake --install build

FAQ

How does this work?

This whole project is based on this repository, which very nicely explains how to stream audio in the web version of Discord. Basically: a virtual microphone is created which captures the application audio, and this microphone is then fed to the Discord stream by intercepting a API call of Discord.

Drag and drop doesn't work in the Flatpak

This is due to sandboxing limitations of Flatpak. The main Discord Flatpak has the same problem. If you still want to use drag and drop, you can disable most of Flatpak's sandboxing by installing Flatseal and allowing access to "All system files" under the "Filesystem" section.

Is there any way to add custom CSS / a theme?

Yes, you can add all your styles into ~/.config/discord-screenaudio/userstyles.css. But please note that due to QtWebEngine limitations concerning content security policies, you can't use any external files (like @import or url()).

License

Copyright (C) 2022 Malte Jürgens

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.