From: Joey Hess Date: Mon, 21 Nov 2022 18:39:26 +0000 (-0400) Subject: When youtube-dl is not available in PATH, use yt-dlp instead X-Git-Tag: archive/raspbian/10.20250416-2+rpi1~1^2~60^2~162 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5256be61c12fb030fe2eebe2751ee1601a5e7514;p=git-annex.git When youtube-dl is not available in PATH, use yt-dlp instead Debian is going to drop youtube-dl which is not active upstream, and yt-dlp is the replacement. This will make it be used if youtube-dl gets removed. If an old version of youtube-dl remains installed, git-annex will still use it. That might not be desirable, but changing git-annex to use yt-dlp in preference to youtube-dl when both are installed risks breaking when the user has annex.youtube-dl-options set to something that is supported by youtube-dl, but not by yt-dlp. Sponsored-by: Boyd Stephen Smith Jr. on Patreon --- diff --git a/Annex/YoutubeDl.hs b/Annex/YoutubeDl.hs index e466f01eba..ba050d4024 100644 --- a/Annex/YoutubeDl.hs +++ b/Annex/YoutubeDl.hs @@ -249,8 +249,9 @@ youtubeDlOpts addopts = do return (opts ++ addopts) youtubeDlCommand :: Annex String -youtubeDlCommand = fromMaybe "youtube-dl" . annexYoutubeDlCommand - <$> Annex.getGitConfig +youtubeDlCommand = annexYoutubeDlCommand <$> Annex.getGitConfig >>= \case + Just c -> pure c + Nothing -> fromMaybe "yt-dlp" <$> liftIO (searchPath "youtube-dl") supportedScheme :: UrlOptions -> URLString -> Bool supportedScheme uo url = case parseURIRelaxed url of diff --git a/CHANGELOG b/CHANGELOG index d193ceca85..78fa628e4f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,7 @@ git-annex (10.20221105) UNRELEASED; urgency=medium * Sped up the initial scan for annexed files by 21%. * init: Avoid scanning for annexed files, which can be lengthy in a large repository. Instead that scan is done on demand. + * When youtube-dl is not available in PATH, use yt-dlp instead. -- Joey Hess Fri, 18 Nov 2022 12:58:06 -0400 diff --git a/debian/control b/debian/control index 762052186a..ac28ca029c 100644 --- a/debian/control +++ b/debian/control @@ -111,7 +111,7 @@ Recommends: lsof, gnupg, bind9-host, - youtube-dl, + yt-dlp, git-remote-gcrypt (>= 0.20130908-6), nocache, aria2, diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn index 5eca6600c8..60811dce06 100644 --- a/doc/git-annex.mdwn +++ b/doc/git-annex.mdwn @@ -1719,8 +1719,8 @@ Remotes are configured using these settings in `.git/config`. * `annex.youtube-dl-options` - Options to pass to youtube-dl when using it to find the url to download - for a video. + Options to pass to youtube-dl (or yt-dlp) when using it to find the url + to download for a video. Some options may break git-annex's integration with youtube-dl. For example, the --output option could cause it to store files somewhere @@ -1730,7 +1730,8 @@ Remotes are configured using these settings in `.git/config`. * `annex.youtube-dl-command` - Command to run for youtube-dl. Default is "youtube-dl". + Command to run for youtube-dl. Default is to use "youtube-dl" or + if that is not available in the PATH, to use "yt-dlp". * `annex.aria-torrent-options`