Change:
<ins> { lib , fetchFromGitHub , buildNpmPackage , nodejs , ffmpeg , callPackage , substituteAll , makeWrapper , toml2json , jq }: buildNpmPackage rec { pname = "vdhcoapp"; version = "2.0.19"; src = fetchFromGitHub { owner = "aclap-dev"; repo = "vdhcoapp"; rev = "v${version}"; hash = "sha256-8xeZvqpRq71aShVogiwlVD3gQoPGseNOmz5E3KbsZxU="; }; sourceRoot = "${src.name}/app"; npmDepsHash = "sha256-E032U2XZdyTER6ROkBosOTn7bweDXHl8voC3BQEz8Wg="; dontNpmBuild = true; nativeBuildInputs = [ makeWrapper toml2json jq ]; patches = [ (substituteAll { src = ./ffmpeg-filepicker.patch; inherit ffmpeg; filepicker = lib.getExe (callPackage ./filepicker.nix {}); }) ]; postPatch = '' # Cannot use patch, setting placeholder here substituteInPlace src/native-autoinstall.js  --replace process.execPath ""${placeholder "out"}/bin/vdhcoapp"" ''; preBuild = '' toml2json --pretty ../config.toml > src/config.json ''; installPhase = '' runHook preInstall mkdir -p $out/opt/vdhcoapp cp -r . "$out/opt/vdhcoapp" makeWrapper ${nodejs}/bin/node $out/bin/vdhcoapp  --add-flags $out/opt/vdhcoapp/src/main.js generateManifest() { type=$1 outputFolder=$2 mkdir -p $outputFolder manifestName=$(jq -r '.meta.id' src/config.json).json jq '.store.'$type'.manifest * (.meta | with_entries(select (.key == "description")) * {"name": .id}) * {"path" : "${placeholder "out"}/bin/vdhcoapp"}' src/config.json > $outputFolder/$manifestName } generateManifest google $out/etc/opt/chrome/native-messaging-hosts generateManifest google $out/etc/chromium/native-messaging-hosts generateManifest mozilla $out/lib/mozilla/native-messaging-hosts generateManifest google $out/etc/opt/edge/native-messaging-hosts runHook postInstall ''; meta = with lib; { description = "Companion application for the Video DownloadHelper browser add-on"; homepage = "https://www.downloadhelper.net/"; license = licenses.gpl2; platforms = lib.platforms.linux; maintainers = with maintainers; [ hannesgith ]; mainProgram = "vdhcoapp"; }; } </ins>

Discussion:
Project description Video DownloadHelper is a "Browser extension to download videos from the Web" Metadata homepage URL: source URL: license: gpl2 platforms: linux, darwin, (windows) other build scripts
I marked this as stale due to inactivity. &rarr;
FYI, I have been trying to figure this one out from source, but as isolates the build (which means it does not allow contacting any URL to download something), and one of the dependencies totally requires going to GitHub, I'm not able to build it. I am still on it, and if building from source doesn't work, I hope the tar option works as a solution (really want to avoid the deb option).
i would recommend or to build the nodemodules from the package- lockfile. in this case, package- is missing, and must be generated with (the lockfile should be to the vdhcoapp repo ...) at least npmlock2nix allows to symlink extra files into nodemodules
FYI, I have been trying to use the methods you mentioned, and I kind of figured out how to solve that GitHub dependency issue mentioned before (had to download it through ), but now I got into an issue where I don't get any specifics of what to do, unfortunately:
I have been also trying to do it with the tar and the deb files. The tar requires an extra install step (be it for system or user), and I get the following error: For the deb, that does not require the extra steps, I can install it fine, but Firefox is not recognizing it. !
in you would do something like to create a symlink from to (i found with ) if youre stuck, maybe share your draft. this cant be too hard to build from source
Just in case, I've found this one which is way more advanced in building it. It even uses a patch to avoid using pkg (which was the issue I was having earlier). Plus, it is kind of similar to the way it is built on the AUR. The only thing is that I'm not able to build it as it is (copying and pasting it into ), so I need to see the code first and then check what can be adapted. I'd rather use this as a guide. I had already overwritten the I was using from source with the deb one.
nice!

thing is, that one was made with npm2nix which generates , which should be replaced with package-, stored in the upstream repo (vdhcoapp), to keep nixpkgs small the 5KB patch can be compressed to not tested, but im feeling lucky ; )
In fact that's something neat to adapt, going to try it :) In the functional part, it seems that it is not enough to just install it, you also need to apply the part, which at least is recognized by the extension, but provides an error with no description of what to do or what caused it: ! EDIT: Nevermind, it works. Weirdly, it took a while, but now it says it recognized it. ! So the preferred situation would be just installing this and making it work as expected, instead of running that extra install step. And this is where I am not sure how NixOS masks the /usr and /etc directories where the are located.
should work with and or but i always get which is a known WONTFIX
FYI, I set this up on .
Thank you for packaging this into NUR. After installing from there I still had to do Otherwise neither chromium nor FF couldn't find it even after reboot.
Sure thing I wish I could find a way to indicate that when installing, but for now that's the only way it works. Now with 21.11, it should even work with Chrome (that specific browser was looking for a specific GLibC version packaged on 21.11).
can the NUR package be used on pure nixos given that the manifest should live under ? After installation and I still can't trick firefox into recognizing the plugin. EDIT: it's entirely possible that it's due to the fact that I install firefox via , since I can use the plugin from chromium
Yes, if Chromium is detecting the manifests after applying the user setup, then this might be something related to your Firefox setup. I will still try your recommendation.
I couldn't make it work on Firefox unfortunately (NixOS unstable with NUR package and post-install cmd)
Let's move the discussion to , as this is more related to the packaging issue. I will throw more details there.
To wrap it up - silly me forgot that I need to rerun the post install command every time (browsers?) update.

