From fa783e0eba307727422992b14076d8aa3343230c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 21 Nov 2022 14:39:26 -0400 Subject: [PATCH] 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 (cherry picked from commit 5256be61c12fb030fe2eebe2751ee1601a5e7514) --- Annex/YoutubeDl.hs | 5 +++-- debian/control | 2 +- doc/git-annex.mdwn | 7 ++++--- 3 files changed, 8 insertions(+), 6 deletions(-) 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/debian/control b/debian/control index 236699115f..cf150a5887 100644 --- a/debian/control +++ b/debian/control @@ -129,7 +129,7 @@ Suggests: tahoe-lafs, libnss-mdns, uftp, - youtube-dl, + yt-dlp, Breaks: datalad (<< 0.12.3~) Description: manage files with git, without checking their contents into git git-annex allows managing large files with git, without storing the file 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` -- 2.30.2