/ ytdl-sub-test / flake.nix
flake.nix
 1  {
 2    inputs = {
 3      nixpkgs.url = "github:nixos/nixpkgs/pull/369990/merge";
 4    };
 5  
 6    outputs = {
 7      self,
 8      nixpkgs,
 9      ...
10    }: let
11      inherit (nixpkgs) lib;
12      system = "x86_64-linux";
13    in {
14      packages.${system}.default = self.nixosConfigurations.vm.config.system.build.vm;
15      nixosConfigurations.vm = lib.nixosSystem {
16        inherit system;
17        modules = [
18          "${nixpkgs}/nixos/modules/virtualisation/qemu-vm.nix"
19  
20          {
21            users.users.root.password = "nixos";
22            services.getty.autologinUser = "root";
23            console.keyMap = "de-latin1";
24  
25            services.ytdl-sub.instances.default = {
26              enable = true;
27  
28              config = {
29                presets."YouTube Playlist" = {
30                  preset = ["Max 480p"];
31                  download = "{subscription_value}";
32                  output_options = {
33                    output_directory = "YouTube";
34                    file_name = "{channel}/{playlist_title}/{playlist_index_padded}_{title}.{ext}";
35                    maintain_download_archive = true;
36                  };
37                };
38              };
39  
40              subscriptions = {
41                "YouTube Playlist" = {
42                  "Rust Talks" = "https://www.youtube.com/playlist?list=PLZaoyhMXgBzoM9bfb5pyUOT3zjnaDdSEP";
43                };
44              };
45            };
46  
47            virtualisation.diskImage = null;
48            virtualisation.sharedDirectories.ytdl-sub = {
49              source = "$(mkdir -p /tmp/ytdl-sub)/tmp/ytdl-sub";
50              target = "/var/lib/ytdl-sub";
51            };
52          }
53        ];
54      };
55    };
56  }