diff --git a/users/simon/modules/default.nix b/users/simon/modules/default.nix index 9f15777..8c27fd4 100644 --- a/users/simon/modules/default.nix +++ b/users/simon/modules/default.nix @@ -19,6 +19,7 @@ ./vdirsyncer.nix ./xcompose.nix ./xdg.nix + ./youtube-dl.nix ./zathura.nix ./zsh.nix ]; diff --git a/users/simon/modules/programs.nix b/users/simon/modules/programs.nix index b826c76..f867a24 100644 --- a/users/simon/modules/programs.nix +++ b/users/simon/modules/programs.nix @@ -115,7 +115,6 @@ in mkvtoolnix-cli # matroska (de-)muxing unstable.waifu2x-converter-cpp # super-resolution for anime-style images waifu2x-photo # waifu2x-converter-cpp for real life photos - youtube-dl # universal video downloader # audio abcde # cd ripper diff --git a/users/simon/modules/youtube-dl.nix b/users/simon/modules/youtube-dl.nix new file mode 100644 index 0000000..6fa2e1d --- /dev/null +++ b/users/simon/modules/youtube-dl.nix @@ -0,0 +1,26 @@ +{ lib, pkgs, ... }: +let + formats = (lib.flatten + (lib.crossLists (x: y: [ "${x}+${y}" ]) + [ + [ "bestvideo[vcodec^=av01]" "bestvideo[vcodec^=vp9]" "bestvideo[vcodec^=avc1]" "bestvideo" ] + [ "bestaudio[acodec^=opus]" "bestaudio[acodec^=mp4a]" "bestaudio" ] + ])) ++ [ + "best" + ]; + + options = { + format = lib.concatStringsSep "/" formats; + }; +in +{ + xdg.configFile."youtube-dl/config".text = lib.concatStringsSep + "\n" + (lib.mapAttrsToList + (k: v: "--${k} ${v}") + options); + + home.packages = with pkgs; [ + youtube-dl + ]; +}