Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

Control the Discord application with the Elgato StreamDeck

License

Notifications You must be signed in to change notification settings

fredemmott/StreamDeck-Discord

Repository files navigation

THIS PLUGIN IS NO LONGER MAINTAINED, USE ELGATO'S PLUGIN INSTEAD

https://apps.elgato.com/plugins/com.elgato.discord


Continuous Integration

StreamDeck-Discord

StreamDeck-Discord is a C++ plugin for the Elgato StreamDeck for controlling the Discord application running on your computer.

Features

  • Toggle/enable/disable self-mute/deafen
  • Switch between voice-activation and push-to-talk

Installation

Installation and demo video: https://youtu.be/MSMbRtj2fFA

  1. Download the com.fredemmott.discord.streamDeckPlugin file from the releases page, and double-click it.
  2. Add a mute or deafen button to your streamdeck
  3. Go to the Discord developer portal, and create an application
  4. Go to 'OAuth2' on the left hand side
  5. Add https://localhost/ as a redirect URI
  6. Hit Save Changes at the bottom of the page
  7. copy the client ID and paste it into 'app ID' in the StreamDeck button properties
  8. copy the client secret and paste it into 'app secret' in the StreamDeck button properties
  9. Discord should now ask you for permission a few times, then you're done :)
  10. You might get a firewall prompt. You need to allow it.

Need Help?

  1. Try the suggestions in TROUBLESHOOTING.md
  2. If that does not resolve the problem, sign up/sign in to github, and click 'New discussion' on https://github.com/fredemmott/StreamDeck-Discord/discussions ; create an entry in the "Q & A" category

I'm not able to offer 1:1 help, e.g. via Discord.

Limitations

  • only one application can control Discord voice settings at a time. Stop anything else that controls Discord mute/deafen, such as the Discord applet in Logitech Gaming Software
  • mute/deafen only apply while the application is running. For example, if you mute the microphone, then quit the StreamDeck software, the microphone might not be muted.

These limitations are imposed by Discord and can not be fixed by this plugin.

Why does this plugin ask for my Discord username and avatar?

This information is not used or shared by the plugin. It asks for this permission as if it doesn't, Discord will separately prompt for it anyway, even though it's not wanted. Asking for it up front means you will get one permission prompt instead of two.

See https://support.discordapp.com/hc/en-us/community/posts/360038932712-allow-apps-without-identify-role

Why does this plugin ask my firewall for permission to access the internet?

Discord plugins use OAuth2. The flow is basically:

  1. this plugin asks the local Discord app for a code
  2. the Discord app gives this plugin a code
  3. the plugin asks the Discord web API to convert the code into an OAuth token
  4. the Discord API gives the plugin the token
  5. the plugin uses the token to log in to the client

The third step requires internet access.

See https://support.discordapp.com/hc/en-us/community/posts/360038666632-IPC-authentication

Why does this plugin require me to register an app with Discord?

See https://support.discordapp.com/hc/en-us/community/posts/360038666632-IPC-authentication

License

This project is MIT-licensed.