Now works both on Chromium and Firefox.
posted a way for Firefox through Home-Manager to set the VDHCoApp manifests through the system installation. . With that, I'm seriously considering sending a PR to Nixpkgs, just need to check and format the code properly.
did you find time to do further work on this? you have mentioned here, but also on the issue on your nur repo that you are considering to do a PR for the app to the nixpkgs.
I have indeed, although it was more on re-running the process of creating the whole nix setup from scratch and use NodeJS 16. Now, my only concern (besides the code and many of my PR's not being reviewed) is that I don't want to keep maintaining more stuff on nixpkgs. If anyone wants to throw it, just go for it and I can help you, but personally I don't want to keep maintaining more packages because of lack of time.
FYI, a new major version will be released (2.0) and it is a refactor on the building process, which might make it easier to install compared to the way it currently works.
I curious how's the work on packaging version 2.x is going? Is there still intention to merge it into nixpkgs?
I have been trying it sporadically. The wall I'm facing is regarding the . If I skip it, I don't see anything useful to add to the output, but if I try to bundle it, I get a issue. I was able to figure out the rest though: Another option would be finding a way to replace the usage of with something else to build the file that is generated during the bundling process.
Hi, i'm kind of a nixos rookie so sorry for asking, but: i tried installing the coapp first via but firefox did not recognize it (loads forever), so installed it via NUR, but now the browser wants me to update the coapp (which is pinned to 1.6.3 here it seems) so: how can i update this? ( i tried cloning it but running fails as node2nix runs into )
currently there is no way unless you can get 2.X packaged. As mentioned on the comment above, I'm struggling with the bundling process that uses to get the new binary.

ok, thanks for the very fast reply! hmm thats unfortunate im rather busy the next week(s) so i can only keep my fingers crossed and hope you'll find a way in the unlikely event that i figure out a way after that i'll keep you posted thanks for the efforts Edit: but in case i find time, will your current efforts be publicly available somewhere? (not just the , but a more complete repo e.g. also containing )
Sure, you can find it .
I was trying to get your 1.6.3 version working with 2.0.x, but I'm very new to packaging in nix and didn't get very far. So, I'm glad to hear that you are working on it. Good luck and let me know if I can help test in any way.
Hi, If anyone can add release 2.1.9 Best Regards
, there is a reason version 2.X still hasn't been yet.
Good news everyone, someone figured a way to package it and it's working, so I just adapted it to work the nixpkgs way. If you are interested in pushing it to nixpkgs (I really don't want to maintain it), you will need to pack (could be internal to the same vdhcoapp package) and .
Im not experienced enough and/or attached enough to NixOS yet to take that on, but i would really appreciate if someone makes it happen. If i get into NixOS more in the future, i would also be willing to take it over at some point if needed
well done! Im not very experienced either, but i use nixos as my main system so at least im attached enough ;) i will try pushing it to nixpgs (as my first contribution) today