Skip to content
A Farzat edited this page Nov 12, 2024 · 838 revisions

User Scripts

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. On GitHub mpv scripts are tagged as mpv-script.

Scripts are usually placed in:

OS Location
GNU/Linux or macOS ~/.config/mpv/scripts/
Windows C:/Users/Username/AppData/Roaming/mpv/scripts/

Lists of mpv scripts

  • Awesome-mpv
    Categorized list, updated 1-2 times per year.

JavaScript

  • Auto Load Fonts
    Auto load the font files in the fonts folder under the play file path.

  • copyTime
    Get the current time of the video and copy it to the clipboard with the format HH:MM:SS.MS .

  • gallery-dl-view
    Load image galleries directly in mpv like gallery-dl_hook but with extra functionality like binding a key to download images, optionally only loading images that are new since the gallery was last opened, and more.

  • mpv-assrt
    Download subtitles from assrt.net, with interactive OSD menu.

  • mpv-chapters
    Display chapters and allow you to jump to them with a mouse click. (Preview)

  • mpvDLNA
    A plugin to allow mpv to browse and watch content hosted on DLNA servers. Also supports sending wake on lan packets by MAC Address.

  • mpv-javascript-http (for developers)
    Http client for mpv javascript scripts (based on curl)

  • mpv-remote-node
    Hosts a Node.js server, which then can be used to control mpv remotely from an Android app.

  • mute-on-specifc-subtitle-words
    Mutes & hides subtitles that contain specified words (can be user defined). Restores previous volume and subtitle visibility when the subtitle that contained specified word(s) finishes. Uses word boundary regex matching to minimise false positive matches.

  • PureMPV
    Get the file path, timestamps, and cropping coordinates, for ffmpeg, all from within mpv with just one copy.

  • screenshot-mosaic Create a mosaic of an images like what MPC-HC does. (Preview)

  • screenshot-to-clipboard
    Generates a temp screenshot file on desktop then copy to clipboard. (Windows only)

  • seek-show-position-v2
    Shows the position and duration when seeking formatted as 01:10:00 / 01:20:00.

  • btime
    Shows a shorter time format when seeking: 0:15 / 3:10, 08:20 / 55:00, 0:00:05 / 1:30:14. Now configurable with format=mpc-hc or youtube.

  • bstat
    Calculates new user-data properties (req mpv v0.36) including avg-bitrate, rounded file-size, exact aspect ratio, etc. Output to terminal or OSD. Updates when a new file is loaded or on demand.

  • store-shaders
    Store current glsl-shaders config on first run, this config will then be restored by subsequent calls.

  • switch-shader
    Provide a switch to disable/restore shaders and vf filters.

  • takeSsSequence
    Take a sequence of equispaced screenshots.

  • toggle-shuffle
    This simple mpv script allows you to toggle shuffle on/off during playback.

  • webtorrent-mpv-hook
    Adds a hook that allows mpv to stream torrents. It also provides a osd overlay to show info/progress.

  • writeedits
    Writes a selection of filters (crop, rotate, flip, delogo, start/end loop time) to a file for later batch processing with ffmpeg.

  • npm packages (for developers) by tag

    • @types/mpv-script
      TypeScript definitions for builtin mp modules and globals.

    • mpv.d.ts
      Another TypeScript definitions for mpv JavaScript API.

    • mpv-promise
      Promise polyfill for mpv JavaScript runtime.

    • mpv-assdraw
      mpv assdraw module for JavaScript.

  • VideoPlayerCode scripts (see Install-Notes below)

    • Blackbox - Advanced, modular media browser, file manager and playlist manager for mpv.

    • Colorbox - Apply color correction presets.

    • Gallerizer - Image gallery autoloader for mpv.

    • Leapfrog - Effortlessly jump through your playlist, with your own custom jump size and direction, including the ability to jump randomly. Excellent when queuing lots of images and using mpv as an image viewer.

    • JS Modules for developers - Tons of pre-written, open source JavaScript modules which helps you rapidly create your own JS user scripts (including a very helpful script config system based on mpv's Lua mp.options API). All modules are free to use (and extend) in your own scripts!

    VideoPlayerCode Install-Notes

    • The VideoPlayerCode scripts and modules use options at the dir ~~/script-settings/ (instead of the standard ~~/script-opts/ which is used by the builtin mp.options.read_options).

    • The original installation instructions for the scripts are outdated. To install one of the VideoPlayerCode scripts, e.g. Blackbox.js, do the following:

      • Inside your scripts dir create a dir Blackbox, and into it copy the file Blackbox.js from the original distribution, as well as the directory modules.js (with all the files it contains).
      • Inside the Blackbox dir: rename the file Blackbox.js to main.js, and rename the dir modules.js to modules.
  • mpv-easy
    TS and React toolkit for mpv script. https://github.com/mpv-easy/mpsm-scripts.

  • mpsm
    mpsm is a mpv script manager, you can install scripts provided by mpsm-scripts, or install any script with added meta info via url.

Lua Scripts

If you want to write your own Lua scripts, have a look at the documentation of mpv's Lua interface.

  • abs-screenshot
    Uses Exiftool to get the "Date/Time Original" and saves a screenshot with the name being the actual time the video was taken.

  • acompressor
    Dynamic range compressor using acompressor ffmpeg filter with controls to dynamically adjust parameters.

  • adevice-list
    Interractive audio-device list menu.

  • aspeed.lua
    Multi-stereo speed randomization & tri-color clocks. Applies arbitrary speed formula & has chipmunk mode for left-channel. Also has double-mute insta-toggle. Primary channel may be left or right. A filterchain applies to all speakers - each its own mpv. Has many script-messages. For mpv v0.34→v0.38, SMPlayer, Windows, Linux, MacOS, Android, YouTube, mp4, mp3, jpg, etc. But no randomization for Android. (Example clock).

  • audio-balance
    Port of mpv's balance property to FFmpeg lavfi pan filter.

  • audio-dupe
    Runs a child process to play a second audio stream. Synced through named pipe. Recommend using with cycle-adevice to change the output device of the parent process.

  • audio-file-keys
    Automatically apply key bindings when playing audio files.

  • Audio WebDAV & Sub WebDAV
    Auto connection of external subtitles and sound, using the "WEBDAV" protocol. The connection is explicit due to explicitly specifying folders on the WebDAV server.

  • autochapters
    Automatically finds chapters for your anime files.

  • autocomplex.lua
    Animated accurate stereo spectrum overlay, with volume bars. Has many options for showfreqs, showvolume, moving overlays, colormixes, normalizers, interpolation, etc. Easy to distinguish stereo from mono. Has many script-messages. For mpv v0.34→v0.38, SMPlayer, Windows, Linux, MacOS, Android, YouTube, mp4, mp3, etc. Example of dual-complex.

  • autocrop
    Automatically crop the video by using lavfi's cropdetect filter to detect black bars.

  • autocrop.lua
    Variation crops black bars off videos & images while maintaining center in horizontal & vertical. Double-mute toggles the crop & auto_aspect. Has tolerance options, & varies limit (& start/end limits) with media-title. Can display all cropdetect or bbox metadata. Handles transparent input. Has many script-messages. For mpv v0.34→v0.38, SMPlayer, Windows, Linux, MacOS, Android, YouTube, mp4, mp3, jpg, etc. Example of auto_aspect btwn 16:9 & 4:3.

  • autodeint
    Automatically deinterlace the video by using lavfi's idet filter to detect interlaced content.

  • auto-keep-gui-open
    Intelligently switches mpv's "keep-open" behavior based on whether you are running in video-mode or audio-only mode.

  • auto-mode
    Allows to automatically switch between video, audio and image mode.

  • autoload
    Automatically load playlist entries before and after the currently playing file, by scanning the directory.

  • autoloop
    Automatically loops files that are under a given duration (default 5 seconds).

  • automask.lua
    Applies filterchain to animated masked region with inversion (blinking) & invisibility. geq uses any formula. Smooth toggle with double-mute. Comes with 14 examples, including blinking monacle, binacles, pentagon, spinning triangle, scanning visors etc. Has many script-messages. For mpv v0.34→v0.38, SMPlayer, Windows, Linux, MacOS, Android, YouTube, mp4, mp3, jpg, etc. Example mask.

  • auto-save-state
    Periodically saves progress with write-watch-later-config, and also cleans up the watch later data after the file is finished playing (so playlists may continue at the correct file).

  • autosave
    Periodically saves "watch later" data during playback, rather than only saving on quit. Newer fork: https://gist.github.com/CyberShadow/2f71a97fb85ed42146f6d9f522bc34ef

  • autoselect-forced-sub
    Automatically select forced subtitles in a different way.

  • autospeed
    To adjust monitor refresh rate and video speed for almost 1:1 playback. (*nix)

  • autospeedwin
    To adjust monitor refresh rate and video speed for almost 1:1 playback. (Windows)

  • autosub
    Fully automatic subtitle downloading. No hotkeys required.
    Clear setup instructions for Windows, Mac and Linux.

  • autosub
    Automatically download subtitles using subliminal.

  • autosubsync
    Automatically sync subtitles using ffsubsync.

  • betterchapters (update)
    Loads the next or previous playlist entry if there are no more chapters in the seek direction.

  • blackout
    A fast crossplatform boss-key, but without window minimization (and possible problems with some VO drivers).

  • blur-edges
    Replace black bars with a blurry copy of the video

  • bookmarker-menu
    A bookmarker menu to manage all your bookmarks in MPV, based on mpv-bookmarker but with a menu

  • bookmark
    Record and resume last play in current playing folder

  • boss-key
    Minimise and pause video at the same time. Windows/Linux. Eliminated the time lag in previous versions.

  • boss-key-waylnad Minimise and pause video at the same time in Linux through xdg-portals.

  • btfs-hook
    Allows streaming torrents using FUSE via btfs.

  • btfs-stream
    Allows streaming torrents using btfs. As far as I can tell, it is much simpler than the above scripts (no long shell script execution) and much more configurable (the other scripts have no settings). This is much slower than using webtorrent though, so I recommend using webtorrent-hook instead.

  • celebi
    An optimized script to restore properties from past sessions. Alternative to persist-properties and remember-props scripts.

  • censor
    Skip over parts of videos you don't want (others) to view

  • channel mixer
    A set of keybindings using a modifier (Shift or Ctrl) and the function keys (F8-F12) to can adjust the mixing level of surround channels on the fly.

  • chapter-converter
    Converts chapter format between YouTube (e.g., "00:10 chapter title") and mpv (FFmpeg metadata).

  • chapter-make-read

    • Automatically read an load the namesake external chapter file with extension of CHP.
    • Temporarily mark the current playback position as a chapter so you can seek to it later. Also allows writing current chapters as CHP or XML. Based on createchapter.
  • chapters_for_mpv
    Add, remove and edit chapters of the currently played media, be it video or audio, local file or a stream. Chapters you create can be saved into a separate text file and automatically loaded when you open the same media file again.

  • chapterskip
    Automatically skip chapters based on title.

  • chapter-list
    Interractive chapter-list menu.

  • chapters-menu
    List all chapters of current video, search and choose any.

  • clipboard
    Provides a set of generic commands to interact with the clipboard. Specifically it allows user to copy arbitrary text to the clipboard and provides the ability to paste the contents of the clipboard into other commands.

  • command_palette
    Searchable menu for bindings, playlist, chapters, profiles, all tracks, audio tracks, video tracks, subtitle tracks, secondary subtitle tracks, subtitle lines, commands, properties, options, audio devices, Blu-ray titles, stream quality, aspect ratio, recent files.

  • control
    Various features mainly for controlling playback.

  • copy to music
    Copies the current media file you're playing to a predefined directory, and plays the next entry in the playlist (Unix-like)

  • copyTime
    Get the current time of the video and copy it to the clipboard with the format HH:MM:SS.MS .

  • copyStuff
    Copy to clipboard the filename or URL, full filename path, current video time, current displayed subtitle text, video duration/metadata.
    Based on Arieleg's mpv-copyTime.

  • copy-paste-URL
    Paste URLs directly from clipboard into mpv.

  • countdown
    Display a countdown on OSD for the final seconds of the video (or music file).

  • cp-paste-URL
    a fork of copy-paste-URL with support for linux.

  • Tcl/Tk context menu
    Configurable context-menu based on Tcl/Tk, for *nix/Windows and probably macOS too.

  • change-screen-by-aspect-ratio
    Change the active fs-screen based on video's aspect ratio (for systems with monitors in landscape and portrait orientations)

  • clock
    Constantly show current time on the lower left corner of the video screen.

  • clipshot
    Screenshot the video (with subs, without subs or the whole window) and copy it to the clipboard. For Windows, Linux/BSD and MacOs

  • config-saver
    Saves current audio track, subtitle track, subtitle position, etc. for all videos in the folder.

  • confluence
    Open magnet links using confluence HTTP service. Recommended to use modified script for TorrServer instead.

  • contact-sheet
    Display thumbnails of the current file in the style of a contact sheet

  • convert_script
    Script to quickly convert and crop videos from within mpv, with a GUI.

  • coverart
    Automatically load external music cover art

  • copy-permalink
    Copy mpv --time=<current-position> <path-playing> to clipboard. Useful for sharing when playing URLs.

  • copy-subtitle
    Copies currently displayed subtitle line to clipboard. Cross-platform (Mac, Windows, Linux)
    Video demonstration

  • copy-timestamp
    Copies current timecode in HH:MM:SS.MS format to clipboard. Cross-platform (Mac, Windows, Linux)
    Based on Arieleg's mpv-copyTime
    Video demonstration

  • createchapter
    Temporarily mark the current playback position as a chapter so you can seek to it later. Also allows writing current chapters as XML.

  • crop
    Crop the video by defining the target rectangle with the cursor

  • cropmode
    Adds a keyboard-oriented mode for cropping, outputting the result in a format suitable for ffmpeg.

  • curvesman
    Manipulate color curves filter of FFmpeg with hotkeys. Brighten up color, change color temperature/tone, hopefully more. Adjust yellow light tone to white light tone.

  • cycle-audio-device
    Cycle through available audio devices with key binds.

  • cycle-commands
    Allows input.conf commands to be cycled through with keybinds.

  • cycle-deinterlace-pullup
    Cycle between deinterlacing, pullup (IVTC), and both filters off.

  • cycle-denoise
    Cycle between lavfi's denoise filters (press n)

  • cycle_messages
    Cycle between custom OSD messages.

  • cycle-through-existing
    Cycle through existing video/audio/subtitle tracks, skipping the "none" option.

  • cycle-video-rotate
    Allows you to perform video rotation which perfectly cycles through all 360 degrees without any glitches.

  • dbvol
    Replaces the default volume controls with a decibel (dB) scale instead of arbitrary percentages.

  • dessubdb
    Download automatically subtitles from the thesubdb.com using DESSubdb.

  • delete-current-file
    Move the currently playing file instantly to the recycle bin.

  • delete-file
    Provides the ability to delete files being played through mpv

  • locate-file
    Locate current media file on your OS file browser

  • deframe
    It removes the frame of youtube videos (press g)

  • delogo
    Remove channel logo from videos

  • drag-to-pan
    Pan the current video or image with the cursor.

  • drcbox
    Dynamic Audio Normalizer filter with visual feedback.

  • dualsubs utils
    Auto load dual subs; Auto reload dual subs; Swap primary/secondary subs position; Merge dual subs to one ASS sub.

  • dvd-browser
    A script to browse and load DVD titles using the lsdvd command-line utility

  • dynamic-crop
    Dynamically crop the video by using lavfi's cropdetect filter to detect hard-coded black bars for Ultra Wide Screen (21:9) or any screen different from 16:9 (phone/old TV).

  • dyn_menu
    Context Menu script for mpv, with support for loading menu from input.conf.

  • easycrop
    Manually crop a video during playback.

  • encode
    Re-encode or remux part of the current video. Can also preserve some filters, such as "crop".

  • equalizer
    5-bands equalizer with colorful display.

  • evafast
    Fast-forwarding and seeking on a single key, with quality of life features like slowing down a bit when subtitles are shown.

  • excerpt
    Allows you to quickly create excerpts from media files, you just have to set begin and end markers.

  • excessive-history
    Excessive played media logger. Logs file name, time, and which parts were played. Will generate a history.txt in the mpv config folder. Only tested on Windows.

  • exit-fullscreen
    If you use --keep-open=yes, this script exits fullscreen mode when the playback reaches the end of file/playlist.

  • epgtv
    Simple EPG information for IPTV M3U playlist in mpv.

  • fade-on-exit Adds an additional key binding Ctrl-Q that, like Q, exits playback, but gracefully fades to black first instead of just cutting the video.

  • fastforward
    Instead of skipping forward in media files, speed up the playback for a few seconds. Playback speed decays back to 1x after a few seconds. Tap rapidly or hold down to go faster.

  • fast-forward
    Another fast-forward plugin with some added features and a bit more customization options.

  • ff-silence
    Fast forward through silences and quiet parts of audio. This is especially useful on videos where the speaker uses many long pauses.

  • filenavigator
    Navigate directories and open files from your system.

  • file-browser
    A script that implements an interactive file browser on the OSD, which allows one to browse their system and open or append files and folders to the playlist. The user can specify keybinds to perform custom commands on items and can download addons for advanced additional behaviour.

  • file-rating
    Write a star rating to the filename of the currently playing file.

  • filter-test
    Test mpv/FFmpeg video filter(vf) strings with editable popup dialog.

  • find_subtitles
    (Down)load subtitles with subliminal.

  • firequalizer15
    Linear phase 15-bands equalizer.

  • fix_sub_timing
    Compute the correct speed/delay of subtitles by manually synching two points in time.

  • force-window-profile
    Applies the force-window profile when force-window is set (i.e. when starting mpv from the .desktop file)

  • fpsadjust
    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.

  • fuzzydir
    Allows using wildcards for sub-file-paths and audio-file-paths.

  • gallery-dl_hook
    Load online image galleries (imgur, etc) as playlists using gallery-dl.

  • generate-edl
    Generate EDL files with a key binding.

  • gestures
    Touchscreen and mouse gestures for mpv.

  • gnome-inhibit Prevent the screen from blanking under GNOME+Wayland while a video is playing.

  • gpufreq
    Show current and maximum GPU frequencies for GPUs using the DRM stack on Linux.

  • groupwatch_sync
    Quickly get back in sync with a group watch by adjusting playback speed.

  • guess-media-title
    Uses guessit to detect a media title by filename and set force-media-title variable. Useful for getting cleaner screenshot file names.

  • histogram
    Exposes a configurable way to overlay ffmpeg histograms in mpv. There is a substantial amount of config available.

  • history
    Writes date, time, playtime and filename to a log file:
    10.09.2022 19:50 3 D:\Samples\Big Buck Bunny.mkv

  • history
    Autosave played media items in an SQLite database, restore last played position, select (with dmenu(1)) and play item from history. Very simple, easy to customize/modify (no options, just edit the code).

  • history-bookmark
    Create a history file to store the episode we watched last time. And let us easily jump to the video we watched last time.

  • KDialog-open-files
    Use KDE's KDialog to add files to playlist, subtitles to playing video or open URLs.

  • zenity-open-files
    Use GTK's zenity to add files to playlist, subtitles to playing video or open URLs.

  • mpv-youtube-search
    Use Zenity and youtube-dl to search youtube videos.

  • mpv-playlist-kdialog
    Use KDE's KDialog or GTK's zenity to show current playlist or select playlist entry.

  • image-config
    A configuration to use mpv as an image viewer.

  • image-viewer
    Configurations, scripts and tips for using mpv as an image viewer.

  • Immersive
    Versatile language learning script for generating Anki notes/cards with dictionary definitions, audio clips and screenshots from the current video, and word pronunciation audio. Also includes some other features that are useful for language immersion.

  • lang-learner Turn MPV into language learner tool. Includes: AB-loop current subtitle or auto loop each one, quick switch between lang you know and lang you are learning, forward to browser (dictionaries, translators), record for future extra learning, export to external script for integrations, and a bit more.

  • input-event
    Script for Enhanced input.conf with better, conflict-free, low-latency event mechanism.

  • interactive-video
    Script for watching interactive videos (such as Netflix's Black Mirror: Bandersnatch).

  • interSubs
    Interactive subtitles. Instantly translate selected word/sentence. Works on Linux, macOS.

  • rikai-mpv
    Integrated Japanese dictionary and parser to translate by hovering over words. Works on Linux.

  • lats
    The Low ATtention Span mpv script. Plays brief segments from random positions of one or more files, kinda like flipping through TV channels.

  • last.fm scrobbler
    Sends the information about playing tracks to last.fm, see http://www.last.fm/help/faq?category=99 for more info.

  • leader key
    Adds leader key to your mpv. With prefixes and which-key functionality. demo

  • libass_sub_selector
    Visually select individual subtitles a la PotPlayer.

  • lilskippa
    Skip to black, skip to silence, skip to scene change.

  • List chapters
    Shows chapters and their time at the bottom left corner. example

  • live-filters
    Add, remove or toggle ffmpeg video filters during mpv playback.

  • local-language
    Let the text displayed by mpv osd become the language you are most familiar with, that is, language localization, such as 【volume: 100%】 becomes 【音量:100%】.

  • loop-until
    Loop the video until a specified amount of time. (e.g. loop a 30s wallpaper video to 30min)

  • lrc
    Download synchronized lyrics of the currently playing song.

  • lua-mpris
    Adds mpris support to mpv.

  • lua-repl
    A Lua REPL in the console with Tab completion and pretty-printing of returned tables. It lets you test mpv's and Lua's API without writing a script.

  • main.lua
    Loads other scripts, hooks in yt-dlp, displays title, has subtitle override, loops short files, sets options (with delay), & has detailed commentary. Has many script-messages. For mpv v0.34→v0.38, SMPlayer, Windows, Linux, MacOS, Android, YouTube, mp4, mp3, jpg, etc. But no yt-dlp for Android. Example title.

  • matroska-crop
    Automatically crop video using the Matroska PixelCrop properties. Includes optional workaround for hardware decoding.

  • mdmenu
    A script to use dmenu for selecting audio/subtitle/chapters etc.

  • memo
    A recent files/history menu for mpv with optional uosc integration.

  • metadata-osd
    Adds OSD showing song name, album name and other metadata.

  • mfpbar
    A minimalistic progressbar and osc replacement.

  • minesweeper
    Minesweeper game.

  • misc

    • Show detailed media info on screen
    • Cycle audio and subtitle tracks, include only languages you know
    • Load or append files/URLs from clipboard
    • Jump to a random position in the playlist
    • Navigate in playlist to next/previous/first/last file
    • Restart mpv restoring the properties path, time-pos, pause and volume
    • Execute Lua code from input.conf
    • When seeking display position and duration like so: 70:00 / 80:00
  • ModernX
    A modern OSC UI replacement for MPV that retains the functionality of the default OSC.

  • ModernZ
    A fork of ModernX designed to enhance functionality by adding more features, all while preserving the core standards of mpv's OSC.

  • move-file
    A simple lua script to move your files to the watched folder for example.

  • awesome-osc
    An awesome osc UI replacement for MPV player.

  • mpegts-truncate
    Removes beginning of MPEG TS file up to current position without re-writing the whole file.

  • mpv-acestream
    Add AceStream protocol handler to mpv. Let the user open streams by dropping Acestream links into mpv GUI or by passing them as command line argument.

  • mpv-bluetooth-av-delay
    Adds desired A-V delay automatically, if default audio sink is a bluetooth device.

  • mpv-bookmarker
    Bookmark your favorite time on media files

  • mpv-BoxToWide
    A simple mpv script to change 4:3 aspect-ratio of video files/streams to 16:9 automatically.

  • mpv-Change-OSD-Media-Title
    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.

  • mpv_crop_script
    Take cropped screenshots directly within mpv, without the need for external dependencies.

  • mpv_discordRPC
    Discord RPC integration for mpv using lua-discordRPC as base.

  • mpv_discordRPC (alternative version)
    Discord Rich Presence integration for mpv Media Player. Added some features and support: Linux, MacOS and Windows.

  • mpv-discord
    A cross-platform Discord Rich Presence integration for mpv with no external dependencies. Consists of a Go binary for updating the presence and a Lua script for launching it.

  • mpvcord
    Discord integration for mpv, using the Game SDK instead of Discord RPC. Supports: MacOS and Windows. (Linux is not supported by Game SDK)

  • mpv_frame_info
    Show frame info, similar to ffdshow's OSD.

  • mpv-history
    Simple played media logger. Will generate a mpvhistory.log in the default mpv config folder (%APPDATA%/mpv/ or $HOME/.config/mpv/) in the format [$DATE $TIME] $PATH ($?MEDIA-TITLE). Only tested on Windows.

  • mpv-i3-floating-centered
    Show mpv window in the center of the display when it is in floating mode (i3wm)

  • mpv-jellyfin
    Plugin that turns mpv into a Jellyfin client.

  • mpv_manager
    User script and shader manager for mpv

  • mpv-manga-reader
    Script for using mpv as a manga reader.

  • mpvMatroska
    mpvMatroska turns mpv into a Matroska player.

  • mpv-osc-framework
    A simple toolbox to help you build your own osc.

  • mpv-osc-orange
    An osc/ui replacement of dark theme.

  • mpv-osc-simple

    An osc/ui replacement of white theme.

  • mpv-osc-modern-f
    mpv osc script forked from mpv-osc-modern.

  • mpv-pdf
    View PDFs in mpv using ImageMagick. Supports: Linux, MacOS

  • mpv_reduce_stream_cache
    Reduces MPV cache for streams by increasing playback speed. Works with Twitch through Streamlink.

  • mpv_irc
    Display lines from an IRC channel or any text file.

  • mpv_sponsorblock
    Script to skip sponsored segments of YouTube videos.

  • mpv-webp-generator
    Creates high quality animated webp using mpv hotkeys. (For windows only)

  • mpv-yledl
    Watch videos from YLE Areena in mpv using yle-dl

  • mpv-ytdlAutoFormat
    A simple mpv script that automatically adjusts ytdl-format (yt-dlp) for specified domains.

  • mpv2anki
    A simple way to add notes to Anki with Audio, screenshots and/or subtitles, with few dependencies.

  • mpvacious
    Make subs2srs-style Anki cards with automatically generated audio-clips and snapshots. Media files are saved in ogg/opus and webp formats to save space on AnkiWeb.

  • mpv-rename
    Rename files on the go directly from within MPV player window without leaving it.

  • mpvSockets
    creates one IPC sockets per mpv instance, instead of one socket for the last started instance. Supports: Linux, MacOS and Windows.

  • mpv_socket
    Creates one IPC socket per mpv instance. Configurable. Socket name can be modified while playing.

  • mpv_segment_length
    Displays the length of a segment from a designated point to any other point in a video.

  • mpv_sort_script
    Sort files and directories by name, age, size or randomly, recursively or when coming across a directory.

  • mpv_slicing
    Cut uncompressed fragments of the video.

  • mpv_slicing_copying
    A fork from mpv_slicing. It will cut fragments of the video in original format instead of RGB

  • mpv_thumbnail_script ⚠️ original, outdated release file
    mpv_thumbnail_script fork, updated release file
    Show preview thumbnails when hovering over the seekbar, without the need for external dependencies.

  • mpv-scripts

    • blackout - Couldn't find the "Boss key", but you don't want someone (or simply anyone) to see what you are watching?
    • fuzzydir - This script will read your paths from mpv.conf, find those which end with ** and explode them for good! For example, imagine we have a directory named subs, which contains a and b subdirectories.
    • reload - Sometimes you have unstable internet connection, or YouTube server dies, or your computer was sleeping for too long, or whatever. The thing is: you were watching something, you lost the connection, MPV doesn't want to play it further, you don't want to find the video again and then seek it to the moment you were watching.
  • mpv-slash-search
    Simple and lightweight script that allows you to search for a file in the playlist and play the first match.

  • mpv-taskbar-buttons
    Hackish script to add thumbbar media control buttons for mpv on Windows

  • mpv-twitch-chat
    Show Twitch chat messages as subtitles when watching Twitch VOD with mpv.

  • mpv-twitch-chat-irc
    Show Twitch chat messages as subtitles when watching Twitch LIVE with mpv.

    Based on mpv Twitch Chat for VODs, but since mpv-twitch-chat uses Twitch API to retrieve comments history, it doesn't support live chat comments. This script uses a python subprocess to keep a background irc connection to a channel and dump last 10 messages to file in SubRip format.

  • mpv-youtube-chat
    Overlay YouTube chat replays in mpv using yt-dlp.

  • mpv-txt
    Play text files using text-to-speech (TTS). (Works on Linux, MacOS; see Dependencies).

  • MPVMediaControl
    Integrate MPV with Windows System Media Transport Controls (the control buttons near the volume indicator thingy). See pic for reference.

  • mpv-volnorm
    Client-server setup to provide EBU R.128 volume leveling to MPV, even if files stored on a server and played on multiple machines. (Works on Linux, probably all Unix-like; server in Perl).

  • mpvcontextmenu
    Comprehensive context-menu forked from Tcl/Tk context menu. Uses other scripts (see Requirements).

  • mpvmenu
    Adds a pop-up menu to mpv, which can be bound to a key or button

  • multi-command-if
    Very powerful conditional logic and multiple action engine for your keybindings, without having to write a single line of code!

  • multiloop
    Loop over multiple A-B points (and save them for future use)

  • multisocket
    Creates a numbered socket for each instance of mpv

  • M-x
    A menu that shows all commands you have available, key bindings and commends (if present) and from which you can call any of those commands. demo

  • myshows
    Marks currently watched episode on MyShows website.

  • nextfile
    Force opens next or previous file in the currently playing files directory.

  • noAFK
    send virtual keystroke (default F15) during playback to prevent auto-AFK of some applications (requires Windows powershell).

  • notify
    Adds desktop notifications to the mpv media player, which show metadata like artist, album name and track name when the track changes.

  • mpv-notify Converging point for all forks of rohieb's notify scrip.

  • notify-send
    A simpler and more recent notifications script for libnotify-compatible (i.e. Unix-like) notifications daemons only. Supports cover art.

  • oled-screensaver
    To prevent burn-ins on OLED TVs, this script fades-in a black screen after 15 seconds when paused in fullscreen.

  • ontop-playback
    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.

  • ontop-only-while-playing Ontop is only active during video playback. Ontop is automatically disabled during idle, pause and is able to be dynamically disabled without having to restart unlike the previous script.

  • ontop-window
    Disables the ontop property when in fullscreen, and enables it again when in window mode, if it was disabled. Heavily inspired by ontop-playback.

  • open-anilist-page
    Opens the Anilist page that corresponds to the currently playing (anime) file.

  • open-dir
    A simple script that opens the current path of the file in the file explorer.

  • open-imdb-page
    Opens the IMDb page that corresponds to the currently playing media file.

  • open-in-explorer
    Opens directory and selects the currently playing file (Windows).

  • open-kinopoisk-page
    Opens the kinopoisk page that corresponds to the currently playing media file.

  • open-file-dialog
    (Windows) Launches a regular Windows file open dialog for loading videos.

  • osc-style
    Change the mpv osc to a more beautiful and practical look, which is the osc theme feature, a variety of styles to choose from,this is a tutorial and a preview.

  • osc-show-hide
    Toggles the on-screen controller with a hotkey
    Video demonstration

  • osd-bar
    Always show osd progress bar, with the more beautiful color matching in the configuration file, you can make the osd progress bar display the current progress at the bottom of the window beautifully,this is a preview.

  • osd-clock
    Periodically shows OSD clock (many configurable options).

  • osm
    Shows a customizable on screen menu, which is useful to navigate via remote control.

  • pause-indicator
    Displays a momentary icon that flashes in the middle of the screen, similar to YouTube.

  • pause-indicator-lite
    A simple script that displays an indicator on pause, with options to adjust icon, color, height, width, opacity and whether to toggle pause with a keybind or not.

  • permanent-pause-indicator
    Displays a permanent indicator in the middle of the screen while mpv is paused. Preview

  • pause-when-minimize
    Pauses the player video when minimizing, and unpauses it when brought up again.

  • peerflix-hook
    Allows streaming of magnet links using peerflix, similar to youtube-dl.

  • mpv-peerflix-hook
    Alternate version of the above gist that works with multiple running peerflix instances and only kills the correct peerflix instance when exiting.

  • pickshader
    Provides a ^R-esque interface for easily setting/appending to --glsl-shaders (this does not install shaders for you)

  • webtorrent-hook
    Allows streaming torrents using webtorrent (same as mpv-peerflix-hook but using webtorrent instead). Webtorrent-cli can play in mpv with webtorrent --mpv, but this script allows using torrent identifiers as the file argument to mpv or pasting them into the current playlist using one of the pasting scripts listed here. It also supports additional functionality like automatic file cleanup and the ability to remember the last file played in the torrent. See the readme for more information. See here for a comparison with the other javascript webtorrent plugin. I recommend this plugin over my others (mpv-peerflix-hook and btfs-stream).

  • persist-properties
    Keeps volume and other properties between sessions

  • pitchcontrol
    Adjusts audio pitch in half-tone steps.

  • playlistmanager
    This script allows you to see and interact with your playlist in an intuitive way.

  • playlist-navigator OSD display features easy navigation with scrolling and search to select files to play or remove from playlist.

  • playlistnoplayback
    If you enable the save play history and progress function, this lua script can solve the problem of automatically jumping to the previous playback progress when playing the next file when playing the playlist, that is, let the playlist always play the next file from the beginning every time. the limitations of this script, please see the comments section in the content.

  • playlist-view
    Display and navigate the playlist in a grid view of thumbnails.

  • pointer-event
    Mutually exclusive, low latency mouse/touch input event detection.
    Executes configurable commands on single-click, double-click, long-click and dragging.

  • progressbar
    A minimalistic OSC replacement. It provides a small, unintrusive progress bar that persists at the bottom of the video window.

  • profile-cycle
    Cycle between your custom defined profiles while watching the video.

  • quack
    Temporarily lower the volume after a seek to save your ears from unpleasant sudden volume changes.

  • quick-scale
    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!

  • radio-title
    Automatically fetch current playing title from webradio website when not provided by stream.

  • recent
    Recently played menu using a history log file in config directory, display using a hotkey or automatically when idle.

  • redshift_toggle
    Toggle redshift when loading a video file and when reaching the end of said file. Now also handles pause.

  • rename-sub
    Rename current subtitle file as the playing video

  • rewindPlaylist
    keybind to rewind to the end of the previous playlist entry

  • toggle-redshift-on-play (kill-restart-version)
    Based on the above one, this one also re-enables redshift when pausing and disables it again when unpausing.

    The alternative version achieves the same by killing and restarting redshift (more consistent).

  • touch-gestures
    Gestures for play/pause, speed, volume, seeking and next/previous playlist-item.

  • trakt-mpv
    Connects trakt.tv with mpv and automatically scrobbles movies/shows. (Python is also needed for this script to function)

    • trakt-mpv fork that lets you add episodes to your Trakt watched history instead of checking in
  • recent-menu
    Recently played menu for mpv integrated with uosc.

  • reload
    When an online video is stuck during buffering or got slow CDN source, restarting often helps. This script provides automatic reloading of videos that didn't have buffering progress for some time, keeping the current time position. It also adds Ctrl+r keybinding to reload video manually.

  • remember-props
    When a property changes, it saves it to restore on next start. Saved values are not file-specific. List of properties to save is configured in script-opts/remember-props.conf file.

  • repl
    A REPL for input commands that is displayed on the video window.

  • restore-subtitles
    Saves selected subtitle tracks and visibility state to saved-subs.json file in config directory and restores them whenever file is loaded. Differs from watch-later-saved data in that it saves secondary subtitles too (and uses subtitle file paths instead of ids).

  • review
    Allows to remove files viewed quickly from within mpv

  • russian-layout-bindings
    As mpv does not support shortcuts independent of the keyboard layout (https://github.com/mpv-player/mpv/issues/351), this script tries to workaround this issue for some limited cases with russian (йцукен) keyboard layout. Upon startup, it takes currently active bindings from input-bindings property and duplicates them for russian layout. You can adapt the script for your preferred layout, but it won't (of course) work for layouts sharing unicode characters with english.

  • save-sub-delay
    This script saves the sub-delay quantity for each file. When next time the file is opened, sub-delay is automatically restored.

  • save-playlist
    This script saves your playlist to the working directory of the mpv process.

  • seek-to
    Seek to an absolute timestamp specified via keyboard input.

  • Serkio Tagger
    Annotate videos with tags while you watch.

  • scale-win
    Restore old "window-scale" behavior, so to make "add window-scale +/-" keybinds work again when any of the autofit-* options are defined.

  • search-menu
    A searchable menu to quickly find keybinds, commands, properties and audio/subtitle tracks.

  • search-page
    Allows users to search for keybinds, commands, options, and properties, and have the results display on the OSD. Good for reminding oneself about forgotten keybinds without leaving the player.

  • segment-linking
    Adds support for matroska next/prev segment linking using the mkvinfo commandline tool.

  • separator
    Interactively copy or move the videos you wanna keep from a given playlist.

  • show-filename
    Show the name of the current playing file.

  • show-stream-title
    Show OSD stream/channel title when switching the IPTV channels from m3u playlist.

  • simple-loader
    (Linux) Browse dirs and files on OSD, and launch them with mpv.

  • simple-mpv-webui
    Web-based remote control.

  • skipchapters
    Automatically skip chapters matching a given list of regular expressions (eg. "OP" or "Opening").

  • skipsilence
    Increase playback speed during quiet parts of the file. Similar to the "Fast-forward during silence" feature of the NewPipe app.

  • skiptofade
    Seeks forward until a black screen appears. Built to skip openings. Uses the lavfi blackdetect filter.

  • skiptosilence
    This script skips to the next silence in the file. The intended use for this is to skip until the end of an opening or ending sequence, at which point there's often a short period of silence.

  • SmartSkip
    Automatically or manually skip opening, intro, outro, and preview, like never before. Jump to next file, previous file, and save your chapter changes! Much more explained in the link above.

  • SimpleBookmark
    Bookmark with a [ctrl]+[b], then list and access your bookmarks with [b]. Assign your favorites to a keybind then access your favorites with that same keybind. Much more explained in the link above.

  • SmartCopyPaste
    Powerful copy paste features. Paste URL or local videos directly to mpv. Copy URL or currently playing video in mpv player then paste to access at a later time. Add videos to playlist simply by pasting. Much more explained in the link above.

  • SmartCopyPaste_II
    Powerful copy paste and clipboard list features using a log file. Select, filter, and search from your clipboard list. Paste URL or local videos directly to mpv. Copy URL or currently playing video in mpv player then paste to access at a later time. Paste to access previously copied times of same video. Much more explained in the link above.

  • smart-volume
    Records the volume per file in order to restore it in future sessions. What is recorded and restored is the volume offset relative to the session average volume. For every song the last six sessions are recorded, the average of that is used.

  • SimpleHistory
    Powerful history features that logs videos that you opened into a log file along with the time you have reached on each video. Select, filter, and search from your history list, Optional resume by [ctrl]+[r] for all videos you have played. Much more explained in the link above.

  • SimpleUndo
    Simple undo feature. If you accidentally seek/jump to a different time in the video, press undo [ctrl]+[z] to return to your previous time and vice-versa. More details in the link above.

  • sosc
    An OSC supplement for OSC replacements. Provides the idle message and script messages from the original OSC.

  • UndoRedo
    Undo and Redo feature for mpv. If you seek/jump to a different time in the video, press undo [ctrl]+[z] to linearly undo the seeks/jumps in the video, and press redo [ctrl]+[y] to linearly return to previous undo positions. More details in the link above.

  • Sofalizer
    Simulates 7.1 surround sound to your headset. Get the sofa file from here

  • sopcast
    Adds support for sop:// urls.

  • speed-transition
    Increases playback speed if a subtitle will not be displayed soon. Resumes normal speed just before the subtitle shows up.

  • speed-transition-Audio
    Experiment similar to speed-transition. changes playback speed based on volume thresholds.

  • speed
    Changing speed based on regex of filename/path.

  • speed
    Always show current playback speed on the OSD

  • speed - adjusted timings
    Recalculates osd-msg3 timecodes with speed != 1

  • splice
    A script that helps you create a video out of cuts made in the current playing video.

  • spotify
    Add current playing title to an user defined Spotify playlist.

  • srt-resegment
    Resegment srt by synchronize plain text with whisper's word-level timestamps JSON.

  • submpv
    submpv is a python script to automate downloading and loading subtitle from subscence.

  • sub
    Select subtitle by id via input box (Windows)

  • stopCache
    stops the demuxer from downloading more if it is already past --end

  • subit
    Yet another script for downloading subtitles using subliminal. Supports better customization of options, such as easy language selection, authentication for providers that need it, and support for URLs.

  • subselect Tk
    Download subtitles with a GUI - select the one you want and automatically load them up in mpv. Supports searching for arbitrary names and different subtitle languages. Works on Windows and Linux, possibly macOS.

  • sub-cut
    Extract a part of the video as audio or video with subtitles.

  • sub-bilingual
    Generate bilingual subtitles.

  • sub-bookmarks
    Save current position and subtitles in .txt file.

  • sub-export ⚠️ original, outdated
    sub_export fork, updated
    Extract selected subtitles from .mkv file.

  • subtitle-lines
    List and search subtitle lines of the selected subtitle track.

  • sub-not-forced-not-sdh Prevents the selection of FORCED and SDH subtitles when you start playing a video with MPV:

    • Forced subtitles are subtitles that are displayed only for sections of the video that contain non-dialogue elements such as signs, captions, or foreign language translations.
    • SDH means Subtitles for the Deaf or Hard of Hearing. By modifying this script (see the README), you can also automatically select a subtitle language.
  • sub-playback
    Add interactive move, i.e. automatically pause at the end of the fragment with option to continue playback or replay it again with or without subtitles.

  • sub-replay
    Replay previous sentence.

  • sub-search
    Search for phrase in subtitles and skip to it.

  • subtitle-search
    Script to search for a phrase inside an active subtitle. Supports secondary subtitles too. Displays matched lines in OSD list, takes sub-delay into account and allows searching for Unicode text in utf8 subtitle files. Supports embedded and youtube-provided remote subtitles.

  • sub-select
    An advanced subtitle track selector that utilises the current audio language, and the language and titles of the subtitle tracks.

  • sub-sentences
    Generate subtitles with sentences.

  • sub-voracious
    Reading and listening practice.

  • sub-pause
    Automatically pause just before the end of each subtitle line. Also allows replaying the currently active line.

  • sub-skip
    Automatically skip parts of a video that don't contain any subtitles. Does so by either fast-forwarding or seeking.

  • subs2srs
    Automatically add new card in Anki with audio, picture and text.

  • sub-transition
    Speed up playback when no subtitles are visible.

  • stats
    Display some statistics about the currently played file on-screen.

  • streamcache
    Provides for more network-glitch-robust caching of live streams by adjusting replay speed.

  • streamsave
    Save live streams and clip videos without encoding.

  • switch-both-audio
    Switch between playing one or two audio tracks simultaneously upon file load or with a hotkey.

  • tethys
    An OSC UI replacement for MPV with icons from the bomi video player. Also contains thumbnail preview and a picture-in-picture button.

  • thumbfast
    High-performance on-the-fly thumbnailer for mpv. Can integrate with any UI/custom osc.lua.

  • time
    Shows the current time or the time at which playback will end.

  • timer
    Allows the user to set a starting time and an ending time and see the time elapsed between those points with millisecond precision.

  • trackselect
    Automatically select your preferred tracks based on title.

  • track-list
    Interractive track-list menu.

  • tree-profiles
    Automatically apply profiles to certain directories or files.

  • trim.lua
    Adds trim mode for mpv — turn mpv into Lossless Audio / Video Editor.

  • total_playtime
    Shows total playtime of current playlist.

  • trueautosub
    Improved fork of autosub, Automatically downloads subtitles if not present using subliminal. (osx/linux only)

  • tts-subs
    Use voice synthesis to read subtitles out-loud (Currently uses say on MacOS. Could be adapted to use espeak. PR for windows support welcome.)

  • tv-output
    (Linux) TV output handling - activate on mpv playback and deactivate on mpv shutdown.

  • use-cpu
    If the width of the video is greater than 3000 or the height of the video is greater than 2000, it will automatically switch back to using cpu decoding. If you feel inappropriate, you can modify the default values of the video width and height.

  • user-data-loader
    Allows the user-data property to be set at launch using config files and changed using profiles and script-opts during runtime.

  • unseen-playlistmaker
    Keeps track of watched files locally, and creates playlists of unwatched files.

  • uosc
    Feature-rich minimalist proximity-based UI replacement. (Preview)

  • uosc_danmaku

    Loads DanDanPlay danmaku in MPV player, based on the uosc UI framework and DanDanPlay API.(Preview video)

  • videoclip
    Create video and audio clips with mpv. Supports mp4 and webm formats.

  • visualizer
    Various audio visualization.

  • vlcaspectratio
    Implements a VLC style aspect ratio hotkey 'a' that stretches the video to different aspect ratios.

  • vlccrop
    Implements a VLC style crop hotkey 'c' that cycles through crop settings, useful for cropping letter-boxed or pillar-boxed content.

  • vo_battery
    (Linux) Choose the VO based on if the laptop is on battery or not.

  • vr-reversal
    View 3D side-by-side video as a 2D video, allows you to look around and zoom within the video, logs the head motions to a file for later rendering out to a 2D video with ffmpeg.

  • waveform
    Displays a waveform of the video in real-time using ffmpeg waveforms. (Preview)
    Based on detuur and microraptor's histogram script, that can also be found on this list.

  • writename Write the currently playing filename/path to a file, optionally skipping/removing from current playlist and muting.

  • webm
    Simple WebM maker for mpv, with no external dependencies.

  • when-to-loop
    Intelligently decide when mpv should loop, i.e. while shuffling or while playing a short file.

  • whisper-subs
    A lua script that generates subtitles at runtime with whisper.cpp on Linux.

  • xfce-genmonify
    update a xfce4-panel genmon plugin that is set up with genmonify to display the currently playing media file and elpapsed or remaining time in xfce4-panel.

  • xrandr
    Automatically sets the display refresh rate to the one best suitable for the video played

  • xscreensaver
    Disables XScreensaver while video playback is active, a replacement for heartbeat-cmd.

  • Yomichampv
    A simple solution for integration with Yomichan - a browser-based japanese dictionay.

  • youtube-download
    Download youtube video or audio with one key press

  • youtube-quality ⚠️ original, outdated
    quality-menu fork, updated
    A menu for changing the streamed video and audio quality (ytdl-format) on the fly. preview

  • youtube-search
    A script that allows users to search youtube and open results from within mpv. Requires a couple of extra API scripts, along with curl and a personal youtube API key.

  • youtube-upnext
    A menu for (auto) playing youtube's "up next"/recommended videos, that show up on the right side on the website.

  • youtube-queue
    A script that implements the YouTube 'Add to Queue' functionality for mpv. Allows adding video urls to the queue from the clipboard, and provides a menu for interacting with the queue.

  • ytdl-preload
    Precache the next entry in your playlist if it is a network source by downloading it to a temp file ahead of time. Updated to download all streams in parallel so you can watch it while it downloads.

  • ytsub
    Load automatic captions from Youtube, can select language interactively or automatically.

  • zones
    Handles commands depending on where the mouse pointer is at, mostly for mouse wheel handling.

User Shaders

A guide for how to write user shaders can be found here.

  • A-Pack
    Shaders pack for quick Adjustment of (web) video: brightness/contrast curves (tooDark, tooBright, bShadows, bDim, etc.) and color (vibrance, skintones, Black&White). Runs on integrated graphics.

  • Anime4K
    A series of shaders designed to scale and enhance anime. Includes shaders for line sharpening, artefact removal, denoising, upscaling, and more.

  • LumaSharpenHook
    A sharpen filter similar to using Unsharp Mask in Photoshop ported from SweetFX shader pack.

  • SSimDownscaler, SSimSuperRes, Krig, Adaptive Sharpen, etc.

    • SSimDownscaler: Perceptually based downscaler.
    • SSimSuperRes: The aim of this shader is to make corrections to the image upscaled by mpv built-in scaler (removes ringing artifacts, restores original sharpness, etc).
    • Krig: Chroma scaler that uses luma information for high quality upscaling.
  • Noise
    Simplistic filter that adds a tunable amount of uniform white noise to the output.

  • Film Grain v1 and Film Grain v2
    Two configurable shaders for applying gaussian-weighted white noise to the image. v2 is a smoothed version of v1, which uses an extra gaussian blur pass to shift the grain frequency spectrum. Both versions can trivially be adapted to add film grain to other channels besides LUMA by just adding it to the list of hooks.

  • Antiringing
    This is an antiringing filter that works by clamping to the local neighbourhood. Sort of inspired by the mpv built-in antiringing algorithm, but it's extended in such a way that it also works well for polar (EWA) filters, which the mpv built-in algorithm does not support at all.

  • nnedi3 and ravu
    User shaders for prescaling.

  • FSRCNN
    Prescaler based on layered convolutional networks.

  • un360
    Converts equirectangular 360 degree video to be watchable, at a fixed perspective.

  • acme-0.5x
    Simple 0.5x downscaler for mpv, useful for 4K video playback on FHD screen with iGPU (bypass chroma upscaling and color conversion in 4K resolution).

  • Nonlinear stretch
    Non-linear stretch scaling. use with --no-keepaspect.

  • lensfix
    Fix radial distortion commonly found in wide angle action cameras.

  • hyperview
    Dynamic stretching filter aiming to bring effects similar to GoPro SuperView.

  • NLS#
    Tunable bidirectional nonlinear stretching with optional cropping and padding.

  • FidelityFX CAS
    AMD FidelityFX Contrast Adaptive Sharpening (CAS) provides a mixed ability to sharpen and optionally scale an image. The algorithm adjusts the amount of sharpening per pixel to target an even level of sharpness across the image. Areas of the input image that are already sharp are sharpened less, while areas that lack detail are sharpened more. This allows for higher overall natural visual sharpness with fewer artifacts.

  • FidelityFX FSR
    AMD FidelityFX Super Resolution is a spatial upscaler: it works by taking the current anti-aliased frame and upscaling it to display resolution without relying on other data such as frame history or motion vectors. At the heart of FSR is a cutting-edge algorithm that detects and recreates high-resolution edges from the source image. Those high-resolution edges are a critical element required for turning the current frame into a “super resolution” image. FSR provides consistent upscaling quality regardless of whether the frame is in movement, which can provide quality advantages compared to other types of upscalers.

  • NVIDIA Image Scaling
    NVIDIA Image Scaling is a spatial scaling and sharpening algorithm. The scaling algorithm uses a 6-tap scaling filter combined with 4 directional scaling and adaptive sharpening filters, which creates nice smooth images and sharp edges. In addition, an adaptive-directional sharpening-only algorithm is available. The directional scaling and sharpening algorithm is named NVScaler while the adaptive-directional-sharpening-only algorithm is named NVSharpen.

  • Post upscale unsharp masking
    This is mpvs original image sharpening algorithm ported into the shader, in order to work only after upscaling is done.

  • nlmeans, hdeband, & more

    • nlmeans is a featureful implementation of the Non-local Means algorithm, it does both denoising and adaptive sharpening
    • hdeband is an implementation of a debanding algorithm that blurs homogeneous regions together
  • Alt Scale
    An alternative to mpv's built in scaling. It can be slightly faster than built in scaling with equivalent quality.

  • Unsharp mask and Gaussian blur
    A 2 pass unsharp mask and a 2 pass gaussian blur. Similar to those in Photoshop, Image Magick, Gimp, etc.

  • 2D Image Resampling
    2D Image Resampling is a general resampling algorithm made for experimental / testing use.

  • Jinc
    Jinc based image scaling. Similar to mpv's ewa or polar.

  • Pixel Clipper
    Simple anti-ringing filter based on pixel clipping/clamping.

  • JointBilateral & FastBilateral
    Chroma upsamplers that use the luma plane as a guide to achieve sharper transitions without introducing any ringing.

  • Chroma from Luma Prediction
    Chroma upsamplers based on least-squares linear regression.

  • ArtCNN
    Luma doublers trained on Manga109.

  • CuNNy
    Cute and funny CNN-based upscaler optimized for anime.

  • AniSD ArtCNN
    AniSD ArtCNN is for standard definition anime content.

  • Ani4K v2 ArtCNN
    Ani4K v2 targets modern anime, from high quality Bluray to crappy WEB releases, for upscaling to either 2K or 4K.

VapourSynth Scripts

  • mvtools
    Use MVTools's BlockFPS function to perform motion interpolation on the video in realtime.

  • nnedi3
    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.

  • flash3kyuu
    Use flash3kyuu to deband the video, with reasonable (mildly grainy) default settings. Obsolete: mpv now ships with a similar debanding filter as shader.

C Plugins

  • mpv-mpris
    Adds support for MPRIS2 protocol

  • mpv-libunity
    Shows a progress bar on your panel/dock using libunity

  • mpv-omniGlass
    Touchpad gestures for mpv

  • mpv-rpc
    Discord Rich Presence integration for mpv written in Rust. Also displays cover art from MusicBrainz archive!

  • shutup
    Set --quiet when stderr or stdout aren't connected to a terminal

  • mpv-limited-autoload
    Auto-load files in a lazy way by limiting how many are loaded into playlist at once

  • kde-do-not-disturb
    Disable the notifications while mpv is running

  • kde-night-color
    Disable Night Color while mpv is running

  • mpv_inhibit_gnome
    Prevent screen blanking on GNOME while content is playing

  • mpv-menu-plugin
    Context menu, file dialog, clipboard support for mpv on Windows

  • mpv-debug-plugin
    A debug tool for mpv script developers, with GUI support for properties and console.

Other

  • play-with
    A WebExtension that can open a video stream on a web page with an external player.

  • playphrase
    Search and play phrases from movies and audiobooks.

  • mpv_sponsorblock_minimal
    Minimal version of sponsorblock extension.

  • mpvc-tui
    mpc command-line and tui for mpv.

  • mpvclip / mpvival / mpvloop
    Run MPV with options for loops and playback start and end times set according to a pattern or intervals of the total duration of a file.

  • http-ytproxy
    Simple MitM http proxy to modify Range http headers. Can be used to speed up youtube videos in mpv.

  • mpvf
    Run MPV on files found with GNU Find by including and excluding pathname patterns and setting the depth levels in the directory tree.