Discord Rich Presence for video players on Windows: shows your film or TV episode with poster as a Watching card. PotPlayer, VLC, MPC-HC, mpv & more.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Show what you're watching on Discord. Media RPC is a free Discord Rich Presence app for Windows. It detects the film or TV episode playing in your video player (PotPlayer, VLC, KMPlayer, MPC-HC, MPC-BE, SMPlayer, mpv, GOM Player) and displays it on your Discord profile as a "Watching ..." card, complete with poster, season and episode, and episode title.
Windows only. No Python, no API keys, no setup: download the exe and run it.
1080p, x265, BluRay, English, Sinhala Sub and site tags like [CineSubz.com].PotPlayer, VLC, KMPlayer, MPC-HC, MPC-BE, SMPlayer, mpv and GOM Player.
Windows Media Player and the Windows 11 "Media Player" app don't put the film name in their window title, so they can't be detected.
MediaRPC.exe from the Releases page.C:\Apps\MediaRPC\) and double-click it. "Start with Windows" uses the location of the exe, so don't move it afterwards without toggling the option off and on.You only need Windows and the Discord desktop app. The Discord Application ID is built in, so there's nothing to create or configure, and you can copy the exe to other PCs.
Windows SmartScreen may warn about an "unrecognized app" because the exe isn't code-signed. Click More info > Run anyway.
^ arrow next to the clock).Media RPC checks GitHub Releases shortly after it starts and then every 6 hours. When a newer version exists, the window shows Update available with an Update and restart button. Nothing is installed until you click it.
What happens when you click:
MediaRPC.exe and its MediaRPC.exe.sha256 checksum are downloaded from this repository's Releases page.Good to know:
C:\Program Files), or you run from source, the button opens the download page instead.| Step | What happens |
|---|---|
| 1. Find the player | Looks for a supported player window and reads its title. |
| 2. Parse the name | Handles S01E01, 1x01, Show - 05, Title (2025), Title.2010.1080p... and similar. Quality, language and site tags are removed. |
| 3. Look up artwork | Series: TVmaze, then IMDb. Films: iTunes, then IMDb, then Wikipedia. Episode names come from TVmaze. |
| 4. Show the card | Sent to Discord as a "Watching" activity with the poster as the large image. |
Good to know:
parse_filename in media_info.py.When the player reports its position and length, the Discord card shows a progress bar (like Spotify or Crunchyroll) instead of a plain timer. Media RPC re-reads the position every few seconds, so seeking, pausing and resuming keep the bar correct.
| Player | Progress bar | Setup |
|---|---|---|
| PotPlayer | Yes | None. Read through PotPlayer's own remote messages. |
| VLC | Yes | Turn on the web interface once (below). |
| MPC-HC, MPC-BE | Yes | Turn on the web interface once (below). |
| KMPlayer, SMPlayer, mpv, GOM Player | No | They don't share their position. You get the elapsed timer. |
VLC: Tools > Preferences > bottom-left Show settings: All > Interface > Main interfaces, tick Web. Then open Main interfaces > Lua and set a Lua HTTP password. Restart VLC. In Media RPC, open Settings, type the same password, and press Test.
MPC-HC / MPC-BE: View > Options > Player > Web Interface, tick Listen on port (default 13579). Press Test in the Media RPC settings.
Good to know:
127.0.0.1 (your own PC). The VLC password is stored in plain text in your Media RPC settings file.Open Settings in the app window (or the tray menu). Checkboxes apply immediately.
| Setting | What it does |
|---|---|
| Hide my status while the video is paused | Removes the card from Discord while paused and brings it back when you resume. Off: the card says "Paused". |
| Hide the "Get Media RPC" button | Removes the button from the card. |
| Privacy mode: hide the film name | Discord only shows "Watching ". No title, poster or episode, and a local file's name is not looked up online. The progress bar still works. |
| Detect films on websites in my browser | See Films on websites. |
| Show a progress bar when the player allows it | See Progress bar. |
Media RPC can also show a film you're watching in your browser (Chrome, Edge, Firefox, Brave, Opera, Vivaldi). It is on by default, with nothing to set up. You can switch it off in Settings > Websites.
CineSubz). Only those tabs are used, even without sound.How it decides what to show:
Limits:
The card includes a Get Media RPC button linking to this repository. Change the label or link with PROJECT_BUTTON and PROJECT_URL in media_rpc.py.
Discord only shows Rich Presence buttons to other people, never on your own profile. To check it works, ask a friend to open your profile (on the desktop app) while you're watching, or use a second account.
Add a line to the PLAYERS list in players.py: a display name, the start of the process's exe name (lowercase), and a regex for the player name as it appears in the window title.
Player("MyPlayer", ("myplayer",), r"MyPlayer"),
The text after "Watching" is the name of the Discord Application. Open the Discord Developer Portal, pick your application, then go to General Information > Name and rename it (for example "Media Player"). The Application ID stays the same.
When no poster is found Discord shows a "?" placeholder. To replace it, upload an image named default_poster under Rich Presence > Art Assets in the Developer Portal. It is used automatically.
Requires Windows and Python 3.
pip install -r requirements.txt
python media_rpc.py
To use your own Discord Application, change CLIENT_ID in media_rpc.py.
Pushing a tag that starts with v (for example v1.6.2), or publishing a release in Releases > Draft a new release, triggers GitHub Actions to build MediaRPC.exe and attach it, together with MediaRPC.exe.sha256, to the release. The tag becomes the app's version number, and installed copies of Media RPC will offer it as an update once the exe is attached. Use a higher version than the previous release (v1.6.2 after v1.6.1).
Without a tag, run Actions > Build Windows exe > Run workflow and download the result from Artifacts.
| File | Purpose |
|---|---|
media_rpc.py | App window, tray and the Discord Rich Presence worker |
media_info.py | Filename parsing and poster / episode lookup |
players.py | Supported players and window-title detection |
web_tabs.py | Reads film names from browser tab titles, for the sites you list |
playback.py | Playback position and length for the progress bar (PotPlayer, VLC, MPC-HC/BE) |
settings_window.py | The Settings window |
app_settings.py | Settings shared between the window and the Discord worker |
theme.py | Colours used by the windows |
system_integration.py | Start with Windows and single-instance handling |
updater.py | Online updates: version check, verified download, exe swap |
app_version.py | App version (set from the release tag when building) |
app_icon.py | Generates the app icon |
site/ | The download website (static HTML, deploys to Vercel with root directory site) |
film name - Player name, or be just the file name with its extension. Check that your player is in the list in players.py.media_info.py.