summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/options.rst5
-rw-r--r--player/loadfile.c2
-rw-r--r--player/lua/ytdl_hook.lua6
3 files changed, 12 insertions, 1 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index f35f43543f..526b2143fc 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -263,6 +263,11 @@ Playback Control
includes special protocols and anything that doesn't refer to normal files.
Local files and HTTP links on the other hand are always considered safe.
+ In addition, if a playlist is loaded while this is set, the added playlist
+ entries are not marked as originating from network or potentially unsafe
+ location. (Instead, the behavior is as if the playlist entries were provided
+ directly to mpv command line or ``loadfile`` command.)
+
Note that ``--playlist`` always loads all entries, so you use that instead
if you really have the need for this functionality.
diff --git a/player/loadfile.c b/player/loadfile.c
index bb7365c641..fc3bb97a96 100644
--- a/player/loadfile.c
+++ b/player/loadfile.c
@@ -1429,7 +1429,7 @@ static void play_current_file(struct MPContext *mpctx)
if (mpctx->demuxer->playlist) {
struct playlist *pl = mpctx->demuxer->playlist;
int entry_stream_flags = 0;
- if (!pl->disable_safety) {
+ if (!pl->disable_safety && !mpctx->opts->load_unsafe_playlists) {
entry_stream_flags = STREAM_SAFE_ONLY;
if (mpctx->demuxer->is_network)
entry_stream_flags |= STREAM_NETWORK_ONLY;
diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua
index 9dd1dc34c9..bc5c242907 100644
--- a/player/lua/ytdl_hook.lua
+++ b/player/lua/ytdl_hook.lua
@@ -644,6 +644,12 @@ function run_ytdl_hook(url)
end
mp.set_property("stream-open-filename", "memory://" .. table.concat(playlist, "\n"))
+
+ -- This disables mpv's mushy playlist security code, which will
+ -- break links that will be resolved to EDL later (because EDL is
+ -- not considered "safe", and the playlist entries got tagged as
+ -- network originating due to the playlist redirection).
+ mp.set_property_native("file-local-options/load-unsafe-playlists", true)
end
else -- probably a video