Check it out - it’s a really nice project and worth it!
I often need to download large files from the internet like Linux images or a lot other stuff. Since my internet connection isn’t that great at all I decided to look for a simple download manager. Unfortunately I couldn’t find any suitable one for the Pi which provides a simple (!) web-interface to provide a URL and let it download in a queue setting. The last point is really important since my internet connection is not good enough for handling multiple file downloads.
A look into the history
This happened back in october 2012. Since the Pi was a really new thing I decided to get one and dedicate it to download files. Since there was no suitable software out there I created a really dirty PHP script which uses the
system function quite often to invoke bash scripts and
wget to download things.
In August 2015 I decided that my solution works so nice (despite the fact that its a dirty PHP hack) and is so simple that I really should spend an other X hours to make it nicer and publish it so that other people could use it if they need a simple download manager for the Pi - it works certainly on all other Linux systems and on Mac OS X.
One interesting thing you can see here is that I used the dirty hack for around three years. And that’s a behaviour I often see in (big) business: if there is a system the people stick to it and this is not at all motivated by costs of migration to a new system. People get used to a certain behaviour and familiarize with it. Even if there are bugs they create little workarounds and live with it - just like me. And this is a really nice oberservation.
And I did it and it turned out really nice. I even compiled it on the Raspberry Pi with some trouble which you can read about here.
- First of all: it’s simple. I really wanted something which works out-of-the box and has a URL submit function and downlaods the files in a queue setting. If I want something complex I could probably find it out there (like FatRat etc.).
- Very important: the queue behaviour for the reason explained before.
- The ability of executing a user script: when I get my downloaded files from the Pi I use a USB thumb drive. I’ve a script which mounts it, copies all files and unmounts it. Running this script from the web interface and monitoring the script’s output is a requirement which is not so common in other available software products … project justified ;-)
- Clear downloads, shutdown server and other helpful stuff. Yes, check.
- With my old “stupid” download manager I often downloaded some files twice. So Bert detects this and warns me. Nice.
- Lightweight – it’s written on NodeJS and runs on all Linux systems (since it uses
df). It’s small and no installation needed. Check.
As you might guess there might be no huge future development besides bug fixing since I don’t know if somebody is interested in this project and for me it fits my needs so no need to invest a huge amount of further work into it (yet). It fulfils its purpose quite good since I’m using it the last couple of days now and it gives me all features that I need.
If I really have spare time I might consider the following points:
- proper disk space usage – currently the disk space usage indicator is not as good as I like it. The current amount of disk space is calculated by dividing the size of the downloads directory by the total space of the partition Bert is stored on. Yes, there might be other files on this partition so that these values are not showing the real remaining space.
- configuration file instead of
server.js– it might be also a good idea to put the configuration variables from the first 32 lines of
server.jsinto a seperate JSON file to allow a more simple access and update of Berts files. Currently you must manually copy over the variables.
- create a custom download module – invoking
wgetfrom NodeJS might work (obviously) but is not very nice. It would be nicer to have a NodeJS implementation of a web downloader.
So that’s it. Go check it out!. Cheers!
Update (Aug 2016)
Since the initial release of Bert I'm using Bert constantly multiple times a week or sometimes even daily and it works really great besides some irks and quirks. If I have any time in the future I might modify it to allow pasting multiple download links at once or polish up the UI a little bit.