diff --git a/pkgs/applications/video/mpv/scripts/webtorrent-mpv-hook.nix b/pkgs/applications/video/mpv/scripts/webtorrent-mpv-hook.nix new file mode 100644 index 000000000000..811b49e8714b --- /dev/null +++ b/pkgs/applications/video/mpv/scripts/webtorrent-mpv-hook.nix @@ -0,0 +1,36 @@ +{ lib , buildNpmPackage , fetchFromGitHub, nodejs }: + +buildNpmPackage rec { + pname = "webtorrent-mpv-hook"; + version = "1.3.3"; + + src = fetchFromGitHub { + owner = "mrxdst"; + repo = pname; + rev = "v${version}"; + hash = "sha256-AFKX31kriacXygZy0Mw+QwO+SwFEu13687mJ/WeAoKY="; + }; + + postPatch = '' + substituteInPlace src/webtorrent.ts --replace "node_path: 'node'" "node_path: '${nodejs}/bin/node'" + # This executable is just for telling non-Nix users how to install + substituteInPlace package.json --replace '"bin": "build/bin.js",' "" + rm -rf src/bin.ts + ''; + + npmDepsHash = "sha256-GpNUJ5ZCgMjSYLqsIE/RwkTSFT3uAhxrHPe7XvGDRHE="; + makeCacheWritable = true; + + postInstall = '' + mkdir -p $out/share/mpv/scripts/ + ln -s $out/lib/node_modules/webtorrent-mpv-hook/build/webtorrent.js $out/share/mpv/scripts/ + ''; + passthru.scriptName = "webtorrent.js"; + + meta = { + description = "Adds a hook that allows mpv to stream torrents"; + homepage = "https://github.com/mrxdst/webtorrent-mpv-hook"; + maintainers = [ lib.maintainers.chuangzhu ]; + license = lib.licenses.isc; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e80b17093aeb..d5c79788f102 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31281,6 +31281,7 @@ with pkgs; sponsorblock = callPackage ../applications/video/mpv/scripts/sponsorblock.nix {}; thumbnail = callPackage ../applications/video/mpv/scripts/thumbnail.nix { }; vr-reversal = callPackage ../applications/video/mpv/scripts/vr-reversal.nix {}; + webtorrent-mpv-hook = callPackage ../applications/video/mpv/scripts/webtorrent-mpv-hook.nix { }; youtube-quality = callPackage ../applications/video/mpv/scripts/youtube-quality.nix { }; cutter = callPackage ../applications/video/mpv/scripts/cutter.nix { }; };