How to combine overlays of unstable branch, overrideAttrs and override altoguther for a package?

Solved.

{ pkgs, lib, system, inputs, ... }:
let
	overlay-yt-dlp = final: prev: {
		yt-dlp = prev.yt-dlp.overrideAttrs {
			src = pkgs.fetchFromGitHub {
				owner = "yt-dlp";
				repo = "yt-dlp";
				rev = "8e15177b4113c355989881e4e030f695a9b59c3a";
				hash = "sha256-iBk672ocjUZi+VTAegcC5GWaeg+ZleVcuYzMkp1i5aI=";
			};
		};
	};
	overlay-unstable = final: prev: {
		# import input from flake.nix
		unstable = import inputs.nixpkgs-unstable {
			inherit system;
			overlays = [ overlay-yt-dlp ];
		};
	};
in { 
    nixpkgs.overlays = [ overlay-unstable ];
    environment.systemPackages = with pkgs; [ 
        (unstable.yt-dlp.override { ffmpeg = pkgs.unstable.ffmpeg_7; }) 
    ];
}
1 Like