summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/options.rst5
-rw-r--r--player/lua/ytdl_hook.lua5
2 files changed, 8 insertions, 2 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index cc65ea98c3..cfe41fbf67 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -552,6 +552,11 @@ Program Behavior
If the script can't do anything with an URL, it will do nothing.
+ The `try_ytdl_first` script option accepts a boolean 'yes' or 'no', and if
+ 'yes' will try parsing the URL with youtube-dl first, instead of the default
+ where it's only after mpv failed to open it. This mostly depends on whether
+ most of your URLs need youtube-dl parsing.
+
The `exclude` script option accepts a ``|``-separated list of URL patterns
which mpv should not use with youtube-dl. The patterns are matched after
the ``http(s)://`` part of the URL.
diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua
index 74095e8e57..ee7a4e37fd 100644
--- a/player/lua/ytdl_hook.lua
+++ b/player/lua/ytdl_hook.lua
@@ -3,7 +3,8 @@ local msg = require 'mp.msg'
local options = require 'mp.options'
local o = {
- exclude = ""
+ exclude = "",
+ try_ytdl_first = false
}
options.read_options(o)
@@ -301,7 +302,7 @@ local function add_single_video(json)
end
end
-mp.add_hook("on_load_fail", 10, function ()
+mp.add_hook(try_ytdl_first and "on_load" or "on_load_fail", 10, function ()
local url = mp.get_property("stream-open-filename")
local start_time = os.clock()
if (url:find("ytdl://") == 1) or