Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-mpv

A curated list of awesome mpv resources.
https://github.com/stax76/awesome-mpv

Last synced: about 16 hours ago
JSON representation

  • Linux

  • Menu

    • mdmenu - Use dmenu (Linux launcher) for selecting audio/subtitle/chapters etc.
    • Tcl/Tk context-menu - Configurable context-menu based on Tcl/Tk (cross-platform).
    • search-page - Searchable and configurable menu to quickly find key bindings, commands, options and properties.
    • menu - Configurable on screen menu to run custom commands.
    • mpvc-tui - Command-line and TUI for mpv.
    • contextmenu - Configurable context-menu based on Tcl/Tk (cross-platform).
    • menu - Configurable on screen context-menu.
    • menu-plugin - Win32 context menu, file dialog, clipboard support for mpv on Windows.
    • uosc - Popular OSC with menu.
    • select - Simple menu script built into mpv.
    • playlist-kdialog - Use KDE's KDialog or GTK's zenity to show current playlist or select playlist entry.
    • dyn_menu - Context Menu with support for defining the context menu in input.conf.
  • Playback

    • chapter-list - Interractive chapter-list menu.
    • 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`.
    • betterchapters - player/mpv/issues/4738#issuecomment-321298846)) - Loads the next or previous playlist entry if there are no more chapters in the seek direction.
    • writename - Write the currently playing filename/path to a file, optionally skipping/removing from current playlist and muting.
    • when-to-loop - Intelligently decide when mpv should loop, i.e. while shuffling or while playing a short file.
    • 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.
    • history - Autosave played media items in an SQLite database, restore last played position, select (with dmenu(1)) and play item from history.
    • 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.
    • tree-profiles - Automatically apply profiles to certain directories or files.
    • autoload - Automatically load playlist entries before and after the currently playing file, by scanning the directory.
    • total_playtime - Shows total playtime of current playlist.
    • track-list - Interractive track-list menu.
    • time - Shows the current time or the time at which playback will end.
    • skipchapters - Automatically skip chapters matching a given list of regular expressions (eg. "OP" or "Opening").
    • speed-transition-Audio - Changes playback speed based on volume thresholds.
    • skiptofade - Seeks forward until a black screen appears. Built to skip openings. Uses the lavfi blackdetect filter.
    • rewindPlaylist - keybind to rewind to the end of the previous playlist entry
    • 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.
    • pause-indicator - Displays a momentary icon that flashes in the middle of the screen, similar to YouTube.
    • lats - The Low ATtention Span mpv script. Plays brief segments from random positions of one or more files, kinda like flipping through TV channels.
    • guess-media-title - Uses [guessit](https://github.com/guessit-io/guessit) to detect a media title by filename and set `force-media-title` variable. Useful for getting cleaner screenshot file names.
    • 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.
    • autoloop - Automatically loops files that are under a given duration (default 5 seconds).
    • autosave - Periodically saves "watch later" data during playback, rather than only saving on quit. Newer [fork](https://gist.github.com/CyberShadow/2f71a97fb85ed42146f6d9f522bc34ef).
    • 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).
    • always-play-on-startup - Always play on startup, never start playback in a paused state.
    • lilskippa - Skip to black, skip to silence, skip to scene change.
    • print-playlist - Cleans [the playlist formatting](https://github.com/mpv-player/mpv/issues/5868#issue-327675880) on the terminal.
    • btime - Shows a shorter time format when seeking: 0:15 / 3:10, 08:20 / 55:00, 0:00:05 / 1:30:14.
    • countdown - Display a countdown on OSD for the final seconds of the video (or music file).
    • playlist-manager - Create and manage playlists.
    • trackselect - Select tracks based on their title.
    • chapterskip - Skip chapters based on their title.
    • createchapter - Temporarily mark the current playback position as a chapter so you can seek to it later. Also allows writing current chapters as XML.
    • chapters - Display chapters and allow you to jump to them with a mouse click. ([Preview](https://i.imgur.com/f7WtKYN.png))
    • chapters_for_mpv - Add, remove and edit chapters of the currently played media. Chapters you create can be saved into a separate text file and automatically loaded when you open the same media file again.
    • sort_script - Sort directories and files.
    • fastforward - Fast-forward instead of skipping.
    • libunity - Show a nice progress bar on your Linux panel/dock.
    • segment-linking - Supports Matroska hard segment linking.
    • quack - Reduces audio volume temporarily after seeking.
    • control - Various features mainly for controlling playback.
    • groupwatch_sync - Automatically start and get back in sync with a group watch.
    • unseen-playlistmaker - Keeps track of your watched files from a directory, and on keypress enters playlist-mode to watch unseen files from that specified directory.
    • multiloop - Loop over multiple A-B points.
    • bluetooth-av-delay - Adds desired A-V delay automatically, if default audio sink is a bluetooth device.
    • skip-silence - Playback mode that automatically skips/speed up silent parts.
    • skipsilence - Increase playback speed during quiet parts of the file.
    • dvd-browser - Browse and load DVD titles.
    • plugin-myshows - Automatically marks a currently watched episode in MyShows.
    • recent - Recently (history) played menu.
    • recent-menu - Recently (history) played menu integrated with uosc.
    • memo - A recent files/history menu for mpv with optional uosc integration.
    • plugin-bookmark - Record your playing history for each folder.
    • bookmarker-menu - Menu to manage all your bookmarks.
    • 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.
    • radio-title - Automatically fetch current playing title from webradio website when not provided by stream.
    • trakt - Connects trakt.tv with mpv and automatically scrobbles movies/shows.
    • timer - Allows the user to set a starting time and an ending time and see the time elapsed between those points with millisecond precision.
    • stats - Display some statistics about the currently played file on-screen.
    • List chapters - Shows chapters and their time at the bottom left corner. [example](https://github.com/oltodosel/mpv-scripts/raw/master/show_chapters.jpeg)
    • playlist-navigator - OSD display features easy navigation with scrolling and search to select files to play or remove from playlist.
    • save-playlist - This script saves your playlist to the working directory of the mpv process.
    • review - Allows to remove files viewed quickly from within mpv
    • evafast - Fast-forwarding and seeking on a single key, with quality of life features like slowing down a bit when subtitles are shown.
    • nextfile - Force opens next or previous file in the currently playing files directory.
    • 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.
    • bookmarker - Bookmark your favorite time on media files
    • interactive-video - Script for watching interactive videos (such as Netflix's *Black Mirror: Bandersnatch*).
    • mpv_segment_length - Displays the length of a segment/range from point A to point B.
    • 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.
    • loop-until - Loop the video until a specified amount of time. (e.g. loop a 30s wallpaper video to 30min)
    • chapters-menu - List all chapters of current video, search and choose any.
    • 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.
    • history - Writes date, time, playtime and filename to a log file: `10.09.2022 19:50 3 D:\Samples\Big Buck Bunny.mkv`
    • mpv-slash-search - Simple and lightweight script that allows you to search for a file in the playlist and jump to the first match.
    • autochapters - Automatically finds chapters for your anime files.
    • chapter-converter - Converts chapter format between YouTube (e.g., "00:10 chapter title") and mpv (FFmpeg metadata).
  • File

    • KDialog-open-files - Use KDE's KDialog to add files to playlist, subtitles to playing video or open URLs.
    • open-in-explorer - Shows the currently playing file in Windows File Explorer.
    • show-filename - Show the name of the current playing file.
    • file-browser - On screen file browser.
    • filenavigator - Navigate and open local files.
    • open-file-dialog - Launch a Windows open file dialog.
    • zenity-open-files - Use GTK's zenity to add files to playlist, subtitles to playing video or open URLs.
    • simple-loader - (Linux) Browse dirs and files on OSD, and launch them with mpv.
    • Serkio Tagger - Annotate videos with tags while you watch.
    • rename - Rename files on the go directly from within MPV player window without leaving it.
    • limited-autoload - Auto-load files in a lazy way by limiting how many are loaded into playlist at once
    • locate-file - Locate current media file on your OS file browser
    • separator - Copy or move video files you wanna keep.
    • open-dir - Opens the path of the current file in Windows File Explorer.
  • On Screen Controller

    • osd-bar - Always show osd progress bar, with the more beautiful color matching in the [configuration file](https://github.com/422658476/MPV-EASY-Player/blob/master/mpv-easy-data/rjno1.conf), you can make the osd progress bar display the current progress at the bottom of the window beautifully,this is a [preview](https://raw.githubusercontent.com/422658476/MPV-EASY-Player/master/img/mpv-easy-player-osd-bar-lua.jpg).
    • 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](https://github.com/422658476/MPV-EASY-Player#%E7%9C%8B%E5%88%B0%E4%B8%8A%E9%9D%A2%E5%9B%BE%E4%B8%8A%E8%BF%99%E4%BA%9Bosc%E6%A0%B7%E5%BC%8F%E4%BA%86%E5%90%97%E5%AE%83%E4%BB%AC%E4%B8%8D%E4%BB%85%E5%8F%AF%E4%BB%A5%E5%AD%98%E5%9C%A8%E4%BA%8Empv-easy-player%E4%B8%AD%E4%BD%A0%E4%BD%BF%E7%94%A8%E7%9A%84mpv%E7%9A%84osc%E4%B9%9F%E5%8F%AF%E4%BB%A5%E5%8F%98%E6%88%90%E8%BF%99%E6%A0%B7).
    • osc-show-hide-hotkey - Toggles the on-screen controller with a hotkey. [Video demonstration](https://www.youtube.com/watch?v=b-5XOZpXZMg&t=1h7m17s)
    • mfpbar - A minimalistic progressbar and osc replacement.
    • osc-modern - Modern OSC replacement.
    • ModernX - Modern OSC replacement.
    • modern-x-compact - Compact version of modern-x.
    • tethys - OSC replacement with seekbar thumbnail preview.
    • dark-box - OSC replacement.
    • oscc - Dark-themed OSC.
    • thumbnail_script - Shows preview thumbnails in the seekbar.
    • thumbnail_script - Shows preview thumbnails in the seekbar.
    • thumbnail_script - Shows preview thumbnails in the seekbar.
    • sosc - An OSC supplement for OSC replacements. Provides the idle message and script messages from the original OSC.
    • progressbar - A minimalistic OSC replacement. It provides a small, unintrusive progress bar that persists at the bottom of the video window.
    • osc-orange - An osc/ui replacement in dark theme.
    • osc-simple - An OSC/UI replacement of white theme.
    • osc-modern-f - OSC script forked from [mpv-osc-modern](https://github.com/maoiscat/mpv-osc-modern).
    • osc-show-hide - Toggles the on-screen controller with a hotkey.
  • Input

    • zones - Handles commands depending on where the mouse pointer is at, mostly for mouse wheel handling.
    • multisocket - Creates a numbered socket for each instance of mpv.
    • cycle-commands - Allows input.conf commands to be cycled through with keybinds.
    • cycle_messages - Cycle between custom OSD messages.
    • audio-file-keys - Automatically apply key bindings when playing audio files.
    • gestures - Touchscreen and mouse gestures.
    • touch-gestures - Gestures for play/pause, speed, volume, seeking and next/previous playlist-item.
    • cheatsheet - Looking up keyboard shortcuts (bindings).
    • InputEvent - Enhanced input.conf with better, conflict-free, low-latency event mechanism.
    • repl - A REPL for input commands that is displayed on the video window.
    • pointer-event - Mutually exclusive, low latency mouse/touch input event detection. Executes configurable commands on single-click, double-click, long-click and dragging.
    • Sockets - creates one IPC sockets per mpv instance, instead of one socket for the last started instance. _Supports_: Linux, MacOS and Windows.
    • boss-key-wayland - Minimise and pause video at the same time in Linux through xdg-portals.
    • mpv-omniGlass - Touchpad gestures for mpv.
    • blackout - A fast crossplatform boss-key, but without window minimization (and possible problems with some VO drivers).
    • 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.
  • Subtitle

    • tts-subs - Use voice synthesis to read subtitles out-loud.
    • subtitle-search - Script to search for a phrase inside an active `.srt` subtitle. Displays matched lines in OSD list, takes `sub-delay` into account and allows searching for Unicode text in utf8 subtitle files.
    • 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.
    • sub_export - fork, updated. Extract selected subtitles from .mkv file.
    • sub-bilingual - Generate bilingual subtitles.
    • sub-bookmarks - Save current position and subtitles in .txt file.
    • sub-export - original, outdated
    • 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.
    • sub-sentences - Generate subtitles with sentences.
    • 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.
    • 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).
    • copy-subtitle - Copies currently displayed subtitle line to clipboard.
    • fix_sub_timing - Compute the correct speed/delay of subtitles by manually synching two points in time.
    • dessubdb - Download automatically subtitles from the thesubdb.com using [DESSubdb](https://github.com/demanuel/dessubdb).
    • autosub - Automatically download subtitles using **subliminal**.
    • auto-load-fonts - Auto load the font files in the fonts folder under the play file path.
    • sub - Select subtitle by id via input box (Windows)
    • assrt - Automatically download subtitles from assrt.net.
    • autosub - Automatic subtitle downloading.
    • sub-select - Advanced conditional subtitle track selector.
    • autosubsync - Automatic subtitle synchronization script.
    • intersubs - Interactive subtitles.
    • sub-transition - Speed up the video if no subtitles are visible.
    • sub - Python script to automate downloading and loading subtitle from subscence.
    • trueautosub - Fork of autosub, automatically downloads subtitles if not present using **subliminal**. (osx/linux only)
    • sub-skip - Automatically skip parts of a video that don't contain any subtitles. Does so by either fast-forwarding or seeking.
    • playphrase - Search and play phrases from movies and audiobooks.
    • libass_sub_selector - Visually select individual subtitles a la PotPlayer.
    • find_subtitles - (Down)load subtitles with subliminal.
    • autosubsync - Automatically sync subtitles using **ffsubsync**.
    • sub-not-forced-not-sdh - Prevents the selection of FORCED and SDH subtitles when you start playing a video.
    • autoselect-forced-sub - Automatically select forced subtitles in a different way.
    • subtitle-lines - List and search subtitle lines of the selected subtitle track.
    • rename-sub - Rename current subtitle file as the playing video.
    • whisper-subs - Generates subtitles at runtime with whisper.cpp on Linux.
  • Learning

    • subs2srs - Automatically add new card in Anki with audio, picture and text.
    • sub-voracious - Reading and listening practice.
    • mpvacious - Add keybindings to create Anki flashcards for (language) learning.
    • interSubs - Interactive subtitles, instantly translate selected word/sentence.
    • immersive - Looking up words generating Anki flashcards.
    • migaku - Learn languages together with the Migaku browser extension.
    • Yomichampv - A simple solution for integration with Yomichan - a browser-based japanese dictionay.
    • rikai - Integrated Japanese dictionary and parser to translate by hovering over words. Works on Linux.
    • mpv2anki - A simple way to add notes to Anki with Audio, screenshots and/or subtitles, with few dependencies.
    • 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.
  • Audio

    • visualizer - Various audio visualizations.
    • pitchcontrol - Adjusts audio pitch in half-tone steps.
    • firequalizer15 - Linear phase 15-bands equalizer.
    • equalizer - 5-bands equalizer with colorful display.
    • drcbox - Dynamic Audio Normalizer filter with visual feedback.
    • dbvol - Replaces the default volume controls with a decibel (dB) scale instead of arbitrary percentages.
    • 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.
    • audio-dupe - Runs a child process to play a second audio stream. Synced through named pipe.
    • audio-balance - Port of mpv's balance property to FFmpeg lavfi pan filter.
    • adevice-list - Interractive audio-device list menu.
    • acompressor - Dynamic range compressor using acompressor ffmpeg filter with controls to dynamically adjust parameters.
    • cycle-adevice - Cycle through available audio devices.
    • Open Sound Control - Open Sound Control listener.
    • 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).
    • 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.
    • switch-both-audio - Switch between playing one or two audio tracks simultaneously upon file load or with a hotkey.
    • Sofalizer - Simulates 7.1 surround sound to your headset. Get the sofa file from [here](https://sofacoustics.org/data/database/clubfritz/ClubFritz6.sofa)
    • ff-silence - Fast forward through silences and quiet parts of audio, useful on videos where the speaker uses many long pauses.
  • Streaming

    • 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.
    • 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.
    • stopCache - stops the demuxer from downloading more if it is already past --end
    • show-stream-title - Show OSD stream/channel title when switching the IPTV channels from m3u playlist.
    • peerflix-hook - Allows streaming of magnet links using peerflix, similar to youtube-dl.
    • last.fm scrobbler - Sends the information about playing tracks to [last.fm](http://last.fm/), see http://www.last.fm/help/faq?category=99 for more info.
    • jellyfin - Turns mpv into a Jellyfin client.
    • mpvDLNA - Browse and watch content hosted on DLNA servers.
    • selectformat - Select the format (quality) of internet videos.
    • sponsorblock_minimal - More simple version of the sponsorblock script.
    • sponsorblock - Script to skip sponsored segments of YouTube videos.
    • streamsave - Save live streams without encoding.
    • mpvf - Select youtube-dl format for streaming.
    • quality-menu - Change the streamed video and audio quality (ytdl-format) on the fly.
    • youtube-download - Download YouTube audio and video with one key press.
    • youtube-search - Use zenity and youtube-dl to search YouTube.
    • youtube-upnext - A menu for (auto) playing YouTube's "up next"/recommended videos, that show up on the right side on the website.
    • ytdlautoformat - Auto change ytdl-format for Youtube and Twitch.
    • 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.
    • youtube-queue - Implements the YouTube 'Add to Queue' functionality. Allows adding video urls to the queue from the clipboard, and provides a menu for interacting with the queue.
    • 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](https://github.com/noctuid/mpv-webtorrent-hook#comparison-with-webtorrent-mpv-hook) for a comparison with the other javascript webtorrent plugin. I recommend this plugin over my others (mpv-peerflix-hook and btfs-stream).
    • play-with - A web browser extension that can open a video stream on a web page with an external player.
    • confluence - Open magnet links using [confluence](https://github.com/anacrolix/confluence) HTTP service. Recommended to use [modified script](https://github.com/ftk/mpv-confluence/tree/torrserver) for [TorrServer](https://github.com/YouROK/TorrServer) instead.
    • torrserver - Allows streaming torrents using [TorrServer](https://github.com/YouROK/TorrServer). Support magnet links and .torrent files
    • 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.
    • streamcache - Provides for more network-glitch-robust caching of live streams by adjusting replay speed.
    • spotify - Add current playing title to an user defined Spotify playlist.
    • sopcast - Adds support for sop:// urls.
    • yledl - Watch videos from YLE Areena in mpv using yle-dl
    • peerflix-hook - Stream magnet links in mpv with peerflix.
    • 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.
    • reduce_stream_cache - Reduces MPV cache for streams by increasing playback speed. Works with Twitch through Streamlink.
    • http-ytproxy - Simple MitM http proxy to modify Range http headers. Can be used to speed up youtube videos.
  • Video

    • autospeed - Adjusts the display refresh rate and video speed for almost 1:1 playback (Unix-like OSes, Xorg / X11).
    • autospeedwin - Adjusts the display refresh rate and video speed for almost 1:1 playback (Windows).
    • store-shaders - Store current glsl-shaders config on first run, this config will then be restored by subsequent calls.
    • switch-shader - Provides a switch to disable/restore shaders and vf filters.
    • vlcaspectratio - Implements a VLC style aspect ratio hotkey 'a' that stretches the video to different aspect ratios.
    • autocrop - Automatically crop the video by using lavfi's cropdetect filter to detect black bars.
    • vlccrop - Implements a VLC style crop hotkey 'c' that cycles through crop settings, useful for cropping letter-boxed or pillar-boxed content.
    • cropmode - Adds a keyboard-oriented mode for cropping, outputting the result in a format suitable for ffmpeg.
    • 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.
    • waveform - Displays a waveform of the video in real-time.
    • cycle-denoise - Cycle between lavfi's denoise filters (press n)
    • autodeint - Automatically deinterlace the video by using lavfi's idet filter to detect interlaced content.
    • cycle-deinterlace-pullup - Cycle between deinterlacing, pullup (IVTC), and both filters off.
    • pickshader - Provides a ^R-esque interface for easily setting/appending to --glsl-shaders (this does not install shaders for you).
    • histogram - Exposes a configurable way to overlay ffmpeg histograms in mpv. There is a substantial amount of config available.
    • changerefresh - Automatically change the refresh rate of the current display to match the playing video (Windows).
    • gpufreq - Displays the current and maximum GPU frequency as an osd message.
    • mvtools-script - vapoursynth-mvtools script.
    • xrandr - Automatically sets the display refresh rate to the one best suitable for the video played
    • mpv-kscreen-doctor - Like the xrandr script automatically sets the display refresh rate to the one best suitable for the video played, works for KDE Plasma Wayland sessions.
    • matroska-crop - Automatically crop video using the Matroska PixelCrop properties. Includes optional workaround for hardware decoding.
    • 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).
    • BoxToWide - A simple mpv script to change 4:3 aspect-ratio of video files/streams to 16:9 automatically.
    • frame_info - Show frame info, similar to ffdshow's OSD.
    • live-filters - Add, remove or toggle ffmpeg video filters during mpv playback.
    • delogo - Remove channel logo from videos.
  • Image

    • screenshot-to-clipboard - Takes a screenshot and saves it to the clipboard.
    • clipshot - Screenshot the video (with subs, without subs or the whole window) and copy it to the clipboard. For Windows, Linux/BSD and MacOs
    • gallery-dl_hook - Load online image galleries (imgur, etc) as playlists using [gallery-dl](https://github.com/mikf/gallery-dl/).
    • 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.
    • contact-sheet - Display thumbnails of the current file in the style of a contact sheet.
    • thumbfast - High-performance on-the-fly thumbnailer for mpv.
    • takeSsSequence - Take a sequence of equispaced screenshots.
    • crop_script - Take cropped screenshots.
    • gif-generator - Creates animated gifs using hotkeys.
    • waifu2x - Take screenshot and convert images with waifu2x.
    • webp-generator - Creates animated webp using mpv hotkeys. (Windows only)
    • image-config - A configuration to use mpv as an image viewer.
    • 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-image-viewer - Configuration, scripts and tips for using mpv as an image viewer.
    • screenshot-mosaic - Create a mosaic/thumbnail image.
  • Video Editing

    • sub-cut - Extract a part of the video as audio or video with subtitles.
    • trim - Trim clips without transcoding.
    • easycrop - Cropping videos with ease.
    • videoclip - Create video and audio clips.
    • video-splice - Create a video out of cuts.
    • Pure - Get the file path, timestamps, and cropping coordinates for ffmpeg.
    • cut - Video cutting/clipping/slicing script.
    • slicing - Cut uncompressed fragments of the video.
    • slicing_copying - Cut fragments of video in original format.
    • excerpt - Allows you to quickly create excerpts from media files, you just have to set begin and end markers.
  • Configuration

    • 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.
    • config-saver - Saves current audio track, subtitle track, subtitle position, etc. for all videos in the folder.
    • persist-properties - Keep selected property values (like volume) between player sessions.
    • cycle-through-existing - Cycle through existing video/audio/subtitle tracks, skipping the "none" option.
    • celebi - An optimized script to restore properties from past sessions. Alternative to persist-properties and remember-props scripts.
  • Library

  • Other

    • copy-permalink - Copy `mpv --time=<current-position> <path-playing>` to clipboard. Useful for sharing when playing URLs.
    • copy-time-in-seconds - Copies current playback position in seconds with milliseconds to clipboard.
    • copy-time - Copies current timecode in HH:MM:SS.MS format to clipboard.
    • vo_battery - Choose the VO based on if the laptop is on battery or not.
    • tv-output - TV output handling - activate on mpv playback and deactivate on mpv shutdown.
    • ontop-window - Disables the ontop property when in fullscreen, and enables it again when in window mode, if it was disabled.
    • 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-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.
    • pause-when-minimize - Pauses the player video when minimizing, and unpauses it when brought up again.
    • scale-win - Restore old "window-scale" behavior, so to make "add window-scale +/-<value>" keybinds work again when any of the autofit-* options are defined.
    • profile-cycle - Cycle between your custom defined profiles while watching the video.
    • osd-clock - Periodically shows OSD clock (many configurable options).
    • redshift_toggle - Toggle redshift when loading a video file and when reaching the end of said file. Now also handles pause.
    • toggle-redshift-on-play - Toggle redshift when viewing videos with mpv.
    • toggle-redshift-on-play kill-restart-version - Toggle redshift when viewing videos with mpv.
    • minesweeper - Minesweeper game.
    • gnome-inhibit - Prevent the screen from blanking under GNOME+Wayland while a video is playing.
    • xscreensaver - (Linux) Disables XScreensaver while video playback is active, a replacement for heartbeat-cmd.
    • force-window-profile - Applies the force-window profile when force-window is set (i.e. when starting mpv from the .desktop file)
    • exit-fullscreen - If you use `--keep-open=yes`, this script exits fullscreen mode when the playback reaches the end of file/playlist.
    • convert_script - Script to quickly convert and crop videos from within mpv, with a GUI.
    • 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).
    • 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.
    • Harmonoid - Cross-platform, based on Dart/Flutter.
    • Stremio - Cross-platform, based on C++/QT.
    • Glow
    • Awan
    • 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. More information is [here](https://graphics.ethz.ch/~cengizo/imageDownscaling.htm). 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 - conf/xor/home/nand/.mpv/shaders/filmgrain-smooth.glsl) - 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.
    • acme-0.5x - Fastest 0.5x downscaler for mpv, useful for 4K video playback on FHD screen (bypass chroma upscaling and color conversion in 4K resolution).
    • lensfix - Fix radial distortion commonly found in wide angle action cameras.
    • hyperview - Dynamic stretching filter aiming to bring effects similar to GoPro SuperView.
    • FSRCNN - Prescaler based on layered convolutional networks.
    • un360 - Converts equirectangular 360 degree video to be watchable, at a fixed perspective.
    • Nonlinear stretch - Non-linear stretch scaling. use with `--no-keepaspect`.
    • 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.
    • 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.
    • 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.
    • NLS# - Tunable bidirectional nonlinear stretching with optional cropping and padding.
    • 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.
    • mvtools - Use [MVTools](https://github.com/dubhater/vapoursynth-mvtools)'s BlockFPS function to perform motion interpolation on the video in realtime.
    • nnedi3 - Use [NNEDI3](https://github.com/dubhater/vapoursynth-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.
    • neo_f3kdb_dither - Use [neo_f3kdb](https://github.com/HomeOfAviSynthPlusEvolution/neo_f3kdb) to dither the video, with dynamic grain as the default.
    • CCD - Use [CCD](https://github.com/End-of-Eternity/vs-ccd) (Camcorder Color Denoise) to apply chroma denoise/derainbow to video.
    • GSConnect - Implementation of KDE Connect for GNOME.
    • Compiling for Windows
    • Building mpv and libmpv using wsl2 and Ubuntu
    • crosscompile-mingw-tedious
    • vidify - Cross-platform app that detects playing songs on your device and plays their music videos anywhere, based on Python.
    • Karaoke Mugen - Cross-platform karaoke management app, based on JavaScript/node.js/Web.
    • copy-paste-URL - Paste URLs directly from clipboard into mpv
    • encode - Re-encode or remux part of the current video. Can also preserve some filters, such as "crop".
    • 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!
    • webm - WebM converter based on MoonScript.
    • manager - Script and shader manager.
    • copyStuff - Copy to clipboard the filename or URL, full filename path, current video time, current displayed subtitle text, video duration/metadata.
    • copyTime - Copies the current time to the clipboard.
    • 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)
    • cp-paste-URL - Fork of copy-paste-URL with support for Linux.
    • 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.
    • i3-floating-centered - Show mpv window in the center of the display when it is in floating mode (i3wm)
    • deframe - Removes the frame of YouTube videos.
    • open-kinopoisk-page - Opens the kinopoisk page that corresponds to the currently playing media file.
    • open-imdb-page - Opens the IMDb page that corresponds to the currently playing media file.
    • open-anilist-page - Opens the Anilist page that corresponds to the currently playing (anime) file.
    • oled-screensaver - To prevent burn-ins on OLED TVs, this script fades-in a black screen after 15 seconds when paused in fullscreen.
    • notify-send - A simpler and more recent notifications script for libnotify-compatible (i.e. Unix-like) notifications daemons only. Supports cover art.
    • notify - Adds desktop notifications to the mpv media player, which show metadata like artist, album name and track name when the track changes.
    • notify - Converging point for all forks of rohieb's notify scrip.
    • txt - Play text files using text-to-speech (TTS). (Works on Linux, MacOS).
    • pdf - View PDFs in mpv using ImageMagick. (for Linux, MacOS)
    • manga-reader - Script for using mpv as a manga reader.
    • inhibit_gnome - Prevent screen blanking on GNOME while content is playing
    • mpegts-truncate - Removes beginning of MPEG TS file up to current position without re-writing the whole file.
    • kde-do-not-disturb - Disable the notifications while mpv is running
    • kde-night-color - Disable Night Color while mpv is running.
    • notify - Now-playing-desktop notifications.
    • taskbar-buttons - (Windows) Adds thumbbar buttons.
    • xfce-genmonify - Update a [xfce4-panel](https://docs.xfce.org/xfce/xfce4-panel/start) [genmon](https://docs.xfce.org/panel-plugins/xfce4-genmon-plugin/start) plugin that is set up with [genmonify](https://github.com/budlabs/genmonify) to display the currently playing media file and elpapsed or remaining time in xfce4-panel.
    • composition guides - Overlay basic composition guides onto your video.
    • 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.
    • mpvMatroska - mpvMatroska turns mpv into a Matroska player.
    • debug-plugin - A debug tool for mpv script developers, with GUI support for properties and console.
    • 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.
    • 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.
    • Olivia - Linux cloud music player, based on C++/QT/Web.
    • vmn - Cross-platform CLI music player, based on C/TUI.
    • mpv-android - For Android, based on Kotlin.
    • Macast - DLNA Media Renderer. You can push videos, pictures or musics from your mobile phone to your computer, based on Python/Web.
    • jellyfin mpv shim - Jellyfin (Emby/Plex alternative) Client, based on Python.
    • webtorrent-mpv-hook - Adds a hook that allows mpv to stream torrents using webtorrent.
    • ff2mpv - A Firefox/Chrome extension for playing URLs in mpv, based on PowerShel/Shell/Python/JavaScript.
    • plex-mpv-shim - Cast media from Plex Mobile and Web apps to MPV, based on Python.
    • play-with-mpv - Chrome extension for playing URLs in mpv, based on JavaScript/Python/Web.
    • qtube - Linux YouTube frontend, based on Python/QT.
    • TubiTui - Cross-platform YouTube client based on Rust/TUI.
    • DLNAmpvRenderer - Windows DLNA/UPnP renderer based on Python.
    • Plaincast - Unmaintained Linux server that acts like a lightweight/headless Chromecast that only includes YouTube, based on Golang.
    • orion - Unmaintained cross platform Twitch.tv client, based on C++/QT/QML.
    • lazy
    • dyphire
    • noelsimbolon
    • Natural-Harmonia-Gropius
    • qwerty12
    • DonCanjas
    • zenwarr
    • mustaqimM
    • Zabooby
    • tuilakhanh
    • KikoPlay - Cross-platform [Danmu](https://en.wikipedia.org/wiki/Danmu) player, based on C++/QT.
    • boram - Unmaintained cross-platform WebM converter, based on JavaScript/Web/Electron.
    • webm.py - Cross-platform command-line WebM converter, based on Python.
    • Anime4K - A series of shaders designed to scale and enhance anime. Includes shaders for line sharpening, artefact removal, denoising, upscaling, and more.
    • Post upscale unsharp masking - This is mpvs original image sharpening algorithm ported into the shader, in order to work only after upscaling is done.
    • 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.
    • hdr-toys - Componentized Rec.2100 to Rec.709 conversion shader.
    • 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.
    • ArtCNN - Luma doublers trained on Manga109.
    • CuNNy - Cute and funny CNN-based upscaler optimized for anime.
    • vidcutter - Cross-platform video cutter/joiner, based on Python/QT.
    • tsv_edl.vim - Linux video editing with vim/spreadsheet/sed/python.
    • qimgv - Cross-platform, based on C++/QT.
    • mpv-mpris - On Linux allows controlling mpv using standard media keys.
    • lua-mpris - Adds mpris support to mpv.
    • simple-mpv-webui
    • mpv-remote-app - For Android, based on Java/Python.
    • mpv-remote-app - For Android, based on Web/VUI/Ionic/Node.js.
    • MPVMediaControl - Windows 10 System Media Transport Controls (SMTC).
    • Helper scripts to compile mpv on Linux
    • Media Auto Build Suite (MABS)
    • python - Python interface.
    • py - Another Python interface.
    • mpv.d.ts - TypeScript definition file (JavaScript).
    • node - Node.js interface (JavaScript).
    • js - Embeddable player for Electron/NW.js (JavaScript).
    • object pascal - Embeddable player for Object Pascal.
    • ruby - Ruby interface.
    • easy - TS and React GUI toolkit for mpv script.
    • install - Sets up file associations for mpv on Windows.
    • Memento - Cross-platform video player for studying Japanese, based on C++/QT.
    • blitzloop - Linux karaoke software, based on Python/OpenGL.
    • mpvQC - Cross-platform application for quality control of videos, based on Python/QT.
    • gnome-shell-extension-caffeine - Prevent the display from turning off (Gnome doesn't support the idle-inhibit protocol on Wayland) and disable the 'night light' when a mpv window is in focus.
    • mpvKt - For Android, based on Kotlin.
    • clock - Constantly show current time on the lower left corner of the video screen.
    • copy-timestamp - Copies current timecode in HH:MM:SS.MS format to clipboard.
    • local-language - Let the text displayed by osd become the language you are most familiar with, that is, language localization, such as 【volume: 100%】 becomes 【音量:100%】.
    • AniSD ArtCNN - AniSD ArtCNN shader for standard definition anime content.
    • Ani4K v2 ArtCNN - Ani4K shader v2 targets modern anime, from high quality Bluray to crappy WEB releases, for upscaling to either 2K or 4K.
    • 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.
    • mpv.d.ts - Another TypeScript definitions for mpv JavaScript API.
    • promise - Promise polyfill for mpv JavaScript runtime.
    • assdraw - mpv assdraw module for JavaScript.
    • script - TypeScript definitions for builtin `mp` modules and globals.
  • Cross-platform

  • Windows

  • Music

    • coverart - Automatically loads external cover art for music files.
    • metadata-osd - Adds OSD showing song name, album name and other metadata.
    • lrc - Download synchronized lyrics of the currently playing song.
  • Social

    • cord - Discord integration for mpv, using the Game SDK instead of Discord RPC. Supports: MacOS and Windows. (Linux is not supported by Game SDK)
    • discordRPC - Discord Rich Presence integration.
    • discordRPC - Discord RPC integration for mpv using lua-discordRPC as base.
    • 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.
    • mpv-rpc - Discord Rich Presence integration. Also displays cover art from MusicBrainz archive.
    • irc - Displays lines from an irc channel.
    • LoadDanmaku - Load local damaku files.
    • youtube-chat - Overlays YouTube chat on top of a video using yt-dlp.
    • twitch-chat-irc - Show Twitch chat messages as subtitles when watching Twitch LIVE.