Files
dotfiles/.config/mpv/scripts/mugen.lua

35 lines
1.1 KiB
Lua

local utils = require("mp.utils")
local function get_kdata(kid)
local resp = mp.command_native({
name = "subprocess",
args = { "curl", "-s", "https://kara.moe/api/karas/" .. kid },
capture_stdout = true,
})
return utils.parse_json(resp.stdout)
end
local function get_title(kdata)
return kdata.titles[kdata.titles_default_language]
end
local function on_load()
local path = mp.get_property("path")
local kid = path:match("^https://kara.moe/kara/.-([0-9a-z-]+)$")
if kid == nil then
kid = path:match("^https://live.karaokes.moe/%?video=([0-9a-z-]+)$")
end
if kid ~= nil then
local kdata = get_kdata(kid)
local mediafile = "https://kara.moe/downloads/medias/" .. kdata.mediafile
local subfile = "https://kara.moe/downloads/lyrics/" .. kdata.subfile
mp.set_property("stream-open-filename", mediafile)
mp.set_property("replaygain-fallback", kdata.gain)
mp.set_property("title", get_title(kdata))
mp.commandv("sub-add", subfile)
end
end
mp.register_event("start-file", on_load)