JnJ - Jellies and Jams
A jellyfin client built into mpv
Configuring
Every option in JnJ may be configured via a script-message. Example:
local mp = require("mp")
local utils = require("mp.utils")
-- action keybind
mp.commandv("script-message", "jnj-bind-toggle", "Ctrl+j")
mp.commandv("script-message", "jnj-bind-enter", "l")
mp.commandv("script-message", "jnj-bind-leave", "h")
mp.commandv("script-message", "jnj-bind-down", "j")
mp.commandv("script-message", "jnj-bind-up", "k")
mp.commandv("script-message", "jnj-bind-toggle-played", "m")
mp.commandv("script-message", "jnj-bind-toggle-favorite", "s")
-- send user login info (this should be done through a script message to ensure
-- other scripts cannot leach your password from the script-message
mp.commandv("script-message-to", "jellies_and_jams" "jnj-set-settings",
utils.format_json({
url = 'http://localhost:8096',
username = 'username',
password = 'password'
}))
Available actions
- jnj-set-settings
- jnj-bind-toggle
- jnj-bind-open
- jnj-bind-close
- jnj-bind-leave
- jnj-bind-down
- jnj-bind-up
- jnj-bind-toggle-played
- jnj-bind-toggle-favorite
- jnj-bind-top
- jnj-bind-bottom
- jnj-bind-pagedown
- jnj-bind-pageup
jnj-bind-*
takes a keybind as their only argument
jnj-set-settings
takes a json formatted string of the following structure:
{
"url":"",
"username":"",
"password":"",
"header":{
"prefix": "jellyfin/",
"separator":"/",
"contents":[
["watched", " ","favorite"," ","runtime"],
["stars"," ","rating"," ","release"]
]
},
"client":{
"name":"Jellyfin Lua Client",
"device":"Mpv",
"version":"1.1"
}
}
All filled in values are provided by default, but may be changed by the user.