9842c4b107
Idea shamelessly stolen from 4e60b0efae
.
I realized that I don't really know anymore where I'm listed as maintainer and what
I'm actually (co)-maintaining which means that I can't proactively take
care of packages I officially maintain.
As I don't have the time, energy and motivation to take care of stuff I
was interested in 1 or 2 years ago (or packaged for someone else in the
past), I decided that I make this explicit by removing myself from several
packages and adding myself in some other stuff I'm now interested in.
I've seen it several times now that people remove themselves from a
package without removing the package if it's unmaintained after that
which is why I figured that it's fine in my case as the affected pkgs
are rather low-prio and were pretty easy to maintain.
70 lines
2.6 KiB
Nix
70 lines
2.6 KiB
Nix
{ lib, fetchurl, buildPythonPackage
|
|
, zip, ffmpeg_4, rtmpdump, phantomjs2, atomicparsley, pycryptodome, pandoc
|
|
# Pandoc is required to build the package's man page. Release tarballs contain a
|
|
# formatted man page already, though, it will still be installed. We keep the
|
|
# manpage argument 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.
|
|
, generateManPage ? false
|
|
, ffmpegSupport ? true
|
|
, rtmpSupport ? true
|
|
, phantomjsSupport ? false
|
|
, hlsEncryptedSupport ? true
|
|
, makeWrapper }:
|
|
|
|
buildPythonPackage rec {
|
|
|
|
pname = "youtube-dl";
|
|
# The websites youtube-dl deals with are a very moving target. That means that
|
|
# downloads break constantly. Because of that, updates should always be backported
|
|
# to the latest stable release.
|
|
version = "2019.12.25";
|
|
|
|
src = fetchurl {
|
|
url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
|
|
sha256 = "13f7wv9v77zilhif0ndgjv4wn9glhmm14yh7axdcx5wglrgz38hf";
|
|
};
|
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
buildInputs = [ zip ] ++ lib.optional generateManPage pandoc;
|
|
propagatedBuildInputs = lib.optional hlsEncryptedSupport pycryptodome;
|
|
|
|
# Ensure these utilities are available in $PATH:
|
|
# - ffmpeg: post-processing & transcoding support
|
|
# - rtmpdump: download files over RTMP
|
|
# - atomicparsley: embedding thumbnails
|
|
makeWrapperArgs = let
|
|
packagesToBinPath =
|
|
[ atomicparsley ]
|
|
++ lib.optional ffmpegSupport ffmpeg_4
|
|
++ lib.optional rtmpSupport rtmpdump
|
|
++ lib.optional phantomjsSupport phantomjs2;
|
|
in [ ''--prefix PATH : "${lib.makeBinPath packagesToBinPath}"'' ];
|
|
|
|
setupPyBuildFlags = [
|
|
"build_lazy_extractors"
|
|
];
|
|
|
|
postInstall = ''
|
|
mkdir -p $out/share/zsh/site-functions
|
|
cp youtube-dl.zsh $out/share/zsh/site-functions/_youtube-dl
|
|
'';
|
|
|
|
# Requires network
|
|
doCheck = false;
|
|
|
|
meta = with lib; {
|
|
homepage = https://rg3.github.io/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 phreedom AndersonTorres fpletz enzime ma27 ];
|
|
};
|
|
}
|