Customize MPV player for better usability

Customize MPV Media Player

MPV player is one of the most widely used media players used on Windows, Linux and macOS. It is an extremely lightweight player, and you have to customize it according to your need. We have already discussed the differences between the VLC media player and an MPV player, so if you are not into customizations and just need to have a video player that “just works,” then the MPV player might not be for you.

As a user who has used a VLC media player his whole life, I found certain things which I didn’t like about this player, such as the Keyboard shortcuts and the overall look of the player. So I changed it using Lua scripts available on GitHub and a few custom key bindings. In this tutorial, we are going to discuss exactly those customizations which will make it feel more like a VLC player.

Installing MPV player

This is the starting point, let’s first install it on your distribution before doing anything. Open a Terminal and type the following commands, depending upon your distribution :

# On Debian and Ubuntu based distributions
sudo apt update && sudo apt install mpv

# On Arch Linux based distribution
sudo pacman -S mpv

# On Fedora Workstation
sudo dnf install mpv

When you first play any file using this player, you will be greeted with an Interface which looks something like this :

Mpv Player Interface
Mpv Player Interface

Customizing MPV player

Now, let’s start customizing, open your terminal and type the following command to clone scripts from GitHub :

git clone https://github.com/maoiscat/mpv-osc-modern

You can use any theme listed on this page.

CLone The Github Repository
Clone The GitHub Repository

Now, let’s create a directory which will store all of our scripts and will be utilized by MPV :

mkdir ~/.config/mpv/scripts

Now, from the cloned directory, let’s move the Lua scripts into our newly created directory. Type :

mv mpv-osc-modern/modern.lua ~/.config/mpv/scripts

Create another directory which will host the font required by this script :

mkdir ~/.config/mpv/fonts

Again, move the font in this directory by typing :

mv mpv-osc-modern/Material-Design-Iconic-Font.ttf ~/.config/mpv/fonts

Well, that’s it, open any file now to check what mp looks like now :

MPV Player New Interface
MPV Player New Interface

I’ve also added other scripts such as file-browser, autoload, and cover-art. You can add them using the above method.

There are many more scripts listed on this page, so you can install any of them that suits your needs.

Now, This part is optional, but I have also changed the key bindings of various actions, you can also do this by creating a file named input.conf using your favourite text editor, type :

# For Vim users 
vim ~/.config/mpv/input.conf

# For nano users
nano ~/.config/mpv/input.conf

Press ‘I’ to get into insert mode if you are using vim. My config file looks something like this :

Custom Keybindings For Mpv Player
Custom Key bindings For MPV Player

The above configuration does the following :

  • ‘The up arrow key’ increase the volume by 5 units
  • ‘Down arrow key’ decreases by 5 units
  • ‘Mouse/Touchpad scroll up’ increases the volume
  • ‘Mouse/Touchpad Scroll down’ decreases the volume
  • ‘Swiping left on touchpad’ goes 5 seconds back
  • ‘Swiping right on touchpad’ goes 5 seconds forward
  • ‘n’ Key will play the next media in the playlist
  • ‘p’ key will play the previous file in the playlist

If you are using vim, then press the Escape key and type :wq to save and exit. If you are using nano editor, then press Ctrl+O and Ctrl+X to save and exit.

You should also edit the mpv.conf file to suit your needs, open it in either vim or nano using :

vim  ~/.config/mpv/mpv.conf

# OR

nano ~/.config/mpv/mpv.conf

Add the following lines :

save-position-on-quit=yes
# The default volume of mpv when you open it
volume=90
blend-subtitles=yes
screenshot-directory=~/Pictures/Screenshots
screenshot-format=png
osc=no
# You should read about Hardware acceleration on mpv to choose your correct settings
hwdec=vaapi
# Display English Subtitles if available
slang=en
# Defalt audio language
alang=en

Press Ctrl+O and Ctrl+X to save and exit if you are using nano and press the Escape key and then type :wq to save and exit out of vim editor.

Enable the ‘autoload’ script by adding a file named autoload.conf file in the script-opts directory :

vim ~/.config/mpv/script-opts/autoload.conf
# Or
nano ~/.config/mpv/script-opts/autoload.conf

Add the following lines :

disabled=no
images=yes
videos=yes
audio=yes
ignore_hidden=yes

Again, save and exit out of your editor.

If you have enabled the file-browser script, then you can access the file browser from the terminal by pressing Ctrl+O key, and navigating between the directories using the arrow keys on your keyboard.

File Browser In Mpv
File Browser In MPV Player

In the above screenshot, I have used a theme named modern-x-compact, and you can get it from here.

Summary

The possibilities are endless here, you can basically add scripts to download subtitles automatically, stream torrents and many more. You can even use an MPV player as an Image viewer. The functionality is definitely much more that a VLC media player, but that requires spending time in the Terminal, which is why many people choose to go with VLC. Hopefully, this tutorial helped you with making MPV more beautiful to look at and easy to use.