From 0160eb51cc841db8f3ca838858e13f8489617a47 Mon Sep 17 00:00:00 2001 From: eljamm <83901271+eljamm@users.noreply.github.com> Date: Sat, 4 Mar 2023 10:40:39 +0100 Subject: [PATCH 1/2] yt-dlp: update to 2023.03.04. --- srcpkgs/yt-dlp/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/yt-dlp/template b/srcpkgs/yt-dlp/template index 7521ca2d14b1..a13631631169 100644 --- a/srcpkgs/yt-dlp/template +++ b/srcpkgs/yt-dlp/template @@ -1,6 +1,6 @@ # Template file for 'yt-dlp' pkgname=yt-dlp -version=2023.02.17 +version=2023.03.04 revision=1 build_style=python3-module make_check_args="-k not(download)" @@ -13,4 +13,4 @@ license="Unlicense" homepage="https://github.com/yt-dlp/yt-dlp" changelog="https://raw.githubusercontent.com/yt-dlp/yt-dlp/master/Changelog.md" distfiles="https://github.com/yt-dlp/yt-dlp/releases/download/$version/yt-dlp.tar.gz" -checksum=81f607b8754b1bc67e6592a4e316c015d720e7118757a5afd4ef2aaf37d2ef29 +checksum=771d2abefcd5f1e6f3ab6d6d18cdae98be4ab73538d1174e7e7236640418e150 From 08c7c7dc84f6e1af46e322d0ade5d7c3f6052ee2 Mon Sep 17 00:00:00 2001 From: eljamm <83901271+eljamm@users.noreply.github.com> Date: Sat, 4 Mar 2023 12:52:11 +0100 Subject: [PATCH 2/2] mpv: patch to fix yt-dlp fragments --- srcpkgs/mpv/patches/fix-ytdl-fragment.patch | 26 +++++++++++++++ srcpkgs/mpv/patches/ytdl-fragment-log.patch | 37 +++++++++++++++++++++ srcpkgs/mpv/template | 2 +- 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/mpv/patches/fix-ytdl-fragment.patch create mode 100644 srcpkgs/mpv/patches/ytdl-fragment-log.patch diff --git a/srcpkgs/mpv/patches/fix-ytdl-fragment.patch b/srcpkgs/mpv/patches/fix-ytdl-fragment.patch new file mode 100644 index 000000000000..d01421de7ead --- /dev/null +++ b/srcpkgs/mpv/patches/fix-ytdl-fragment.patch @@ -0,0 +1,26 @@ +From 94c189dae76ba280d9883b16346c3dfb9720687e Mon Sep 17 00:00:00 2001 +From: Christoph Heinrich +Date: Fri, 3 Mar 2023 00:45:45 +0100 +Subject: [PATCH] ytdl_hook: init fragment requires other fragments + +With dash the first fragment was always considered an init fragment if +there wasn't a duration. However that only makes sense when there are +also other fragments, so check if there are other fragments in addition +to the lack of a duration. +--- + player/lua/ytdl_hook.lua | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua +index 27e5f4544b2..9e50b3a80b8 100644 +--- a/player/lua/ytdl_hook.lua ++++ b/player/lua/ytdl_hook.lua +@@ -297,7 +297,7 @@ local function edl_track_joined(fragments, protocol, is_live, base) + local args = "" + + -- assume MP4 DASH initialization segment +- if not fragments[1].duration then ++ if not fragments[1].duration and #fragments > 1 then + msg.debug("Using init segment") + args = args .. ",init=" .. edl_escape(join_url(base, fragments[1])) + offset = 2 diff --git a/srcpkgs/mpv/patches/ytdl-fragment-log.patch b/srcpkgs/mpv/patches/ytdl-fragment-log.patch new file mode 100644 index 000000000000..fb5e8bcec4f7 --- /dev/null +++ b/srcpkgs/mpv/patches/ytdl-fragment-log.patch @@ -0,0 +1,37 @@ +From 362256edbc4f95c63e69c1fa8c8dce9cc6c44288 Mon Sep 17 00:00:00 2001 +From: Christoph Heinrich +Date: Fri, 3 Mar 2023 00:50:58 +0100 +Subject: [PATCH] ytdl_hook: only log error when no fallback url available + +An error indicates that something doesn't work, but as long as a +safe url is available, playback is still expected to work. + +Thus reduce logging level of MP4 DASH without fragments message and +add a new error message for when there is no safe url available either. + +Also adds a missing space. +--- + player/lua/ytdl_hook.lua | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua +index 9e50b3a80b8..77f7446ed22 100644 +--- a/player/lua/ytdl_hook.lua ++++ b/player/lua/ytdl_hook.lua +@@ -309,7 +309,7 @@ local function edl_track_joined(fragments, protocol, is_live, base) + -- if not available in all, give up. + for i = offset, #fragments do + if not fragments[i].duration then +- msg.error("EDL doesn't support fragments" .. ++ msg.verbose("EDL doesn't support fragments " .. + "without duration with MP4 DASH") + return nil + end +@@ -423,6 +423,7 @@ local function formats_to_edl(json, formats, use_all_formats) + track.protocol, json.is_live, + track.fragment_base_url) + if not edl_track and not url_is_safe(track.url) then ++ msg.error("No safe URL or supported fragmented stream available") + return nil + end + diff --git a/srcpkgs/mpv/template b/srcpkgs/mpv/template index 0a56d037e194..e163c496c6eb 100644 --- a/srcpkgs/mpv/template +++ b/srcpkgs/mpv/template @@ -1,7 +1,7 @@ # Template file for 'mpv' pkgname=mpv version=0.35.1 -revision=1 +revision=2 build_style=meson configure_args="-Dcdda=enabled -Ddvbin=enabled -Ddvdnav=enabled -Dlibmpv=true -Dcplugins=enabled