Discord Rich Presence integration for mpv Media Player

cniw cniw Last update: Nov 13, 2023

mpv-discordRPC

Discord Rich Presence intergation for mpv Media Player


This is alternative version, edited from mpv-discordRPC. I add metadata tags (Title, Artist and Album) support for 'details' and I use status-line for 'state'. I use 'elapsed' time mode when idle, while when playing, paused, and buffering use 'left' time mode. I add support and installer script for Linux, Mac and Windows. I also add custom configuration file and new features: info, cover art, url detections, and active/inactive toggle.

For more description read below.


Previews

Description Image
Idle Idle
Playing Playing
Paused Paused
Info: playlist and loop Info: playlist and loop
Cover art Cover art
YouTube playing YouTube playing
Crunchyroll paused Crunchyroll paused
SoundCloud playing SoundCloud playing
LISTEN.moe paused LISTEN.moe paused

Used softwares

  1. Provided by user: mpv, Discord
  2. Included: Discord RPC, status-line, lua-discordRPC
  3. Optional: Python, pypresence

Downloads

  • Latest Releases download
  • All Releases download

Installation

  1. For Linux, installing just run install-linux.sh on terminal.
  2. For Windows, installing just run install-win.bat by double-clicking it.
  3. For Mac, installing just run install-osx.sh on terminal.

Settings

Just edit mpv_discordRPC.conf file in script-opts folder. Now Available 2 rpc_wrapper option, choose one. Example:

  • Configuration (A) rpc_wrapper and periodic_timer

    rpc_wrapper=lua-discordRPC
    periodic_timer=1
    
  • Configuration (B) rpc_wrapper and periodic_timer

    rpc_wrapper=python-pypresence
    periodic_timer=3
    

Setting to show playlist info and loop info. Example:

  • Configuration playlist_info and loop_info

    playlist_info=yes
    loop_info=yes
    

Setting to show cover art. Example:

  • Configuration cover_art

    cover_art=yes
    

Setting to active/inactive toggle the Discord RPC and the start states. Example:

  • Configuration active and key_toggle

    active=yes
    key_toggle=D
    

To use rpc_wrapper=lua-discordRPC, Important LuaJIT on mpv

Check LuaJIT, because it has FFI Library and it needed by lua-discordRPC.

  1. For Linux

    • Make sure your mpv binary linked to luajit~~ not lua~~ library.

      ldd $(which mpv) | grep luajit
      libluajit-5.1.so.2 => /usr/lib/x86_64-linux-gnu/libluajit-5.1.so.2 (0x00007f32e9a83000)
    • If it's dynamic build while it's static build you can check with

      mpv -v -V | sed -rn 's/.*(luajit).*/\1/p'
      luajit
  2. For Windows (Don't worry)

    • You can skip this because available mpv Windows build by lachs0r and shinchiro already use LuaJIT and it static build which configured with --enable-static-build.
  3. For Mac (So sad)

    • Until now, LuaJIT still have problem on Mac OS X. Also build mpv with LuaJIT on Mac OS X (read mpv issue #1110), it maybe can build successfully but still can't load LuaJIT properly when run mpv (read mpv issue #5205). You can check with otool command.

To use rpc_wrapper=python-pypresence, Important to install pypresence

Support Mac, Windows, and Linux because can use with Lua or LuaJIT.

  1. Install Python >=3.5 because this version has asyncio library which needed by pypresence.
  2. Install pypresence pip install pypresence or pip install https://github.com/qwertyquerty/pypresence/archive/master.zip use pip3 instead of pip if Python 2 still installed on your old machine.

You may want to check again, run command mpv -v -V and find luajit or lua word on the line which beginning with [cplayer] List of enabled features: for Mac, Windows or Linux.


Testing

  1. Open your Discord then,
  2. Open your mpv then,
  3. Back to Discord and then check your profile.

Good Luck and have a nice day.

Feedback: If you have question, problem or request, please make new issue or contact me wachidadinugroho#7674 via Discord.

Subscribe to our newsletter