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:
Tested on
This plugin is for Windows 7/8/10+ x86-compatible environments.
Example:
Q: Winamp, really? In {current year}?
A: Yep
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:
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.
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.)
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 for 3rd party plugins to change this UI element. The status for Spotify worked because Discord gave Spotify special treatment. If the RPC library adds flexibility of changing this, I'd be interested in adopting it.
Update (6/28/2019): Discord is distributing a new SDK called GameSDK to eventually replace the RPC SDK this uses. The docs say the new SDK supports the ability to customize this. But when I tried it, it didn't work. I had a weird back-and-forth with Discord folks about it. They told me basically it's there but not hooked up.
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. 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.
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: Setting expectations: I've started focusing my attention on other projects. So I don't have capacity to do this maintenance on this project any more. If you reach out or open issues you might have a better result investigating them yourself.