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

visualizer · v0.8.0 · Vivi

Spectrum, scope, waveform, radial, particles and pitch visuals for audio-only files. Pick a mode with the dropdown or V.

built-in

Skip Intro & Credits

skip-intro · v0.8.0 · Vivi

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.

built-in
  • auto Skip automatically (toggle)
  • chapters Detect from chapter names (toggle)
  • ranges Per-show ranges (text)
  • mark Mark range for this show (action)
  • clear Clear ranges for this show (action)

Lyrics

lyrics · v0.8.0 · Vivi

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.

built-in
  • online Search lyrics online (LRCLIB) (toggle)
  • radio-mode Radio lyrics (choice)
  • radio-offset Radio sync offset (seconds) (text)
  • size Text size (choice)
  • clear-cache Downloaded lyrics (action)

Auto-tagger

auto-tagger · v0.8.0 · Vivi

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.

built-in
  • acoustid-key AcoustID API key (secret)
  • cover Embed cover art (toggle)
  • deezer Deezer (toggle)
  • itunes iTunes (toggle)
  • lastfm-key Last.fm API key (secret)
  • discogs-token Discogs token (secret)
  • lyrics Embed synced lyrics (toggle)
  • folder Library folder (text)
  • open Tag the playing file (action)
  • batch Tag library folder (action)
  • restore Restore original tags (action)

Free Music

free-music · v0.8.0 · Vivi

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.

built-in
  • jamendo-client-id Jamendo client ID (secret)
  • folder Download folder (text)
  • open Find free music (action)

Network Streams

network-streams · v0.8.0 · Vivi

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.

built-in
  • open Browse streams (action)
  • info Stream info (action)

Now Playing OSD

script-now-playing · v1.0 · Vivi · source

Example mpv Lua script: shows the title on the OSD when a file starts.

mpv script

A-B Loop & Frame Step

ab-loop · v1.0.2 · Vivi · source

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.

downloadable
Install in Vivi Settings → Extensions → Browse · 6 KB · zip · needs Vivi 0.9.0+
No special permissions
  • markers Show loop bar (toggle)
  • osd-seconds Show bar for (seconds) (choice)
  • clear Clear loop (action)

AcoustID Tagger

acoustid · v1.0.0 · Vivi · source

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.

downloadable
Install in Vivi Settings → Extensions → Browse · 17 KB · zip · needs Vivi 0.9.2+
Internet access, Files outside its folder, Runs programs
  • api-key AcoustID application API key (free: acoustid.org/new-application) (secret)
  • pattern New file name: {artist} {title} {album} {albumartist} {year} {track} {genre} (text)
  • download Download fpcalc when it is not installed (toggle)
  • identify Identify the playing file (Alt+I) (action)
  • detect Which fpcalc is used (action)

Chapter Thumbnails

chapter-thumbnails · v1.0.0 · Vivi · source

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).

downloadable
Install in Vivi Settings → Extensions → Browse · 22 KB · zip · needs Vivi 0.9.2+
Internet access, Files outside its folder, Runs programs
  • seekbar Seek-bar hover thumbnails (toggle)
  • chapters Chapter thumbnails (Chapters tab) (toggle)
  • frames Seek-bar thumbnails per file (choice)
  • download Download ffmpeg when none is installed (toggle)
  • max-cache Files kept in the thumbnail cache (choice)
  • generate Generate the thumbnails of this file now (action)
  • list Chapter list (Alt+H) (action)
  • clear Delete the cached thumbnails of this file (action)

Discord Rich Presence

discord · v1.0.0 · Vivi · source

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.

downloadable off by default
Install in Vivi Settings → Extensions → Browse · 5 KB · zip · needs Vivi 0.9.1+
Runs programs
  • app-id Discord application ID (create one at discord.com/developers/applications; its name is shown as "Listening to <name>") (text)
  • hide-names Hide titles and file names (toggle)
  • image Large image key (optional art asset of your Discord application) (text)
  • status Connection status (action)

Equalizer

equalizer · v1.0.0 · Vivi · source

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.

downloadable
Install in Vivi Settings → Extensions → Browse · 8 KB · zip · needs Vivi 0.9.0+
No special permissions
  • enabled Equalizer on (Alt+Shift+E) (toggle)
  • preset Preset (Alt+E cycles) (choice)
  • custom Custom gains in dB, 10 bands: 31 62 125 250 500 1k 2k 4k 8k 16k Hz (−12…12) (text)
  • engine Filter (choice)
  • preamp Lower the volume by the largest boost (no clipping) (toggle)
  • show Show the active preset (action)

Night Mode

night-mode · v1.0.3 · Vivi · source

Compresses loud scenes and lifts quiet dialogue so films stay understandable at low volume (mpv dynaudnorm / loudnorm). Toggle with Alt+N.

downloadable
Install in Vivi Settings → Extensions → Browse · 3 KB · zip · needs Vivi 0.9.0+
No special permissions
  • active Night mode on (toggle)
  • strength Strength (choice)

