33 lines
879 B
Lua
33 lines
879 B
Lua
-- gallery-dl_hook.lua
|
|
--
|
|
-- load online image galleries as playlists using gallery-dl
|
|
-- https://github.com/mikf/gallery-dl
|
|
--
|
|
-- to use, prepend the gallery url with: gallery-dl://
|
|
-- e.g.
|
|
-- `mpv gallery-dl://https://imgur.com/....`
|
|
|
|
local mp = require("mp")
|
|
local utils = require("mp.utils")
|
|
local msg = require("mp.msg")
|
|
|
|
local function exec(args)
|
|
local ret = utils.subprocess({ args = args })
|
|
return ret.status, ret.stdout, ret
|
|
end
|
|
|
|
mp.add_hook("on_load", 15, function()
|
|
local fn = mp.get_property("stream-open-filename", "")
|
|
if fn:find("gdl://") ~= 1 then
|
|
msg.debug("not a gdl:// url: " .. fn)
|
|
return
|
|
end
|
|
local url = string.gsub(url, "gdl://", "")
|
|
|
|
local es, urls, result = exec({ "gallery-dl", "-g", url })
|
|
if (es < 0) or (urls == nil) or (urls == "") then
|
|
msg.error("failed to get album list.")
|
|
end
|
|
|
|
mp.commandv("loadlist", "memory://" .. urls)
|
|
end)
|