summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Constantino <wiiaboo@gmail.com>2018-02-10 00:06:36 +0000
committerKevin Mitchell <kevmitch@gmail.com>2018-02-11 23:27:37 -0800
commit57228b65810f1026f1ac10a0df86d7434289c345 (patch)
tree0ad244c750621833c4d826b36b910d41bb062d32
parent664e8fe66ae8532471c2528e86812122af6a04dd (diff)
downloadmpv-57228b65810f1026f1ac10a0df86d7434289c345.tar.bz2
mpv-57228b65810f1026f1ac10a0df86d7434289c345.tar.xz
ytdl_hook: add script opt for using manifest URLs
Disable by default. This feature was added in 7eb342757, which allowed stream selection in runtime. Problem with this atm is that FFmpeg will try to demux every first packet of every track leading to noticeable delay opening the URL. This option can be changed to enabled by default or removed when HLS/DASH demuxers are improved upstream.
-rw-r--r--DOCS/man/options.rst4
-rw-r--r--player/lua/ytdl_hook.lua5
2 files changed, 7 insertions, 2 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 0ffd6c783a..14a901751d 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -560,6 +560,10 @@ Program Behavior
which mpv should not use with youtube-dl. The patterns are matched after
the ``http(s)://`` part of the URL.
+ The `use_manifests` script option makes mpv use the master manifest URL for
+ formats like HLS and DASH, if available, allowing for video/audio selection
+ in runtime. It's disabled ("no") by default for performance reasons.
+
``^`` matches the beginning of the URL, ``$`` matches its end, and you
should use ``%`` before any of the characters ``^$()%|,.[]*+-?`` to match
that character.
diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua
index 59ffbd3b94..3c5068bfd7 100644
--- a/player/lua/ytdl_hook.lua
+++ b/player/lua/ytdl_hook.lua
@@ -4,7 +4,8 @@ local options = require 'mp.options'
local o = {
exclude = "",
- try_ytdl_first = false
+ try_ytdl_first = false,
+ use_manifests = false
}
options.read_options(o)
@@ -279,7 +280,7 @@ local function add_single_video(json)
local reqfmts = json["requested_formats"]
-- prefer manifest_url if present
- if valid_manifest(json) then
+ if o.use_manifests and valid_manifest(json) then
local mpd_url = reqfmts and reqfmts[1]["manifest_url"] or
json["manifest_url"]
if not mpd_url then