Plugin catalog
21 plugins. Built-in plugins ship with Vivi; enable them in Settings → Extensions.
Downloadable plugins install with one click from Settings → Extensions → Browse, are checked
against their sha256 and update themselves. mpv scripts go in ~/.config/vivi/scripts.
Machine-readable list: index.json · how distribution works.
Music Visualizer
Spectrum, scope, waveform, radial, particles and pitch visuals for audio-only files. Pick a mode with the dropdown or V.
Skip Intro & Credits
Shows a Skip button during intros and credits found in chapter names (Intro, Opening, OP, Credits, Ending, ED) or set per show. Can skip automatically.
autoSkip automaticallychaptersDetect from chapter namesrangesPer-show rangesmarkMark range for this showclearClear ranges for this show
Lyrics
Synced lyrics as a karaoke overlay, from a .lrc file next to the song or from LRCLIB, cached on disk. Radio streams: lyrics for the current stream title.
onlineSearch lyrics online (LRCLIB)radio-modeRadio lyricsradio-offsetRadio sync offset (seconds)sizeText sizeclear-cacheDownloaded lyrics
Subtitle Search
Find and download subtitles from OpenSubtitles (by file hash and name) in the Add Subtitles dialog. Needs a free API key.
api-keyOpenSubtitles API keylanguagesLanguagesusernameUsername (optional)passwordPassword (optional)
Auto-tagger
Identifies songs by their audio (AcoustID fingerprint) or tags, looks them up on MusicBrainz, Deezer, iTunes, Last.fm and Discogs and writes tags, hi-res covers and optional LRCLIB synced lyrics after a preview that shows each field's source. Originals are backed up. Keys optional.
acoustid-keyAcoustID API keycoverEmbed cover artdeezerDeezeritunesiTuneslastfm-keyLast.fm API keydiscogs-tokenDiscogs tokenlyricsEmbed synced lyricsfolderLibrary folderopenTag the playing filebatchTag library folderrestoreRestore original tags
Free Music
Search Creative Commons and public-domain music on the Internet Archive and Jamendo, preview it, and download it to your library with tags, cover and licence attribution. Jamendo needs a free client ID.
jamendo-client-idJamendo client IDfolderDownload folderopenFind free music
Network Streams
Browse Internet radio (radio-browser.info), import M3U/IPTV playlists, keep saved and recent streams, and see stream info (now-playing title, codec, bitrate, buffer). No key needed.
openBrowse streamsinfoStream info
Now Playing OSD
Example mpv Lua script: shows the title on the OSD when a file starts.
A-B Loop & Frame Step
Set and clear A-B loop points from the keyboard, nudge them by a frame, step frame by frame while paused and see the loop on an on-screen bar.
markersShow loop barosd-secondsShow bar for (seconds)clearClear loop
AcoustID Tagger
Identifies the playing song by its sound: fingerprints it with Chromaprint's fpcalc, looks it up on AcoustID and MusicBrainz and opens the Auto-tagger's before/after review with the tags and a new file name built from your pattern (for example {artist} - {title}), applied only when you confirm. Uses an installed fpcalc, otherwise downloads the official one (1.3–2.6 MB). Needs your free AcoustID application key.
api-keyAcoustID application API key (free: acoustid.org/new-application)patternNew file name: {artist} {title} {album} {albumartist} {year} {track} {genre}downloadDownload fpcalc when it is not installedidentifyIdentify the playing file (Alt+I)detectWhich fpcalc is used
Chapter Thumbnails
Thumbnail preview while hovering the seek bar and a picture for every chapter in the Chapters tab, generated in the background and cached per file. Alt+H lists the chapters with titles and times. Uses your ffmpeg; without one it downloads Vivi's media ffmpeg build once (about 15 MB, shared with Subtitle Auto-Sync).
seekbarSeek-bar hover thumbnailschaptersChapter thumbnails (Chapters tab)framesSeek-bar thumbnails per filedownloadDownload ffmpeg when none is installedmax-cacheFiles kept in the thumbnail cachegenerateGenerate the thumbnails of this file nowlistChapter list (Alt+H)clearDelete the cached thumbnails of this file
Discord Rich Presence
Shows the current title, artist and progress in your Discord status. Needs a Discord application ID; Discord must be running on this computer. Ships a small native helper (vivi-discord) that talks to Discord's local IPC.
app-idDiscord application ID (create one at discord.com/developers/applications; its name is shown as "Listening to <name>")hide-namesHide titles and file namesimageLarge image key (optional art asset of your Discord application)statusConnection status
Equalizer
Equalizer presets (Bass, Vocal, Rock, Night, Flat) and a custom 10-band EQ from 31 Hz to 16 kHz, through mpv's audio filters (ffmpeg equalizer or superequalizer). Alt+E cycles presets, Alt+Shift+E turns it off; the choice is remembered. Independent of the Audio panel's own EQ.
enabledEqualizer on (Alt+Shift+E)presetPreset (Alt+E cycles)customCustom gains in dB, 10 bands: 31 62 125 250 500 1k 2k 4k 8k 16k Hz (−12…12)engineFilterpreampLower the volume by the largest boost (no clipping)showShow the active preset
Night Mode
Compresses loud scenes and lifts quiet dialogue so films stay understandable at low volume (mpv dynaudnorm / loudnorm). Toggle with Alt+N.
activeNight mode onstrengthStrength
Playback Statistics
Counts time watched and listened per day, with top artists and shows. Kept locally in a small TSV file; Alt+S shows a summary, export as CSV or clear any time.
daysSummary coversshowShow summaryexportExport CSV to ~/vivi-stats.csvclearClear statistics
Remote Control
Control playback from your phone: a web page on your local network with play/pause, seek, volume, next/previous, the queue and cover art. PIN protected; only devices on the local network can connect. Ships a small native helper (vivi-remote) that serves the page.
portPort of the web pagepinPIN (asked once by the phone; leave empty for a new random 6-digit PIN)addressPhone address and PIN
Scene Chapters & Thumbnails
Creates chapters at scene changes for videos without chapters (ffmpeg scene detection, in the background) and saves a thumbnail for every chapter. Results are cached on disk.
autoDetect scenes automatically for videos without chaptersthresholdScene change threshold (0.1–0.9, lower = more chapters)min_gapMinimum chapter length (seconds)thumbnailsSave chapter thumbnailsdetectDetect scenes now (Alt+J)clearForget cached scenes for this file
Scrobbler (Last.fm & ListenBrainz)
Sends what you listen to to Last.fm and/or ListenBrainz: now playing when a track starts and a scrobble after half the track or 4 minutes. Scrobbles made offline are queued and sent later. Needs your ListenBrainz user token, or your Last.fm API key + shared secret (free) and one browser authorisation.
tokenListenBrainz user token (listenbrainz.org/settings)lastfm_keyLast.fm API key (create one free at last.fm/api/account/create)lastfm_secretLast.fm shared secretlastfm_connectAuthorise Vivi in the browserlastfm_finishAfter allowing access in the browserlastfm_sessionLast.fm session key (filled in by Connect)now_playingSend now playingaudio_onlyOnly music (skip videos)apiAPI serverflushSend queued listens nowstatusShow scrobbler status
SponsorBlock
Skips sponsor, intro, self-promotion and other segments in YouTube videos opened as streams, using the crowd-sourced SponsorBlock database. Segments are marked as chapters on the seek bar; every skip shows a notice and can be undone (Alt+Shift+K). Also works for videos the YouTube plugin adds or downloads.
categoriesCategories (space separated: sponsor selfpromo interaction intro outro preview music_offtopic filler)modeWhen a segment startschaptersMark segments as chaptersapiAPI servernoticeShow a notice with undo (Alt+Shift+K) after each skiplocalAlso for downloaded files named "… [video id].ext"undoUndo the last skip (Alt+Shift+K)
Subtitle Auto-Sync
Aligns the current external subtitle to the audio with alass or ffsubsync in the background, then loads the synced copy saved next to the original. Manual offset keys (Alt+Z / Alt+X) are remembered per file. Uses an installed alass or ffsubsync; otherwise downloads alass on first use (3 MB on Linux x86_64, 26 MB on Windows) and, without a system ffmpeg, Vivi's media ffmpeg build (about 15 MB, shared with Chapter Thumbnails).
toolSync tooldownloadDownload alass when no sync tool is installedstepOffset step for Alt+Z / Alt+X in seconds (Alt+Shift: 10 steps)syncSync current subtitle (Alt+Y)resetReset the subtitle offset of this file (Alt+Backspace)detectWhich sync tool and ffmpeg are used
YouTube & yt-dlp
Paste a video or playlist URL (or press Alt+U with one in the clipboard) to list its entries in the playlist, see the estimated size of each quality, and download video or audio only into a folder you choose, with progress toasts. Uses your system yt-dlp and ffmpeg when present; otherwise downloads and updates verified copies: yt-dlp (18–40 MB) from its official releases on first use, Vivi's own minimal static ffmpeg + ffprobe (about 6 MB) only for 1080p+ or audio conversion.
urlVideo or playlist URL (Alt+U pastes from the clipboard)addList the entries in the playlistqualityDownload qualitymodeDownloadaudio-formatAudio-only format (mp3/m4a/opus use ffmpeg, downloaded if missing)sizesEstimated size per qualityfolderDownload folder (empty: Downloads/Vivi)pick-folderChoose the download folderdownloadDownload the URL (or the playing video)cancelStop the running downloadsourceyt-dlp to useauto-updateUpdate the managed yt-dlp daily (and ffmpeg monthly)updateUpdate the managed yt-dlp nowupdate-ffmpegUpdate the managed ffmpeg (downloaded only for 1080p+ or audio conversion)infoWhich yt-dlp and ffmpeg are used
Want yours listed? Read Write a plugin and open a pull request that adds a plugins/<id>/ package (see Package & publish).