{"id":13896660,"url":"https://github.com/jonniek/mpv-scripts","last_synced_at":"2025-07-17T13:30:46.628Z","repository":{"id":128444095,"uuid":"81722260","full_name":"jonniek/mpv-scripts","owner":"jonniek","description":"A collection of mpv scripts","archived":false,"fork":false,"pushed_at":"2024-11-03T09:31:36.000Z","size":60,"stargazers_count":176,"open_issues_count":1,"forks_count":10,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-11-25T02:33:16.178Z","etag":null,"topics":["lua","mpv","mpv-script","script"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonniek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-12T11:50:17.000Z","updated_at":"2024-11-23T10:23:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"20bf5cf2-ea24-42c3-880a-efcc85b73762","html_url":"https://github.com/jonniek/mpv-scripts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonniek/mpv-scripts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonniek%2Fmpv-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonniek%2Fmpv-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonniek%2Fmpv-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonniek%2Fmpv-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonniek","download_url":"https://codeload.github.com/jonniek/mpv-scripts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonniek%2Fmpv-scripts/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265611081,"owners_count":23797809,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lua","mpv","mpv-script","script"],"created_at":"2024-08-06T18:03:04.187Z","updated_at":"2025-07-17T13:30:46.308Z","avatar_url":"https://github.com/jonniek.png","language":"Lua","readme":"A collection of all my mpv scripts. \n  \nWhat are lua scripts? [Mpv.io lua documentation](https://mpv.io/manual/master/#lua-scripting)  \nWhere should I put them? [Unix](https://mpv.io/manual/stable/#files) [Windows](https://mpv.io/manual/stable/#files-on-windows)  \nHow do I use them? Use default keybinds or bind your own in [input.conf](https://mpv.io/manual/stable/#input-conf).  \nYou can find more mpv scripts here:\n- [mpv-wiki](https://github.com/mpv-player/mpv/wiki/User-Scripts)\n- [awesome-mpv](https://github.com/stax76/awesome-mpv)\n\nSome of my scripts require you to edit some settings in the head of lua files to work as intended(usually paths).  \nSome of my scripts use script-messages for control instead of script-bindings to allow more dynamic commands to be parsed from parameters. You can call script-messages from any other lua script with `mp.command(\"script-message _name_ _arg1_ _arg2_\")`, [mpv-repl](https://github.com/rossy/mpv-repl) by typing `script-message _name_ _arg1_ _arg2_`, my Menu script or just simply bind them to a key in input.conf `H script-message addscrollingsub \"hello world\"`.  \n\nIf you have problems with any of my scripts or have feature requests feel free to open an issue. Contributions are also welcome.  \n\n### [playlistmanager](https://github.com/jonniek/Mpv-Playlistmanager) \nShow playlist in a readable, navigatable and editable format. Cool quirks like url title fetching, filename formatting, saving, loading, shuffling sorting and more included.\n\n### [Filenavigator](https://github.com/jonniek/mpv-filenavigator)\nNavigate your local system and open directories or files, or add files to your playlist.\n\n### [mpv-remote](https://github.com/jonniek/mpv-remote)\nA super simple remote controller for mpv\n\n### [Menu](https://github.com/jonniek/mpv-menu)\n0-dependency configurable command menu.\n\n### [waifu2x](https://github.com/jonniek/mpv-waifu2x)  \nTake screenshots or convert images with waifu2x upscalling algorithm.\n\n### [nextfile](https://github.com/jonniek/mpv-nextfile)  \nForce open next or previous file in the currently playing files directory.\n\n### [unseen-playlistmaker](https://github.com/jonniek/unseen-playlistmaker)\nKeeps track of your watched files locally and loads unseen files from a specified directory into a playlist on keybind.  \n\n### [appendUrl.lua](https://github.com/jonniek/mpv-scripts/blob/master/appendURL.lua)  \nAppends url from clipboard to playlist.  \n  \n`a script-binding appendURL`\n\n### [customscreenshot.lua](https://github.com/jonniek/mpv-scripts/blob/master/customscreenshot.lua)\nSave screenshots in customized directories based on given conditions such as filename pattern match. Gives a lot of freedom for the user for the expense of requiring some lua knowledge with patterns, strings and mpv lua api. Read the lua file settings for more details. If you need any help with this script you can open an issue.  \n  \n`KEY script-message custom-screenshot [subtitles|video|window]` - take a custom screenshot  \n\n### [cycleaudiodevice.lua](https://github.com/jonniek/mpv-scripts/blob/master/cycleaudiodevice.lua)\nCycles predefined audio devices. Created this because updating device name on many places was not convenient. Now I can just call script message with headphones/speakers from different places like for example [context](https://gist.github.com/avih/bee746200b5712220b8bd2f230e535de) menu script or an alias startup command and only change them in one place between systems/setups. Set devices to match your system before using with help of `mpv --audio-device=help`. If you toggle only with key consider using a simple input config like `ctrl+A cycle-values audio-device \"auto\" \"openal/device1\" \"pulse/device2.analog-stereo\"` instead of this script.  \n  \n`ctrl+A script-binding cycleaudiodevice`  \nargument below is index or nicename of device  \n`KEY script-message setaudiodevice argument` - set audio device on runtime  \n`--script-opts=audio=argument` - set audio device on startup  \n\n### [radio.lua](https://github.com/jonniek/mpv-scripts/blob/master/radio.lua)  \nLoads a radio playlist/file on keybind with ability to save song names into a file. Requires idle or idle=once.  \n  \n`R script-binding radio-toggle` - toggle radio on runtime  \n`r script-binding mark-song`  \n`mpv --no-video --idle=once --script-opts=radio-autostart=yes` - start radio on startup  \n\n### [trashfileonend.lua](https://github.com/jonniek/mpv-scripts/blob/master/trashfileonend.lua)  \nAllows you to remove one or consecutive files after they have ended playing. Settings for different eof-reasons and default behaviour are inside lua settings variable. Use with toggling keybind or send command directly with script message.  \n  \n`ctrl+alt+x script-binding toggledeletefile`  \n`script-message trashfileonend true true` - deletefile[true, false], oneonly[true, false]  \n`mpv --script-opts=trashfileonend-deletefile=yes` - open mpv with deletefile enabled\n  \n### [movingsubtitles](https://gist.github.com/jonniek/c3fed06cd7990518e8b2389f48ba3619)\nExperimental nicovideo style scrolling subtitles/messages. There seems to be some kind of memoryleak that crashes the script after some time. Also has some hardcoded limits and string transformations that you might want to change. Messages can be sent with script-message from mpv scripts or IPC socket from other sources.  \n  \n`H script-message addscrollingsub \"hello world\"`  \n`$ echo 'script-message addscrollingsub \"hello world\"' | socat - /tmp/mpvsocket`  \n`mp.command(\"script-message addscrollingsub \\\"hello world\\\"\")`\n\n\n### [typescript template](https://github.com/jonniek/mpv-typescript-template)\nDo you want to create mpv-scripts with TypeScript? You can use this template to get started.  \n\n## LICENSE\nScripts in this repo: appendUrl under ISC and rest UNLICENSE. Linked repositories contain their respective licenses.\n","funding_links":[],"categories":["Lua"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonniek%2Fmpv-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonniek%2Fmpv-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonniek%2Fmpv-scripts/lists"}