nix: use builtins.path to avoid changes when inputs.self changes
[julm/julm-nix.git] / home-manager / profiles / yt-dlp.nix
index c0abe52c2c6ace692e51ec3c695408b1a34d6217..1ebdc393709909c1d1e693c834011b776f8c5934 100644 (file)
@@ -1,21 +1,37 @@
-{ pkgs, lib, config, ... }:
+{ pkgs, lib, ... }:
 {
-imports = [
-  ./aria2c.nix
-];
-home.packages = [ pkgs.yt-dlp ];
-xdg.configFile."yt-dlp/config".text = ''
-  --download-archive .downloaded
-  --format ${lib.concatStringsSep "/" [
-    "bestvideo[height=360][ext=mp4]+bestaudio"
-    "bestvideo[height<=480][ext=mp4]+bestaudio"
-    "best[height=360][ext=mp4]"
-    "best[height<=480][ext=mp4]"
-    "best[height=360]"
-    "best[height<=480]"
-    "best"
-  ]}
-  --output "%(upload_date>%Y-%m-%d)s - %(title)s.%(id)s.%(format_id)s.%(ext)s"
-  --prefer-free-formats
-'';
+  imports = [
+    ./aria2c.nix
+  ];
+  home.packages = [
+    # error: phantomjs 1.9.8 has been dropped due to lack of maintenance and security issues
+    #pkgs.phantomjs
+    pkgs.yt-dlp
+    pkgs.ffmpeg
+    pkgs.podl
+  ];
+  programs.bash.shellAliases = {
+    yt = "yt-dlp";
+    yt-audio = "yt-dlp -f 'worstaudio[acodec=opus]/worstaudio'";
+    yt-subs = "yt-dlp --write-subs --write-auto-sub --skip-download";
+    yt-subs-fr = "yt-subs --sub-langs '-all,fr-orig,fr'";
+  };
+  xdg.configFile."yt-dlp/config".text = ''
+    #--download-archive .downloaded
+    --external-downloader aria2c
+    --embed-chapters
+    --embed-subs
+    --sub-langs all
+    --format-sort +res~480,+vcodec:av01,+acodec:opus
+    --format ${lib.concatStringsSep "/" [
+      "bestvideo+bestaudio"
+      "best"
+    ]}
+    --output "%(release_date>%Y-%m-%d,upload_date>%Y-%m-%d)s - %(title).150B.%(id)s.%(format_id)s.%(ext)s"
+    --match-filter !is_live
+    --prefer-free-formats
+    --sub-format ass/srt/best
+    --sub-langs "en.*,fr,-live_chat,-rechat"
+    --user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/110.0"
+  '';
 }