{
  description = "Dvd ripper and transcoder";

  inputs.nixpkgs.url = "github:NixOS/nixpkgs";
  inputs.flake-utils.url = "github:numtide/flake-utils";
#  inputs.mach-nix.url = "github:mach-nix/3.5.0";

  outputs = { self, nixpkgs, flake-utils }:
    flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
      let pkgs = nixpkgs.legacyPackages.${system};
      in {
        devShells.default = pkgs.mkShell {
          packages = with pkgs; [
            # Manage dependencies via requirements.txt file
            # !! Did not work for playsound, since gst-python no python package??
            # (mach-nix.lib.${system}.mkPython {
            #   requirements = builtins.readFile ./requirements.txt;
            # })

            # Python dependencies
            (python3.withPackages
              (p: with p; [ gst-python pygobject3 playsound python-dotenv ]))

            # Playsound dependencies
            gobject-introspection
            gst_all_1.gst-devtools

            # Script dependencies
            dvdbackup
            handbrake
            rsync
            libnotify
          ];
        };
      });
}