Discord Rich Presence Winamp plugin
Do you use Winamp to play media, and Discord for social purposes? If you have ever wanted to integrate Winamp into Discord, this simple, easy-to-use plugin will allow you to do it.
Features:
- Plugin has a settings menu for ease of use
- Changing settings doesn't require re-starting Winamp or the plugin
- Option to not display currently-playing title
- Option to show elapsed time
Tested on
- Winamp version 5.623 (x86)
- Winamp version 5.8 Build 3660 (x86)
This plugin is for Windows 7/8/10+ x86-compatible environments.
Example:
Frequently Asked Questions (F.A.Q.'s)
Q: Winamp, really? In {current year}?
A: Yeah. Some people like it :P
Q: How does it work?
A: This is implemented as a Winamp plug-in which calls the Discord RPC API. The rich presence updates are sent to a Discord application which is associated with your Discord account.
Q: How do I set it up?
A: Here's step-by-step instructions:
- Log in to the Discord web app.
Visit discordapp.com/developers/applications/.
You'll see something like:
Click "Create an application". You can give it a name like "Winamp".
Afterward, you'll be taken to a screen to configure the application. You can set an icon, if you want. I got one from here.
If you want to include a logo in the Rich Presence, upload an asset for the application to "Rich Presence --> Art Assets" and name it "winamp-logo". It will show up to the left of the rich presence text. For an example of where the logo will show up and what that looks like, see "largeImageKey" described on this page.
The only thing to do here is to take note of the Client ID, also called an Application ID, since you'll need it later.
-
Download "Distribute.zip" from the latest plug-in release from GitHub here.
-
To install the Winamp plugin, unzip Distribute.zip and copy the results to the Plugins folder of your Winamp installation as shown.
Most often, the Plugins folder is located at C:\Program Files (x86)\Winamp\Plugins.
When you're done, there should be a file gen_DiscordRichPresence.dll in the Plugins folder, plus a folder inside that called DiscordRichPresence.
- Make sure you have the "Microsoft C++ Redistributable for Visual Studio 2015". It's more likely than not you already have this, because a lot of program installers include it. But in case you don't, you can find it here:
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
(The runtime is the same for VS 2015, 2017 and 2019.)
- Now open Winamp (or restart it if it was already open), and go to Preferences.
Under the Plug-ins tab, under General Purpose, the "Discord Rich Presence" item should appear. If it does, the plug-in was successfully installed!
Click the button Configure selected plug-in.
On this menu, paste the Discord Application ID from before. Also, you can check or un-check the box depending on whether you are comfortable showing the currently-playing media on Discord.
Alternatively, you can close Winamp and edit the settings.ini file, e.g., in
C:\Program Files (x86)\Winamp\Plugins\DiscordRichPresence\settings.ini
and verify it contains ApplicationID:xxx (your Application/Client ID and not all zeores) You may have to do this if Winamp plugins don't have privilege to change files in their folder.
Click OK, or save settings.ini, and you're done!
Q: If I want to use the plugin, do I need to build from source?
A: Nope- you can go to the Releases page and download the binaries in a zip file.
Q: Do I need to give the application my Discord credentials?
A: No, the plugin doesn't ask for your credentials.
Q: How come the status says "Playing a game" instead of "Listening to" like with Spotify?
A: The Discord RPC library doesn't (at the time of writing this) currently expose a way of changing this UI element. The status for Spotify worked because Discord gave Spotify special treatment. If it comes to be that the RPC library adds flexibility of changing this, I'd be interested in adopting it.
Update (6/28/2019): it looks like Discord is distributing a new SDK called GameSDK, and ultimately the RPC SDK will become deprecated. From a quick glance at the docs, it looks like the new SDK supports the ability to customize this. If so, great! I think it is kind of a hassle I need to move the plugin to a new SDK just to get this small feature, but I suppose they are phasing out the RPC SDK anyway. I can take a look at GameSDK and see how easy or hard it is to make it work and start there.
Q: Sometimes, I'm seeing a small delay before my Discord Rich Presence status is updated. What gives?
A: Discord thresholds the update frequency of the status text on its side. The frequency is every 15 seconds. See this page for more information.
Q: Is there a way to get it to show album art?
A: Currently, proabably not, but at some point it might be doable. One half of it would work fine- I can query Winamp for the art. The other missing half is to send it up to Discord. Discord doesn't, at the time of this writing, allow any "real" sort of programmatic upload of images- all images need to be uploaded through the Developer Portal web site. This is discussed a bit in their FAQ and this Reddit thread. If I could send images up with the RPC data, that would be perfect, but I'd be okay with anything really. I think it's likely they will remove this restriction at some point.
Q: Will other people be able to hear the music I'm listening to?
A: No, Discord Rich Presence doesn't allow you to transmit music. You can look at other rich presences and see they don't play music either. For example, Spotify- if any Discord Rich Presence were to have it, it'd be that one (they have a special relationship with Discord and get access to special functionalities ordinary plug-ins don't have), and they don't have it. Their rich presence has a link on it you can click that opens Spotify in your browser, presumably at the same stream. The rich presence itself doesn't play music or video. Discord Rich Presence API doesn't even allow plug-ins to transmit images, much less audio and video.
If you want to stream audio to a particular server, Discord has a more heavyweight feature GoLive, which streams audio+video.
Q: I can't seem to get the plug-in to start.
A: One thing to check, is if you close Winamp and go to your Winamp installation folder, i.e.,
C:\Program Files (x86)\Winamp\Plugins\DiscordRichPresence
Verify that settings.ini contains ApplicationID:xxx (your Application/Client ID and not all zeores)
you may need to edit it manually to set it. This is necessary if Winamp was run as a limited-privilege user without the permission to change the settings file in the plugin folder.
Q: I'm seeing problems when I re-name the Discord application then try to use it with Rich Presence.
A: I've seen this problem too. It appears to be a bug in Discord. The way I've found to work around it is to delete and re-create a new application with the right name.
Q: If I want to build the plugin, what type of environment do I use?
A: The plugin is built using Visual Studio 2017 on a Windows 10 environment. It uses the v141 toolset and SDK version 10.0.17134.0. Other environments might work too.
VS Code is supported as well. See CONTRIBUTING.md for setup assistance including required libraries and paths.
Q: I have a question or other comment.
A: Please contact cmlandrews at gmail dot com. Thank you for your feedback!