Clone this wiki locally
Here is a list of scripts that users of mpv have published, adding functionality that is not part of the core mpv player. Most of these scripts are unofficial 3rd party scripts. Anyone can add their own script by editing this wiki.
Automatically crop the video by using lavfi's cropdetect filter to detect black bars.
To adjust monitor refresh rate and video speed for almost 1:1 playback. (*nix)
To adjust monitor refresh rate and video speed for almost 1:1 playback. (Windows)
Automatically deinterlace the video by using lavfi's idet filter to detect interlaced content.
Intelligently switches mpv's "keep-open" behavior based on whether you are running in video-mode or audio-only mode.
Automatically load playlist entries before and after the currently playing file, by scanning the directory.
Automatically apply profiles based on predicates written as Lua expressions.
Automatically download subtitles using subliminal.
Loads the next or previous playlist entry if there are no more chapters in the seek direction.
Script to quickly convert and crop videos from within mpv, with a GUI.
Cycle between deinterlacing, pullup (IVTC), and both filters off.
Cycle between custom OSD messages.
Allows you to perform video rotation which perfectly cycles through all 360 degrees without any glitches.
Cycle through DRC (dynamic range compression) modes during runtime.
It removes the logo of the channels in a video (press n)
It removes the frame of youtube videos (press g)
Manually crop a video during playback.
5-bands equalizer with colorful display.
Allows you to quickly create excerpts from media files, you just have to set begin and end markers.
Navigate directories and open files from your system.
(Down)load subtitles with subliminal.
Automatically adjust playback speed to synchronize the video to the display if possible (eg. by adjusting 23.976 Hz to 24 Hz for better compatibility with a 60 Hz display). Obsolete: mpv now has a native display-sync option.
Adds mpris support to mpv.
Displays filename, percentage watched, current chapter, and number of frames dropped in the OSD media title and updates it whenever one of the values has changed.
Show frame info, similar to ffdshow's OSD.
Cut uncompressed fragments of the video.
Adds a pop-up menu to mpv, which can be bound to a key or button
Very powerful conditional logic and multiple action engine for your keybindings, without having to write a single line of code!
Marks currently watched episode on MyShows website.
Force opens next or previous file in the currently playing files folder.
Adds desktop notifications to the mpv media player, which show metadata like artist, album name and track name when the track changes.
Disables the ontop property when pausing, and enables it again when unpausing the video, if it was disabled.
Disables the ontop property when pausing, and enables it again when unpausing the video, if it was disabled. Change it only when the player is not in fullscreen to prevent screen flickering.
(Windows) Launches a regular Windows file open dialog for loading videos.
Pauses the player video when minimizing, and unpauses it when brought up again.
Allows streaming of magnet links using peerflix, similar to youtube-dl.
Adjusts audio pitch in half-tone steps.
Helps with creating playlists, saving them and modifying your current playlist.
A minimalistic OSC replacement. It provides a small, unintrusive progress bar that persists at the bottom of the video window.
Quickly scale the video player to a target size, with full control over target scale and max scale. Helps you effortlessly resize a video to fit on your desktop, or any other video dimensions you need!
This script provides automatic reloading of videos that doesn't have buffering progress for some time while keeping the current time position. It also adds a keybinding to reload video manually.
A REPL for input commands that is displayed on the video window.
Seek to an absolute timestamp specified via keyboard input.
Automatically skip chapters matching a given list of regular expressions (eg. "OP" or "Opening").
Seeks forward until a black screen appears. Built to skip openings. Uses the lavfi blackdetect filter.
Display some statistics about the currently played file on-screen.
Provides for more network-glitch-robust caching of live streams by adjusting replay speed.
Keeps track of watched files locally, and creates playlists of unwatched files.
(OS X) Choose the VO based on if the laptop is on battery or not.
(Linux) Choose the VO based on if the laptop is on battery or not.
Take screenshots and convert images with waifu2x.
Automatically sets the display refresh rate to the one best suitable for the video played
Handles commands depending on where the mouse pointer is at, mostly for mouse wheel handling.
(OS X) Add subtitle or audio track to playing video file
(Linux) Browse dirs and files on OSD, and launch them with mpv.
If you want to write your own Lua scripts, have a look at the documentation of mpv's Lua interface.
A sharpen filter similar to using Unsharp Mask in Photoshop ported from SweetFX shader pack.
One-Pass Adaptive Sharpen
One-pass version of adaptive sharpen shader. Has built-in anti-ringing filter.
Chroma scaler that uses luma information for high quality upscaling.
The aim of this shader is to make corrections to the upscaled image. Works with regular scalers only, not prescalers.
Adds a tunable amount of grayscale noise to the output.
This is basically the equivalent (with some caveats) of mpv's built-in antiringing shader.
SuperXBR and Nnedi3
User shaders for prescaling. These shaders should cover most functionality that
prescale-luma=used to provide.
Use NNEDI3 to double the resolution of the video. This always performs a single doubling. Note that the vapoursynth-nnedi3 filter is so slow that this practically can't be used in realtime, so it's not much use in practice.