mpv
Based on C/Lua.
A curated list of awesome mpv resources.
This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.
Based on C++/QT/QML.
Based on C++/QT.
Based on C++/imgui.
Unmaintained, based on C++/QT.
Unmaintained, based on Haskell/GTK.
Unmaintained, based on Pascal.
Based on C#/WinForms/WPF.
mpv extended with GUI scripts and GUI tools.
Based on C++/QT.
Player/Manager/Editor for audio and video, and Viewer/Manager for images/thumbnails; maintained, based on 64-bit Delphi Pascal. Official wiki.
Based on C/GTK.
Player/Library/Server, based on Python/QT.
Based on Gambas/QT.
Based on C++/QT/QML.
Based on C++/QT/QML.
Unmaintained, based on C++/QT.
Unmaintained, based on C++/QT.
Daily Windows builds of mpv and libmpv. This is the most popular choice on Windows.
Windows builds of mpv and libmpv. The advantage of this choice is that it has old builds for the case of new builds having issues.
Windows builds of mpv and libmpv. This choice is very similar to shinchiro GitHub, so it's also a recommendation.
Daily Windows builds of mpv and libmpv including ARM64 architecture.
Windows builds of mpv and libmpv.
mpsm is a mpv script manager, you can install scripts provided by mpsm-scripts, or install any script with added meta info via url.
Lightweight command-line video player supporting wide format compatibility and advanced playback features.
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.
Popular OSC with menu.
Searchable and configurable menu to quickly find key bindings and commands.
Searchable and configurable menu to quickly find key bindings, commands, options and properties.
Use dmenu (Linux launcher) for selecting audio/subtitle/chapters etc.
Configurable context-menu based on Tcl/Tk (cross-platform).
Comprehensive context-menu forked from Tcl/Tk context menu.
Configurable on screen menu to run custom commands.
Command-line and TUI for mpv.
Configurable on screen context-menu.
Win32 context menu, file dialog, clipboard support for mpv on Windows.
Use KDE's KDialog or GTK's zenity to show current playlist or select playlist entry.
Context-menu inspired by select.lua utilising mpv's input and console script functionality. Uses other scripts (see Requirements).
Create and manage playlists.
Select tracks based on their title.
Skip chapters based on their title.
Temporarily mark the current playback position as a chapter so you can seek to it later. Also allows writing current chapters as XML.
Display chapters and allow you to jump to them with a mouse click. (Preview)
Interractive chapter-list menu.
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.
Searchable and configurable menu to quickly find key bindings and commands.
(update) - Loads the next or previous playlist entry if there are no more chapters in the seek direction.
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.
Automatically finds chapters for your anime files.
Converts chapter format between YouTube (e.g., "00:10 chapter title") and mpv (FFmpeg metadata).
Sort directories and files.
Fast-forward instead of skipping.
Show a nice progress bar on your Linux panel/dock.
Supports Matroska hard segment linking.
Reduces audio volume temporarily after seeking.
Various features mainly for controlling playback.
Automatically start and get back in sync with a group watch.
Keeps track of your watched files from a directory, and on keypress enters playlist-mode to watch unseen files from that specified directory.
Loop over multiple A-B points.
Adds desired A-V delay automatically, if default audio sink is a bluetooth device.
Playback mode that automatically skips/speed up silent parts.
Increase playback speed during quiet parts of the file.
Browse and load DVD titles.
Automatically marks a currently watched episode in MyShows.
Write the currently playing filename/path to a file, optionally skipping/removing from current playlist and muting.
Intelligently decide when mpv should loop, i.e. while shuffling or while playing a short file.
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.
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.
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.
Autosave played media items in an SQLite database, restore last played position, select (with dmenu(1)) and play item from 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.
Create a history file to store the episode we watched last time. And let us easily jump to the video we watched last time.
Recently (history) played menu.
Recently (history) played menu integrated with uosc.
A recent files/history menu for mpv with optional uosc integration.
Record your playing history for each folder.
Menu to manage all your bookmarks.
Support add/delete/prev/next bookmarks, and persistence to sidecar JSON or config directory.
Skip over parts of videos you don't want (others) to view
Lightweight command-line video player supporting wide format compatibility and advanced playback features.
Automatically load files with similar names as the playing file into the playlist.
Shows total playtime of current playlist.
Connects trakt.tv with mpv and automatically scrobbles movies/shows.
Automatically apply profiles to certain directories or files.
Allows the user to set a starting time and an ending time and see the time elapsed between those points with millisecond precision.
Shows the current time or the time at which playback will end.
Display some statistics about the currently played file on-screen.
Changes playback speed based on volume thresholds.
Always show current playback speed on the OSD.
Automatically skip chapters matching a given list of regular expressions (eg. "OP" or "Opening").
Seeks forward until a black screen appears. Built to skip openings. Uses the lavfi blackdetect filter.
Skips to the next silence in the file.
This script saves your playlist to the working directory of the mpv process.
keybind to rewind to the end of the previous playlist entry
Seek to an absolute timestamp specified via keyboard input.
Allows to remove files viewed quickly from within mpv
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…
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.
Automatically fetch current playing title from webradio website when not provided by stream.
Display and navigate the playlist in a grid view of thumbnails.
OSD display features easy navigation with scrolling and search to select files to play or remove from playlist.
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.
Displays a momentary icon that flashes in the middle of the screen, similar to YouTube.
Force opens next or previous file in the currently playing files directory.
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.
Bookmark your favorite time on media files
Script for watching interactive videos (such as Netflix's Black Mirror: Bandersnatch).
Uses guessit to detect a media title by filename and set force-media-title variable. Useful for getting cleaner screenshot file names.
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-forwarding and seeking on a single key, with quality of life features like slowing down a bit when subtitles are shown.
Automatically loops files that are under a given duration (default 5 seconds).
Periodically saves "watch later" data during playback, rather than only saving on quit. Newer fork.
Displays the length of a segment/range from point A to point B.
Cleans the playlist formatting on the terminal.
Shows a shorter time format when seeking: 0:15 / 3:10, 08:20 / 55:00, 0:00:05 / 1:30:14.
Simple and lightweight script that allows you to search for a file in the playlist and jump to the first match.
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 the video until a specified amount of time. (e.g. loop a 30s wallpaper video to 30min)
Bookmark scenes in EDL files.
When playing a direct file from within an archive with e.g. archive://test.rar|/09.png, mpv doesn't fill the playlist. This script does so transparently. It also supports nested and remote archives.
Functional script that allows you to generate playback loops and extract media fragments into new files. L∞p → file.ext.
Show absolute time of the playing audio or video.(OSD).
Allow users to switch to borderless and top-level picture-in-picture mode with shortcut keys.
Automatically organizes media files into folders based on metadata tags.
On screen file browser.
Navigate and open local files.
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.
Skip over parts of videos you don't want (others) to view
Launch a Windows open file dialog.
Use GTK's zenity to add files to playlist, subtitles to playing video or open URLs.
Use KDE's KDialog to add files to playlist, subtitles to playing video or open URLs.
(Linux) Browse dirs and files on OSD, and launch them with mpv.
Annotate videos with tags while you watch.
Create a history file to store the episode we watched last time. And let us easily jump to the video we watched last time.
Rename files on the go directly from within MPV player window without leaving it.
Auto-load files in a lazy way by limiting how many are loaded into playlist at once
Locate current media file on your OS file browser
Allows using wildcards for sub-file-paths and audio-file-paths.
Copy or move video files you wanna keep.
Shows the currently playing file in Windows File Explorer.
Opens the path of the current file in Windows File Explorer.
Popular OSC with menu.
Modern OSC replacement.
Modern OSC replacement.
A fork of ModernX with many additional features and customization.
Compact version of modern-x.
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.
A history and bookmark management menu integrated with uosc.
OSC replacement with seekbar thumbnail preview.
OSC replacement.
Dark-themed OSC.
Shows preview thumbnails in the seekbar.
Shows preview thumbnails in the seekbar.
Shows preview thumbnails in the seekbar.
An OSC supplement for OSC replacements. Provides the idle message and script messages from the original OSC.
A minimalistic OSC replacement. It provides a small, unintrusive progress bar that persists at the bottom of the video window.
Toggles the on-screen controller with a hotkey.
An osc/ui replacement in dark theme.
A minimalistic progressbar and osc replacement.
mfpbar with support for dragging the bar.
An OSC/UI replacement of white theme.
OSC script forked from mpv-osc-modern.
Touchscreen and mouse gestures.
Gestures for play/pause, speed, volume, seeking and next/previous playlist-item.
Looking up keyboard shortcuts (bindings).
Enhanced input.conf with better, conflict-free, low-latency event mechanism.
Handles commands depending on where the mouse pointer is at, mostly for mouse wheel handling.
Uses guessit to detect a media title by filename and set force-media-title variable. Useful for getting cleaner screenshot file names.
A REPL for input commands that is displayed on the video window.
Mutually exclusive, low latency mouse/touch input event detection. Executes configurable commands on single-click, double-click, long-click and dragging.
Intelligently decide when mpv should loop, i.e. while shuffling or while playing a short file.
creates one IPC sockets per mpv instance, instead of one socket for the last started instance. Supports: Linux, MacOS and Windows.
Very powerful conditional logic and multiple action engine for your keybindings, without having to write a single line of code!
Searchable and configurable menu to quickly find key bindings and commands.
Allows input.conf commands to be cycled through with keybinds.
Cycle between custom OSD messages.
Skips to the next silence in the file.
Minimise and pause video at the same time in Linux through xdg-portals.
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…
Allows using wildcards for sub-file-paths and audio-file-paths.
Automatically apply profiles to certain directories or files.
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.
Touchpad gestures for mpv.
Download subtitles from assrt.net.
Download Chinese subtitles from assrt.
Automatic subtitle downloading.
Advanced conditional subtitle track selector.
Automatic subtitle synchronization script.
Interactive subtitles.
Speed up the video if no subtitles are visible.
Python script to automate downloading and loading subtitle from subscence.
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.
Fork of autosub, automatically downloads subtitles if not present using subliminal. (osx/linux only)
Uses guessit to detect a media title by filename and set force-media-title variable. Useful for getting cleaner screenshot file names.
Skip over parts of videos you don't want (others) to view
Handles commands depending on where the mouse pointer is at, mostly for mouse wheel handling.
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.
Generate bilingual subtitles.
Automatically pause just before the end of each subtitle line. Also allows replaying the currently active line.
Speed up playback when no subtitles are visible.
Always show current playback speed on the OSD.
Automatically loops files that are under a given duration (default 5 seconds).
Search and play phrases from movies and audiobooks.
Toggles the on-screen controller with a hotkey.
Visually select individual subtitles a la PotPlayer.
(Down)load subtitles with subliminal.
Download automatically subtitles from the thesubdb.com using DESSubdb.
Automatically sync subtitles using ffsubsync.
Automatically download subtitles using subliminal.
Auto connection of external subtitles and sound, using the "WEBDAV" protocol. The connection is explicit due to explicitly specifying folders on the WebDAV server.
Prevents the selection of FORCED and SDH subtitles when you start playing a video.
Automatically select forced subtitles in a different way.
List and search subtitle lines of the selected subtitle track.
Auto load the font files in the fonts folder under the play file path.
Rename current subtitle file as the playing video.
Generates subtitles at runtime with whisper.cpp on Linux.
Load automatic captions from Youtube, can select language interactively or automatically.
Converts chapter format between YouTube (e.g., "00:10 chapter title") and mpv (FFmpeg metadata).
Write subtitles in mpv.
Generate SRT subtitles through voice transcription using faster-whisper.
Extract & translate subtitles with OpenAI API. Streaming & contextual.
Add keybindings to create Anki flashcards for (language) learning.
Interactive subtitles, instantly translate selected word/sentence.
Looking up words generating Anki flashcards.
Learn languages together with the Migaku browser extension.
A simple solution for integration with Yomichan - a browser-based japanese dictionay.
Generate bilingual subtitles.
Integrated Japanese dictionary and parser to translate by hovering over words. Works on Linux.
A simple way to add notes to Anki with Audio, screenshots and/or subtitles, with few dependencies.
(Different script with Windows, macOS and Linux support) A simple script to assist your language learning journey in any language by automatically capturing multimedia content from mpv to Anki.
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.
Instant, on-screen definitions for difficult or obscure words found in subtitles.
Automatically loads external cover art for music files.
Adds OSD showing song name, album name and other metadata.
Download synchronized lyrics of the currently playing song.
Open Sound Control listener.
Various audio visualizations.
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.
Adjusts audio pitch in half-tone steps.
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).
Dynamic Audio Normalizer filter with visual feedback.
Replaces the default volume controls with a decibel (dB) scale instead of arbitrary percentages.
Cycle through available audio devices with key binds.
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.
Runs a child process to play a second audio stream. Synced through named pipe.
Handles commands depending on where the mouse pointer is at, mostly for mouse wheel handling.
Auto connection of external subtitles and sound, using the "WEBDAV" protocol. The connection is explicit due to explicitly specifying folders on the WebDAV server.
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.
Lightweight command-line video player supporting wide format compatibility and advanced playback features.
Switch between playing one or two audio tracks simultaneously upon file load or with a hotkey.
Simulates 7.1 surround sound to your headset. Get the sofa file from here
Script for easy access to certain audio compressors and HRTF sofalizer in mpv with option to whitelist filters based on type of media.
Fast forward through silences and quiet parts of audio, useful on videos where the speaker uses many long pauses.
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 is its own mpv. Has many script-messages. For mpv…
Turns mpv into a Jellyfin client.
Browse and watch content hosted on DLNA servers.
Select the format (quality) of internet videos.
More simple version of the sponsorblock script.
Script to skip sponsored segments of YouTube videos.
Save live streams without encoding.
Select youtube-dl format for streaming.
Change the streamed video and audio quality (ytdl-format) on the fly.
Download YouTube audio and video with one key press.
Allows input.conf commands to be cycled through with keybinds.
Use zenity and youtube-dl to search YouTube. Linux only.
A menu for (auto) playing YouTube's "up next"/recommended videos, that show up on the right side on the website.
Automatically adjusts ytdl-format (yt-dlp) for specified domains.
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.
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.
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…
A web browser extension that can open a video stream on a web page with an external player.
Open magnet links using confluence HTTP service. Recommended to use modified script for TorrServer instead.
Allows streaming torrents using TorrServer. Support magnet links and .torrent files
Allows for playback of media from the BitTorrent network using TorrServer.
Allows streaming torrents using FUSE via btfs.
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.
Provides for more network-glitch-robust caching of live streams by adjusting replay speed.
stops the demuxer from downloading more if it is already past --end
Add current playing title to an user defined Spotify playlist.
Adds support for sop:// urls.
Show OSD stream/channel title when switching the IPTV channels from m3u playlist.
Allows streaming of magnet links using peerflix, similar to youtube-dl.
Watch videos from YLE Areena in mpv using yle-dl
Stream magnet links in mpv with peerflix.
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.
Reduces MPV cache for streams by increasing playback speed. Works with Twitch through Streamlink.
Sends the information about playing tracks to last.fm, see http://www.last.fm/help/faq?category=99 for more info.
Simple MitM http proxy to modify Range http headers. Can be used to speed up youtube videos.
This script lets you search and play torrents from Rutor via TorrServer directly in mpv, without using a browser or external applications. The search is bound to the f key inside mpv and uses a user input module to get text from the keyboard. The M key opens the main script UI, showing everything…
Automatically change the refresh rate of the current display to match the playing video (Windows).
Adjusts the display refresh rate and video speed for almost 1:1 playback (Unix-like OSes, Xorg / X11).
Displays the current and maximum GPU frequency as an osd message.
vapoursynth-mvtools script.
Shows a shorter time format when seeking: 0:15 / 3:10, 08:20 / 55:00, 0:00:05 / 1:30:14.
Automatically sets the display refresh rate to the one best suitable for the video played
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.
Implements a VLC style aspect ratio hotkey 'a' that stretches the video to different aspect ratios.
Very powerful conditional logic and multiple action engine for your keybindings, without having to write a single line of code!
Lightweight command-line video player supporting wide format compatibility and advanced playback features.
Automatically crop video using the Matroska PixelCrop properties. Includes optional workaround for hardware decoding.
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).
Seek to an absolute timestamp specified via keyboard input.
Intelligently decide when mpv should loop, i.e. while shuffling or while playing a short file.
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 is its own mpv. Has many script-messages. For mpv…
Displays a waveform of the video in real-time.
A simple mpv script to change 4:3 aspect-ratio of video files/streams to 16:9 automatically.
Show frame info, similar to ffdshow's OSD.
Add, remove or toggle ffmpeg video filters during mpv playback.
Skips to the next silence in the file.
Test mpv/FFmpeg video filter(vf) strings with editable popup dialog.
Cycle between lavfi's denoise filters (press n)
Remove channel logo from videos.
Script for easy access to certain audio compressors and HRTF sofalizer in mpv with option to whitelist filters based on type of media.
A wayland VO patch and C plugin which forwards keyboard and mouse input to a headless compositor for playing 2D games with upscaling mpv user shaders.
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.
Interactive 360° Video Viewer. With full camera control through mouse and keyboard inputs.
More display properties for mpv, support toggle Windows HDR.
Fast Catmull-Rom approximation using 5 samples by omitting corners.
High-performance on-the-fly thumbnailer for mpv.
Automatically loops files that are under a given duration (default 5 seconds).
Take a sequence of equispaced screenshots.
Screenshot the video (with subs, without subs or the whole window) and copy it to the clipboard. For Windows, Linux/BSD and MacOs
Take cropped screenshots.
Creates animated gifs using hotkeys.
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.
Take screenshot and convert images with waifu2x.
Creates animated webp using mpv hotkeys. (Windows only)
A configuration to use mpv as an image viewer.
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.
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.
Display and navigate the playlist in a grid view of thumbnails.
Configuration, scripts and tips for using mpv as an image viewer.
Create a mosaic/thumbnail image.
Uses Exiftool to get the "Date/Time Original" and saves a screenshot with the name being the actual time the video was taken.
Sort screenshots based on the file they're screenshotted from and nested directories.
Place screenshots into folders for each video, along with timestamping them.
Creates animated webp/avif using mpv A-B loop and FFmpeg. (Support Windows and Linux)
In‑player tiled screenshot gallery that turns your screenshots into visual bookmarks for fast navigation. Click thumbnails to jump instantly. Export screenshots to contact sheets (PNG), CSV, and Excel table XLSX.
Trim clips without transcoding.
Cropping videos with ease.
Create video and audio clips.
Create a video out of cuts.
Get the file path, timestamps, and cropping coordinates for ffmpeg.
Video cutting/clipping/slicing script.
Place screenshots into folders for each video, along with timestamping them.
Generate bilingual subtitles.
Cut uncompressed fragments of the video.
Cut fragments of video in original format.
Allows you to quickly create excerpts from media files, you just have to set begin and end markers.
Quickly trim videos using ffmpeg within mpv.
Discord integration for mpv, using the Game SDK instead of Discord RPC. Supports: MacOS and Windows. (Linux is not supported by Game SDK)
Discord Rich Presence integration.
Discord RPC integration for mpv using lua-discordRPC as base.
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.
Discord Rich Presence integration. Also displays cover art from MusicBrainz archive.
Displays lines from an irc channel.
Load local damaku files.
Overlays YouTube chat on top of a video using yt-dlp.
Show Twitch chat messages as subtitles when watching Twitch LIVE.
Show Twitch chat messages as subtitles when watching Twitch VOD with mpv.
Keep selected property values (like volume) between player sessions.
Uses guessit to detect a media title by filename and set force-media-title variable. Useful for getting cleaner screenshot file names.
Saves current audio track, subtitle track, subtitle position, etc. for all videos in the folder.
Cycle through existing video/audio/subtitle tracks, skipping the "none" option.
Very powerful conditional logic and multiple action engine for your keybindings, without having to write a single line of code!
An optimized script to restore properties from past sessions. Alternative to persist-properties and remember-props scripts.
Display configuration files on the OSD.
API to request text user input.
Interractive chapter-list menu.
Searchable and configurable menu to quickly find key bindings and commands.
OSC framework to help build your custom OSC.
WebM converter based on MoonScript.
Script and shader manager.
Copy to clipboard the filename or URL, full filename path, current video time, current displayed subtitle text, video duration/metadata.
Copies the current time to the clipboard.
Copies the current media file you're playing to a predefined directory, and plays the next entry in the playlist (Unix-like)
Skip over parts of videos you don't want (others) to view
Copy mpv --time=<current-position> <path-playing> to clipboard. Useful for sharing when playing URLs.
Toggles the on-screen controller with a hotkey.
Fork of copy-paste-URL with support for Linux.
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.
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.
Choose the VO based on if the laptop is on battery or not.
Show OSD stream/channel title when switching the IPTV channels from m3u playlist.
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.
Show mpv window in the center of the display when it is in floating mode (i3wm)
Disables the ontop property when in fullscreen, and enables it again when in window mode, if it was disabled.
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.
Lightweight command-line video player supporting wide format compatibility and advanced playback features.
Removes the frame of YouTube videos.
Restore old "window-scale" behavior, so to make "add window-scale +/-" keybinds work again when any of the autofit-* options are defined.
Very powerful conditional logic and multiple action engine for your keybindings, without having to write a single line of code!
Cycle between your custom defined profiles while watching the video.
Opens the kinopoisk page that corresponds to the currently playing media file.
Opens the IMDb page that corresponds to the currently playing media file.
Opens the Anilist page that corresponds to the currently playing (anime) file.
To prevent burn-ins on OLED TVs, this script fades-in a black screen after 15 seconds when paused in fullscreen.
A simpler and more recent notifications script for libnotify-compatible (i.e. Unix-like) notifications daemons only. Supports cover art.
Adds desktop notifications to the mpv media player, which show metadata like artist, album name and track name when the track changes.
Converging point for all forks of rohieb's notify scrip.
Test mpv/FFmpeg video filter(vf) strings with editable popup dialog.
Play text files using text-to-speech (TTS). (Works on Linux, MacOS).
View PDFs in mpv using ImageMagick. (for Linux, MacOS)
Script for using mpv as a manga reader.
Toggle redshift when loading a video file and when reaching the end of said file. Now also handles pause.
Toggle redshift when viewing videos with mpv.
Toggle redshift when viewing videos with mpv.
Prevent screen blanking on GNOME while content is playing
Removes beginning of MPEG TS file up to current position without re-writing the whole file.
Handles commands depending on where the mouse pointer is at, mostly for mouse wheel handling.
Disable the notifications while mpv is running
Disable Night Color while mpv is running.
Prevent the screen from blanking under GNOME+Wayland while a video is playing.
Now-playing-desktop notifications.
(Windows) Adds thumbbar buttons.
(Linux) Disables XScreensaver while video playback is active, a replacement for heartbeat-cmd.
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.
Intelligently decide when mpv should loop, i.e. while shuffling or while playing a short file.
Automatically loops files that are under a given duration (default 5 seconds).
Seek to an absolute timestamp specified via keyboard input.
Script to quickly convert and crop videos from within mpv, with a GUI.
Overlay basic composition guides onto your video.
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.
Change the active fs-screen based on video's aspect ratio (for systems with monitors in landscape and portrait orientations).
mpvMatroska turns mpv into a Matroska player.
Shows a shorter time format when seeking: 0:15 / 3:10, 08:20 / 55:00, 0:00:05 / 1:30:14.
A debug tool for mpv script developers, with GUI support for properties and console.
Allows the user-data property to be set at launch using config files and changed using profiles and script-opts during runtime.
A Lua REPL in the console with autocompletion and pretty-printing of returned tables. It lets you test mpv's and Lua's API without writing a script.
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 is its own mpv. Has many script-messages. For mpv…
Allows Kodi streaming add-ons to work correctly when using mpv as an external player for Kodi by parsing and extracting protocol options from Kodi's custom URL format.
Creates one IPC socket per mpv instance. Configurable. Socket name can be modified while playing.
Connects trakt.tv with mpv and automatically scrobbles movies/shows.
Automatically updates your AniList when reaching 80% completion based on the file name.
Script for easy access to certain audio compressors and HRTF sofalizer in mpv with option to whitelist filters based on type of media.
Allow users to take screenshots in MPV, crop them to keep only the bottom portion, and stitch them together into a long vertical image, just like a meme of lines.
XDG desktop notification OSD plugin for track changes or media key playback control while the window is unfocused. Supports cover art and video thumbnail of the current time position.
Cross-platform, based on C++/QT.
DLNA Media Renderer. You can push videos, pictures or musics from your mobile phone to your computer, based on Python/Web.
Jellyfin (Emby/Plex alternative) Client, based on Python.
Command-line tool that combines scrapy and webtorrent for streaming movies, based on Python/TUI.
Adds a hook that allows mpv to stream torrents using webtorrent.
A Firefox/Chrome extension for playing URLs in mpv, based on PowerShel/Shell/Python/JavaScript.
Cast media from Plex Mobile and Web apps to MPV, based on Python.
Chrome extension for playing URLs in mpv, based on JavaScript/Python/Web.
Linux YouTube frontend, based on Python/QT.
Cross-platform YouTube client based on Rust/TUI.
Windows DLNA/UPnP renderer based on Python.
Unmaintained Linux server that acts like a lightweight/headless Chromecast that only includes YouTube, based on Golang.
Unmaintained cross platform Twitch.tv client, based on C++/QT/QML.
Uses guessit to detect a media title by filename and set force-media-title variable. Useful for getting cleaner screenshot file names.
Shows the current time or the time at which playback will end.
A series of shaders designed to scale and enhance anime. Includes shaders for line sharpening, artefact removal, denoising, upscaling, and more.
A sharpen filter similar to using Unsharp Mask in Photoshop ported from SweetFX shader pack.
* 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.
Automatically skip chapters matching a given list of regular expressions (eg. "OP" or "Opening").
** 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…
User shaders for prescaling.
Fastest 0.5x downscaler for mpv, useful for 4K video playback on FHD screen (bypass chroma upscaling and color conversion in 4K resolution).
Fix radial distortion commonly found in wide angle action cameras.
Dynamic stretching filter aiming to bring effects similar to GoPro SuperView.
Prescaler based on layered convolutional networks.
Converts equirectangular 360 degree video to be watchable, at a fixed perspective.
Non-linear stretch scaling. use with --no-keepaspect.
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,…
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…
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…
This is mpvs original image sharpening algorithm ported into the shader, in order to work only after upscaling is done.
Intelligently decide when mpv should loop, i.e. while shuffling or while playing a short file.
An alternative to mpv's built in scaling. It can be slightly faster than built in scaling with equivalent quality.
A 2 pass unsharp mask and a 2 pass gaussian blur. Similar to those in Photoshop, Image Magick, Gimp, etc.
2D Image Resampling is a general resampling algorithm made for experimental / testing use.
Componentized Rec.2100 to Rec.709 conversion shader.
Jinc based image scaling. Similar to mpv's ewa or polar.
A nonlinear stretch shader and helper script for MPV, featuring bi-directional stretching and multiple tunable options.
Simple anti-ringing filter based on pixel clipping/clamping.
Chroma upsamplers that use the luma plane as a guide to achieve sharper transitions without introducing any ringing.
Shows a shorter time format when seeking: 0:15 / 3:10, 08:20 / 55:00, 0:00:05 / 1:30:14.
Luma doublers trained on Manga109.
Cute and funny CNN-based upscaler optimized for anime.
AniSD ArtCNN shader for standard definition anime content.
Snapdragon Game Super Resolution (GSR) v1 is a single-pass spatial upscaling technique originally developed by Qualcomm for mobile devices. It integrates upscaling and edge sharpening into one GPU shader pass, leveraging a 12-tap Lanczos-like scaling filter and an adaptive sharpening filter.
Automatically skip chapters matching a given list of regular expressions (eg. "OP" or "Opening").
Cross-platform video cutter/joiner, based on Python/QT.
Linux video editing with vim/spreadsheet/sed/python.
Cross-platform, based on C++/QT.
(Win) - Listary 的开源替代品,开发活跃插件众多,例如可调用 Everything 快速搜索文件、可自定义网络搜索引擎等。
X11 + Wayland - Window switcher, application launcher and dmenu replacement.
On Linux allows controlling mpv using standard media keys.
Adds mpris support to mpv.
Based on Python/Lua/JavaScript/Web.
Enabling communication between all your devices.
Implementation of KDE Connect for GNOME.
For Android, based on Java/Python.
For Android, based on Vue.js/Ionic/Node.js.
Windows 10 System Media Transport Controls (SMTC).
Python interface.
Another Python interface.
TypeScript definition file (JavaScript).
TypeScript definitions for builtin mp modules and globals.
Another TypeScript definitions for mpv JavaScript API.
Promise polyfill for mpv JavaScript runtime.
Node.js interface (JavaScript).
Embeddable player for Electron/NW.js (JavaScript).
mpv assdraw module for JavaScript.
Embeddable player for Object Pascal.
Ruby interface.
mpsm is a mpv script manager, you can install scripts provided by mpsm-scripts, or install any script with added meta info via url.
MPVKit is a collection of tools to use mpv in iOS, macOS, tvOS applications. It includes scripts to build mpv native libraries.
Sets up file associations for mpv on Windows.
Cross-platform video player for studying Japanese, based on C++/QT.
Linux karaoke software, based on Python/OpenGL.
Cross-platform application for quality control of videos, based on Python/QT.
Cross-platform app that detects playing songs on your device and plays their music videos anywhere, based on Python.
Cross-platform karaoke management app, based on JavaScript/node.js/Web.
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.
kdeldycke/awesome-falsehood
😱 Falsehoods Programmers Believe in
laoma2053/awesome-zhuiju-free
免费无广告的追剧资源指南,人工精选资源、每天检测资源有效性。收录在线影视、影视APP、网盘搜索、磁力BT、字幕、TVBox / 影视仓空壳软件/配置地址、IPTV直播源、会员拼团、影视相关开源项目。开源,社区共同维护。
ebu/awesome-broadcasting
A curated list of amazingly awesome open source resources related to broadcast technologies
44bits/awesome-opensource-documents
:blue_book: A curated list of awesome open source or open source licensed documents, guides, books.
chaofengc/Awesome-Image-Quality-Assessment
A comprehensive collection of IQA papers
PicoTrex/Awesome-Nano-Banana-images
A curated collection of fun and creative examples generated with Nano Banana & Nano Banana Pro🍌, Gemini-2.5-flash-image based model. We also release…