From acbd537dac4ce4ea0a9ea316181123000a7082c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= Date: Fri, 21 Jun 2024 17:40:36 +0200 Subject: [PATCH] ytdl_hook.lua: allow changing try_ytdl_first during runtime Check value in hook instead of hooking conditionally. --- player/lua/ytdl_hook.lua | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua index 7ac2776a28..f58bb99fec 100644 --- a/player/lua/ytdl_hook.lua +++ b/player/lua/ytdl_hook.lua @@ -1153,18 +1153,22 @@ local function run_ytdl_hook(url) msg.debug('script running time: '..os.clock()-start_time..' seconds') end -if not o.try_ytdl_first then - mp.add_hook("on_load", 10, function () - msg.verbose('ytdl:// hook') - local url = mp.get_property("stream-open-filename", "") - if url:find("ytdl://") ~= 1 then - msg.verbose('not a ytdl:// url') - return - end - run_ytdl_hook(url) - end) +local function on_load_hook(load_fail) + local url = mp.get_property("stream-open-filename", "") + local force = url:find("^ytdl://") + local early = force or o.try_ytdl_first + if early and load_fail then + return + end + if not force and (not url:find("^https?://") or is_blacklisted(url)) then + return + end + run_ytdl_hook(url) end +mp.add_hook("on_load", 10, function() on_load_hook() end) +mp.add_hook("on_load_fail", 10, function() on_load_hook(true) end) + mp.add_hook("on_load", 20, function () msg.verbose('playlist hook') local url = mp.get_property("stream-open-filename", "") @@ -1173,16 +1177,6 @@ mp.add_hook("on_load", 20, function () end end) -mp.add_hook(o.try_ytdl_first and "on_load" or "on_load_fail", 10, function() - msg.verbose('full hook') - local url = mp.get_property("stream-open-filename", "") - if url:find("ytdl://") ~= 1 and - not ((url:find("https?://") == 1) and not is_blacklisted(url)) then - return - end - run_ytdl_hook(url) -end) - mp.add_hook("on_preloaded", 10, function () if next(chapter_list) ~= nil then msg.verbose("Setting chapters")