Playback Statistics

playback-stats · v1.0.2 · Vivi · source

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.

downloadable
Install in Vivi Settings → Extensions → Browse · 8 KB · zip · needs Vivi 0.9.0+
Files outside its folder
  • days Summary covers (choice)
  • show Show summary (action)
  • export Export CSV to ~/vivi-stats.csv (action)
  • clear Clear statistics (action)

Remote Control

remote-control · v1.0.0 · Vivi · source

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.

downloadable off by default
Install in Vivi Settings → Extensions → Browse · 5 KB · zip · needs Vivi 0.9.1+
Internet access, Runs programs
  • port Port of the web page (text)
  • pin PIN (asked once by the phone; leave empty for a new random 6-digit PIN) (text)
  • address Phone address and PIN (action)

Scene Chapters & Thumbnails

scene-chapters · v1.0.1 · Vivi · source

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.

downloadable
Install in Vivi Settings → Extensions → Browse · 8 KB · zip · needs Vivi 0.9.0+
Files outside its folder, Runs programs
  • auto Detect scenes automatically for videos without chapters (toggle)
  • threshold Scene change threshold (0.1–0.9, lower = more chapters) (text)
  • min_gap Minimum chapter length (seconds) (text)
  • thumbnails Save chapter thumbnails (toggle)
  • detect Detect scenes now (Alt+J) (action)
  • clear Forget cached scenes for this file (action)

Scrobbler (Last.fm & ListenBrainz)

scrobbler · v1.1.0 · Vivi · source

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.

downloadable
Install in Vivi Settings → Extensions → Browse · 24 KB · zip · needs Vivi 0.9.0+
Internet access, Files outside its folder, Runs programs
  • token ListenBrainz user token (listenbrainz.org/settings) (secret)
  • lastfm_key Last.fm API key (create one free at last.fm/api/account/create) (text)
  • lastfm_secret Last.fm shared secret (secret)
  • lastfm_connect Authorise Vivi in the browser (action)
  • lastfm_finish After allowing access in the browser (action)
  • lastfm_session Last.fm session key (filled in by Connect) (secret)
  • now_playing Send now playing (toggle)
  • audio_only Only music (skip videos) (toggle)
  • api API server (text)
  • flush Send queued listens now (action)
  • status Show scrobbler status (action)

SponsorBlock

sponsorblock · v1.1.0 · Vivi · source

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.

downloadable
Install in Vivi Settings → Extensions → Browse · 12 KB · zip · needs Vivi 0.9.0+
Internet access, Runs programs
  • categories Categories (space separated: sponsor selfpromo interaction intro outro preview music_offtopic filler) (text)
  • mode When a segment starts (choice)
  • chapters Mark segments as chapters (toggle)
  • api API server (text)
  • notice Show a notice with undo (Alt+Shift+K) after each skip (toggle)
  • local Also for downloaded files named "… [video id].ext" (toggle)
  • undo Undo the last skip (Alt+Shift+K) (action)

Subtitle Auto-Sync

subtitle-sync · v1.1.0 · Vivi · source

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).

downloadable
Install in Vivi Settings → Extensions → Browse · 22 KB · zip · needs Vivi 0.9.0+
Internet access, Files outside its folder, Runs programs
  • tool Sync tool (choice)
  • download Download alass when no sync tool is installed (toggle)
  • step Offset step for Alt+Z / Alt+X in seconds (Alt+Shift: 10 steps) (choice)
  • sync Sync current subtitle (Alt+Y) (action)
  • reset Reset the subtitle offset of this file (Alt+Backspace) (action)
  • detect Which sync tool and ffmpeg are used (action)

YouTube & yt-dlp

youtube · v1.2.0 · Vivi · source

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.

downloadable
Install in Vivi Settings → Extensions → Browse · 41 KB · zip · needs Vivi 0.9.1+
Internet access, Files outside its folder, Runs programs
  • url Video or playlist URL (Alt+U pastes from the clipboard) (text)
  • add List the entries in the playlist (action)
  • quality Download quality (choice)
  • mode Download (choice)
  • audio-format Audio-only format (mp3/m4a/opus use ffmpeg, downloaded if missing) (choice)
  • sizes Estimated size per quality (action)
  • folder Download folder (empty: Downloads/Vivi) (text)
  • pick-folder Choose the download folder (action)
  • download Download the URL (or the playing video) (action)
  • cancel Stop the running download (action)
  • source yt-dlp to use (choice)
  • auto-update Update the managed yt-dlp daily (and ffmpeg monthly) (toggle)
  • update Update the managed yt-dlp now (action)
  • update-ffmpeg Update the managed ffmpeg (downloaded only for 1080p+ or audio conversion) (action)
  • info Which yt-dlp and ffmpeg are used (action)

Want yours listed? Read Write a plugin and open a pull request that adds a plugins/<id>/ package (see Package & publish).