From 0f0687f6b3c1fab69715f8d7ca8d65fefb777d12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=A9clairevoyant?= <848000+eclairevoyant@users.noreply.github.com> Date: Sun, 21 Jul 2024 19:08:16 -0400 Subject: [PATCH 1/2] yt-dlp: move to by-name --- .../yt/yt-dlp/package.nix} | 21 ++++++------------- pkgs/top-level/all-packages.nix | 8 ++++--- pkgs/top-level/python-packages.nix | 14 ++++++------- 3 files changed, 17 insertions(+), 26 deletions(-) rename pkgs/{tools/misc/yt-dlp/default.nix => by-name/yt/yt-dlp/package.nix} (90%) diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/by-name/yt/yt-dlp/package.nix similarity index 90% rename from pkgs/tools/misc/yt-dlp/default.nix rename to pkgs/by-name/yt/yt-dlp/package.nix index 4e88175b9aa7..eeb36b47145b 100644 --- a/pkgs/tools/misc/yt-dlp/default.nix +++ b/pkgs/by-name/yt/yt-dlp/package.nix @@ -1,18 +1,9 @@ { lib -, buildPythonPackage +, python3Packages , fetchPypi -, brotli -, hatchling -, certifi -, ffmpeg +, ffmpeg-headless , rtmpdump , atomicparsley -, pycryptodomex -, websockets -, mutagen -, requests -, secretstorage -, urllib3 , atomicparsleySupport ? true , ffmpegSupport ? true , rtmpSupport ? true @@ -20,7 +11,7 @@ , update-python-libraries }: -buildPythonPackage rec { +python3Packages.buildPythonApplication rec { pname = "yt-dlp"; # The websites yt-dlp deals with are a very moving target. That means that # downloads break constantly. Because of that, updates should always be backported @@ -34,11 +25,11 @@ buildPythonPackage rec { hash = "sha256-dYeqJeI2z3sUvbk3i7//9RIC2QGwQgK+DPYsu1bTtSw="; }; - build-system = [ + build-system = with python3Packages; [ hatchling ]; - dependencies = [ + dependencies = with python3Packages; [ brotli certifi mutagen @@ -57,7 +48,7 @@ buildPythonPackage rec { let packagesToBinPath = [] ++ lib.optional atomicparsleySupport atomicparsley - ++ lib.optional ffmpegSupport ffmpeg + ++ lib.optional ffmpegSupport ffmpeg-headless ++ lib.optional rtmpSupport rtmpdump; in lib.optionals (packagesToBinPath != []) [ ''--prefix PATH : "${lib.makeBinPath packagesToBinPath}"'' ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 84cae899cd6d..7ac49103e572 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -35306,9 +35306,11 @@ with pkgs; youki = callPackage ../applications/virtualization/youki { }; - yt-dlp = with python3Packages; toPythonApplication yt-dlp; - - yt-dlp-light = with python3Packages; toPythonApplication yt-dlp-light; + yt-dlp-light = yt-dlp.override { + atomicparsleySupport = false; + ffmpegSupport = false; + rtmpSupport = false; + }; youtube-viewer = perlPackages.WWWYoutubeViewer; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7c5ac7cbb3fc..5cf2572e1b72 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -17628,15 +17628,13 @@ self: super: with self; { yoyo-migrations = callPackage ../development/python-modules/yoyo-migrations { }; - yt-dlp = callPackage ../tools/misc/yt-dlp { - ffmpeg = pkgs.ffmpeg-headless; - }; + yt-dlp = toPythonModule (pkgs.yt-dlp.override { + python3Packages = self; + }); - yt-dlp-light = callPackage ../tools/misc/yt-dlp { - atomicparsleySupport = false; - ffmpegSupport = false; - rtmpSupport = false; - }; + yt-dlp-light = toPythonModule (pkgs.yt-dlp-light.override { + python3Packages = self; + }); youtube-search = callPackage ../development/python-modules/youtube-search { }; From 9f13d0bce28f43075239e85ddef104718c9ac392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=A9clairevoyant?= <848000+eclairevoyant@users.noreply.github.com> Date: Sun, 21 Jul 2024 19:09:12 -0400 Subject: [PATCH 2/2] yt-dlp: add curl impersonation support --- pkgs/by-name/yt/yt-dlp/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/yt/yt-dlp/package.nix b/pkgs/by-name/yt/yt-dlp/package.nix index eeb36b47145b..f61baab5e190 100644 --- a/pkgs/by-name/yt/yt-dlp/package.nix +++ b/pkgs/by-name/yt/yt-dlp/package.nix @@ -32,6 +32,7 @@ python3Packages.buildPythonApplication rec { dependencies = with python3Packages; [ brotli certifi + curl-cffi mutagen pycryptodomex requests