nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
William Giokas 51ce297187 youtube-dl: make a python package
This allows youtube-dl to support all versions of python, and be built
correctly even when the python version is overridden by the user.

An alias to youtube-dl has been added which points to the default python
version's youtube-dl.

Also, ffmpeg has been made into an optional dependency. If ffmpeg is set
to 'null' then it will not be built and there will be no wrapper for it
either. An extra package, youtube-dl-light, is the same as youtube-dl
but without the ffmpeg dependency.
2015-06-10 15:50:17 -07:00

40 lines
1.7 KiB
Nix

{ stdenv, fetchurl, makeWrapper, buildPythonPackage, zip, ffmpeg
, pandoc ? null }:
# Pandoc is required to build the package's man page. Release tarballs
# contain a formatted man page already, though, so it's fine to pass
# "pandoc = null" to this derivation; the man page will still be
# installed. We keep the pandoc argument and build input in place in
# case someone wants to use this derivation to build a Git version of
# the tool that doesn't have the formatted man page included.
buildPythonPackage rec {
name = "youtube-dl-${version}";
version = "2015.05.29";
src = fetchurl {
url = "http://youtube-dl.org/downloads/${version}/${name}.tar.gz";
sha256 = "0lgxir2i5ipplg57wk8gnbbsdrk7szqnyb1bxr97f3h0rbm4dfij";
};
buildInputs = [ makeWrapper zip pandoc ];
# Ensure ffmpeg is available in $PATH for post-processing & transcoding support.
postInstall = stdenv.lib.optionalString (ffmpeg != null)
''wrapProgram $out/bin/youtube-dl --prefix PATH : "${ffmpeg}/bin"'';
meta = with stdenv.lib; {
homepage = "http://rg3.github.com/youtube-dl/";
repositories.git = https://github.com/rg3/youtube-dl.git;
description = "Command-line tool to download videos from YouTube.com and other sites";
longDescription = ''
youtube-dl is a small, Python-based command-line program
to download videos from YouTube.com and a few more sites.
youtube-dl is released to the public domain, which means
you can modify it, redistribute it or use it however you like.
'';
license = licenses.publicDomain;
platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ bluescreen303 simons phreedom AndersonTorres fuuzetsu ];
};
}