How to download from Bloom Library on Linux when it doesn't work

A Linux based Bloom user recently reported trouble trying to download any books from Bloom Library. Instead of downloading the book, Firefox reported an error with a strange looking URL that looked like

bloom://localhost/order?orderFile=BloomLibraryBooks/librarian%40bloomlibrary.org%2f076186b1-24a2-4fb5-9b49-dc147451e243%2fLook+in+the+sky.+What+do+you+see%2fLook+in+the+sky.+What+do+you+see1.BloomBookOrder&title=Look%20in%20the%20sky.%20What%20do%20you%20see%3F

Downloading books is supposed to automatically invoke the Bloom program through using a “bloom protocol”. In Windows, this is established through registry settings that the installer can establish before Bloom is ever run. On Linux, since there are various desktop environments available, things are not so simple. My understanding is that modern Linux desktops automatically invoke a program named xdg-open to handle all protocol requests. The way Bloom is installed on Linux causes this to work almost all the time. But apparently something can happen occasionally to keep downloads from working automatically.

Being Linux, there are several ways to fix this in some form or fashion. The simplest, for those who are comfortable with the approach and who won’t be downloading very many books, is to explicitly invoke xdg-open in a command shell terminal window, copying and pasting the URL from where the browser is displaying it. For example,

xdg-open bloom://localhost/order?orderFile=BloomLibraryBooks/librarian%40bloomlibrary.org%2f076186b1-24a2-4fb5-9b49-dc147451e243%2fLook+in+the+sky.+What+do+you+see%2fLook+in+the+sky.+What+do+you+see1.BloomBookOrder&title=Look%20in%20the%20sky.%20What%20do%20you%20see%3F

will start Bloom and download the given book.

Another approach which might work would be to follow the example outlined in this article to set up a protocol handler for an individual user. The author claims this approach works on most modern Linux desktops to register new protocol handlers. I haven’t been able to test this for myself because all of my Linux systems work without any explicit setup like this. But it certainly sounds promising for the intrepid user.

A third approach would be to configure the default browser (Firefox most likely) to know how to handle the bloom protocol. This approach is described by this article. It appears to be the same approach that this article recommends for Firefox 3.5 and above. If you don’t use Firefox as your default browser, something similar might be supported by other browsers.