Jan 15
BitsMonitor
BitsMonitor – YADM?
YADM is acronym I have just discovered. It means Yet Another Download Manager. This is what BitsMonitor IS NOT. So what IS BitsMonitor? Well… it is a simple application that uses Background Intelligent Transfer Service (BITS for short) and allows to manipulate download jobs (well, although BITS itself supports downloading and uploading BitsMonitor was designed only to be a download tool).
A bit of history
The idea behind BitsMonitor is to use Windows built-in technology called Background Intelligent Transfer Service to download files from web. BitsMonitor may be called a wrapper for a BIT service. What it does is only creates jobs, add links to the file user wants to download and… gets information about downloading progress from BITS. Nothing more. No downloading code, no resuming, no nothing basically. The only thing that BitsMonitor tries to do is to resume (restart) jobs (it does it by monitoring downloads) if downloading error occurs. What makes it worth interesting? At the beginning I wanted to create a Firefox plug-in (I do not use IE almost at all so the choice was obvious) but after looking more carefully at all features offered by Flashgot (Mozilla Firefox plug-in) I realized that support for passing command line arguments to any executable is just what I need.
It became even easier than I thought: Although Flashgot detects automatically whole bunch of download managers, and configures them (so after installation of the plug-in they are ready to use from Flashgot), there is another possibility: Flashgot allows passing arguments to chosen executable, and it is up to developer what kind of argument prefixes they want to use. There are a few arguments you may want to pass to your application: URL, referrer URL, Cookie, Destination folder, POST data, URL list file and cookies.txt file. I use only two of them: destination folder and URL.
A few words about BITS (Background Intelligent Transfer Service)
What are the advantages of BITS? Why should you use it? Well… BITS is running in the background all the time. It is designed not to make your network related activities slow – it just uses as much of the bandwidth as is left free. The good thing is that all your downloads are automatically started after system (re)start. What are BITS limitations? – the biggest limitation is it allows downloads only through http (it is unable to transfer anything using FTP).
Configuring BitsMonitor for using with Flashgot
I think it would be the best just to place a screenshot here. It is so simple, that there is no point in writing anything more:
Figure 1. Configuring Flashgot to make it aware of BitsMonitor existence.
The name under which BitsMonitor will be listed on the list of download managers is up to you. Remember, that command line arguments are obligatory. If you do not configure BitsMonitor in Flashgot you will be able to use it as stand alone download manager-alike application only.
Using BitsMonitor
At the moment there are two ways to use this application: as a standalone app (manually adding new download jobs) or as an app that will integrate with Flashgot. BitsMonitor was designed to sit in system tray, so I it is easy to see what is the status of all downloads. BitsMonitor shows Balloon Tooltip messages if job ended successfully.
How to add a job from BitsMonitor?
Click on the green cross (plus) icon – the one placed near the upper left corner of BitsMonitor. After clicking you’ll see a form where you can copy & paste URL (it copies clipboard’s text content by default), choose a job name and a destination directory. It is also possible to choose if the job being added should start automatically (to do it make sure that ’Autorun download’ is being checked).
Figure 2. Adding new job using BitsMonitor built-in functionality.
How to add a job using Flashgot?
The simplest way is to right click on a chosen link, and choose Flashgot from context menu (or press Ctrl+F1 while mouse cursor hovers over desired link). After clicking / releasing keys you’ll see a dialog that will let you choose destination folder. Click “OK” to add download job to BITS. Note: BitsMonitor stores its configuration, so if you have unchecked ‘AutoStart’ checkbox in the main toolbar, or unchecked ‘AutoRun download’ while adding previous job – the job you’re adding will not be started automatically!)
Figure 3. Choosing destination folder while adding new job using Flashgot.
And… how does the BitsMonitor look like?
Figure 4. BitsMonitor – main window.
Where to get BitsMonitor from?
BitsMonitor is free of charge. You may download binaries from this site (look for zipped files at the bottom of the page). In next couple of days I plan to release it on one of the open source projects hosting sites (Codeplex? Sourceforge?). Hope you will find it useful.
I have found a bug? What should I do?
Well… although I do not plan to release new versions of this software I am interested in improving it a bit, so it could be used not only by me ;) I would like it to be as much error free as possible. If you find any bug, please let me know: you may contact me using email address that you may find on ‘About’ dialog in BitsMonitor.
Options.
Using BitsMonitor should be fairly easy to understand for anyone. It does not have dozens of options, and those available seem to be the most needed. I’ll try to describe some options here:
‘AutoRestart’ – forces BitsMonitor to try download a file after download error occurred. BitsMonitor repeats this action 3 times (by default) before giving up. (Remember to make this option work you have to have BitsMonitor run in the background! It’s BitsMonitor not BITS feature!)
‘AutoStart’ – any job added to BITS (via Flashgot or BitsMonitor) is started automatically. Option that you’ll see if you manually add any job to BitsMonitor (‘Autorun download’ is dependent from ‘AutoStart’ – and vice versa).
‘Active jobs – this option allows you to control how many jobs are concurrently being downloaded (please note, that BITS is not downloading anything concurrently, but if there is even a small problem with transfer it tries to download next job. This combo box allows you to chose one of five values:
-
- Manual – you may manually select which jobs should be suspended (will not be started automatically, even if there is no active job)
- One – only one job is active at the time
- Three – three (or less) jobs are active
- Five – five (or less) jobs are active
- All – there are no suspended jobs.
‘Shutdown when done’ – this option is self-explanatory, I think :)
Please note, that clicking on BitsMonitor icon in system tray will show you a balloon tooltip with information about current job (in percentage: how much of it is already downloaded).
Information about amount of active and total (active + suspended) jobs is provided on status bar.
Limitations.
This app is really simple. It is not able to download files if there is some magic with JavaScript that gives the proper file URL (i.e. BitsMonitor is not able to download files from Codeplex, but all downloads from MSDN are handled very well).
Final words.
For BitsMonitor development I have used BITS wrapper. It’s freely available, so you may want to go, and check if it will suit your needs. I think it is sensible to think about using BITS for your own applications – mainly as a great mechanism for downloading patches / new version of your software (there is no way users will complain that upgrade process slows their network connection, it will be totally transparent for the user). One of the companies that use BITS for their product is… Google (Chrome is being updated using BITS). Oh, yes, as you may have guessed – BitsMonitor allows you to take a sneak-peak into all downloads managed by BITS ;)
Download

