311 comments

[ 4.2 ms ] story [ 290 ms ] thread
Does this still insist on making a copy of all my books on my local hard drive? I have about 10,000+ books on a network share. It would be nice to be able to search through them and download just the ones I'm interested in, but past versions of Calibre require the book to be downloaded to your local HDD before it pulls any metadata.
Just mount the network share where Calibre expects its library and be ok with the way it organizes the books in there. No local copy happening then.
Calibre 3 advised very strongly in the docs not to put libraries on network shares.
Well, I would imagine this being a blocker for many people who have their ssd only big enough to host the OS an apps + some space for 'just in case'.
Or people who have let's say an ebook reader, a phone, a laptop, and maybe a desktop that they want to share books between and don't want to eat up multiple GB of storage on each device by duplicating their library everywhere.
That's what the http content server is for?
This is a bad advice. Calibre (as of version 3) doesn't support this mode of operation. If the network disconnects you will most likely corrupt your library database.
This is bad advice. Using Calibre while knowing that certain circumstances surrounding a network disconnect might corrupt your library database is better than rejecting Calibre out of hand since it doesn't support network libraries well.

Best of all would be in Calibre's library handling weren't so finicky, but in the absence of that, I use Calibre with a remote share and I'm just very careful about library backups, how long I leave it running, and am patient with the slowness.

How often does your network disconnect? Sure, it would be great if the backend storage system was better at handling atomic operations, but I don't think this is really a huge problem assuming you're not using a really crappy network.

I run Calibre with the library mounted from a NAS. Works fine for my ~2000 book collection. Not as speedy as local SSD, but it is ok.

Does that work okay with multiple machines connected at the same time? I've been worried about what happens when there's a write conflict to the DB. I'd really like a way to easily share and manage my eBook library from both my laptop and desktop.
You can now at least manage the library through the web interface because of the new server.
If I recall correctly you can have the actual database file on the ssd while the books on the network share that would probably improve the speed a bit.
Well, if your HDD shuts down mid write all sorts of shit will go wrong too. Few developers test their apps for this case. With that line of edge case reasoning you should avoid running the majority of desktop software. :]

I run Calibre with a network share that sits on my home NAS since years w/o issues.

A corrupted database in Calibre is a non issue if all you use it for is to move books between your e-reader devices and the library. You just recreate it.

P.S.: Just for example -- the other day my MacBook's SSD filled up as Adobe InDesign was mid write on a huge document. It crashed and the file was corrupted and not recoverable. While (mid write) 'not enough space' is not the same as 'network mount went missing' or 'SSD kicked the bucket' it's close enough. And this is commercial software that has been around for 25 years.

Could you tell calibre to open the network share as a library?

Not quite the same, I'm currently using calibre with a library on a remote server (albeit samba share over VPN) and it doesn't download the books to my local device, unless i choose to save them from my library to it.

I don't think so, but there is inbuilt calibre-server which should suffice for most of your needs and apparently it was improved in last version. There is also calibre-web[0] project. And on Calibre's wikipedia page it lists quite a few Calibre related applications which could do what you want.

[0]: https://github.com/janeczku/calibre-web

I have had plenty of success running Calibre over sshfs.
Calibre CLI is awesome. I've used it to convert ebooks to PDF
Calibre is so darn useful. It gets hate for the eclectic ui but it's absolutely essential for any ebook Downloaders imo. Kovid is a real hero for as much work as he does on this. He must spend several hours a day every day of the year on it.
Yeah, the UI is just bizarre but it doesn't really matter. What matters is whether the update supports DRM stripping extensions. Can't find that info anywhere; won't update without knowing...
That is because for legal reason it is better if they stay completely unsupported from the main developer
You can ask this in the forums and someone ought to have tested the plugin with 4.0 by now...
I just downloaded a book from Amazon and was able to convert it from azw3 to epub.
Got to respect dedication and hard work. But why doesn't his homepage support Chrome? https://kovidgoyal.net

Edit: I was referring to the alert() upon loading the site:

    W A R N I N G! Your browser is not supported by this site.
    I cannot guarantee that things will work as they should.
    Consider downloading either Mozilla >=1.4 or Internet Explorer >= 6
Works fine over here.
it works in chrome latest. from the website quotes " This website makes heavy use of DHTML and requires a W3C DOM (Level 1), CSS and CSS-P compliant browser. It has been tested on Internet Explorer 6 and Mozilla 1.4. For detailed site information click on the button. "

Lot of simplicity just works. ( lot of work would have gone in 1990's to get this site up and running "

It works fine for me in chrome v77
> This site was made along time ago, when I was interested in web programming, using DHTML and javascript, long before the advent of modern cross browser techniques. As such, it's a bit of an artifact, showing what was possible, (with a lot of work in the 1990's).
I figured as much. Don't get me wrong, I love it (in an excessively creative myspace kind of way).
Brother, this is a great site, don't ever change it! I liked some of your poems, and this line "fault tolerant quantum computers" Definitely made me raise an eyebrow or two.
Are you using macOS? He didn't test that:

    correctOS = (this.linux || this.win32)
Interestingly, it fails for me because of Mac, not because of Chrome:

this.correctBrowser = (this.nav || this.ie); this.correctVersion = (this.nav5up || this.ie5up); this.correctOS = (this.linux || this.win32); this.supported = (this.correctBrowser && this.correctVersion && this.correctOS);

A case of platform detection, instead of feature detection, and an illustration of how platform detection fails in future-proofing your code.

> Kovid is a real hero

Has Ph.D in quantum computing. Works on ebooks.

He really is a hero.

also probably a good place to plug his kitty terminal emulator which is really, really nice. Two pieces of software I use a lot.

https://sw.kovidgoyal.net/kitty/

It's a shame it's named kitty though. https://github.com/kovidgoyal/kitty/issues/9
Its GPL v3 licensed, any one of those complaining people could fork it and name it what they want it to be called.
That wouldn’t solve the issue. In fact it might the problem worse.
Wouldn't it? If the complaint is that the project is too hard to find and too hard to form any kind of online community (searchable blog posts, forum posts, etc) around, then a fork with a more distinctive name should become the dominant version by accreting the larger userbase.
(comment deleted)
This is the most ridiculous bikeshedding I've ever seen, I'm glad he didn't cave to the ridiculous request to rename it.
Until reading the issue, I assumed it was the fork of PuTTY.

That's an absolutely terrible name.

On android I greatly prefer fbreader, which has a really simple UI and gets the job done for reading epub format.
Is it switching to Python 3?
Yes.

https://github.com/kovidgoyal/calibre/blob/master/README.pyt...

https://github.com/kovidgoyal/calibre/pull/870

> Yeah there are not a lot of low hanging fruit left. Now one just has to get betas out and have people test them and report bugs. And plugin developers use the betas to port their plugins. But it is going to have to wait until after the webengine migration is done and calibre 4 is released.

This is great news. Last I heard, the author of Calibre's said:

> I am perfectly capable of maintaining python 2 myself. Far less work than migrating the entire calibre codebase. [1]

> calibre has half a MILLION lines of python and python extension code...calibre has lots and lots of code that deals with bytes -- network protocols, binary file formats, etc. Python 3 is simply worse than python 2 for this use case. It has a crippled bytes type among other unfelicities. [2]

> There is just no way that calibre is ever going to be ported to python 3. [3]

Glad to see some outsider, flaviut, stepped to to the challenge and kovidgoyal accepted his pull request.

Looking at the pull request it seems that kovidgoyal's fear about external native functions, network protocols, binary file formats, and python3's byte type was not so insurmountable.

[1] https://bugs.launchpad.net/calibre/+bug/1714107

[2] https://bugs.launchpad.net/calibre/+bug/1456642

[3] https://bugs.launchpad.net/calibre/+bug/1756458

870 has been open for over a year. It's clearly not high on the priority list.
Whether "a year" is high or low depends on the project in question. If you look at the commit list, py3 work seems clearly the predominant effort.
Gonna give it another try on my mac. All previous attempts have failed because of how slow it was and many crashes. The reader was terrible too.
I use it on my Mac all the time. I've never had it crash on me. The reader...is not so good.
Some faulty pdf\epub files maybe, but none of them crash any of my other readers, so... I gave up at some point. I love Calibre as a project, but for now I can't really say the same for the product.
When I had a Mac, I hated the Calibre reader for its slowness, and honestly, it was unnecessary because iBooks is pretty great regarding typography and formatting.

However, on Windows, I've found that the Calibre reader is the best. I've found that Adobe Digital Editions and the Kindle reader have terrible formatting on a non-mobile screen.

Calibre ui made me stay away, I don't mind different but sometimes you do need to get a bit more mainstream. Blender 2.80 did this move and it helped a lot I believe.
Perhaps I have a different use case. I spend very little time in Calibre but loads more time on my Kobo reader. The time I spend is so little that I have never really noticed the user interface. I use Calibre to transfer books to and from my reader and occasionally download meta data for books. I know Calibre has functionality to download blogs and so on but I use Kobo's integration with Pocket[0] to read online articles.

[0]https://getpocket.com/

do you integrate with pocket? i tried but miserably failed. it results in a mess of files and data that i can't read. do you have a source link or good link on how to setup?
On your Kobo go to Hamburger Menu > Settings > Accounts, then do what it asks to sign in to Pocket.

Once that's done you get a "My Articles" option in the hamburger menu, and that's your Pocket content.

damn, i'm using the kindle. i wish it has this easiness of integration.
Thought you were on Kobo for some reason. Might be worth grabbing a cheap one as a Pocket + Overdrive device, it's a pretty great combo ;)
I bookmark articles during the week using Wallabag (an open source Pocket alternative), which gives me an RSS feed that I use within Calibre's "Fetch news" feature to send the articles to my Kindle on a Saturday morning.

I then go to a cafe next door and read them. They don't look like an ebook on a Kindle, more like a Kindle magazine. I adore that feature.

Instapaper might work better for you for Kindle integration.

The Kobo integrates Pocket natively, so it works seamlessly. It's one of the reasons I bought a Kobo. Native Overdrive integration was a huge plus, too.

I read most things on my Kindle, but from the moment I unboxed the Kindle I put it in airplane mode and have kept it that way. More privacy and better battery life. So, Calibre is useful as a way to get content and move it over to my e-reader over USB, and so I don't ever risk connecting to the e-reader maker's proprietary ecosystem. I would worry that even that Kobo Pocket integration is sending data to Kobo's servers.
The impact of enabling WiFi on battery life hadn't occurred to me. Do you have a rough sense of how big the hit is?
It's huge. I'd say around 10x (I have a 3rd gen Kindle)
And even worse with the 3G model if you are in a marginal coverage area. Didn’t discover a way to selectively disable 3G and keep WiFi on.

Comparing new WiFi model to new 3G model, out of airplane mode, the 3G drains about 2x to 3x faster than WiFi model.

Massive. Wifi only goes on when it's needed for something.
Anecdotally, when we bought my girlfriend her first Kindle about five years ago, we noticed it was requiring charging way more often than the back-of-the-box battery life quote of "weeks of battery life". Upon calling an Amazon agent, they referred us to the fine print for that quotation:

> A single charge lasts up to six (6) weeks, based on a half hour of reading per day with wireless off and the light setting at 13. [0]

We were still pretty pissed at the blatant false advertising (a hardcore book reader reads for only a half hour a day!?!), but moving forward, she keeps the device in airplane mode 95% of the time, only turning it off to download whatever new book she just bought. It increased to at least 2-3 weeks after that, instead of a single week.

[0] https://www.amazon.com/Kindle-Paperwhite-Waterproof-Storage-...

The nice thing about the kindle is that with both wifi and light off, the battery use is nearly non-existent between pages. So the difference between 30 mins / day and 6 hours / day of reading is not that large, tbh.
A full charge on my older e-ink Kindle (whatever the last one that had buttons, rather than a touchscreen), can last for months with the wifi turned off. If the wifi is on, it usually runs flat in about a week.
Biggest battery drains on my laptop are usually the screen, GPU, and the wifi card. Usually very distant from no. 4
kindle displays don't use power like laptop screens. It uses very little power to sustain an image, and only uses more power to change the pixels.

You can keep the display of the kindle on for hours at a time with minimal drain

One of the key features of e-ink is that it actually requires zero energy to sustain an image. It only consumes energy for state changes between images.

Of course, modern e-readers have a backlight. Though you can never fully turn it off, at least on my first-gen Paperwhite, which is unfortunate.

Definitely going to be ereader-specific, my Kobo has a physical on/off button for its light.
Yes, that's why a wifi card being comparable to a laptop screen demonstrates how power hungry they can be.
My old Sony reader gets a few 1000 pages of read time/ 8 weeks (& more) or so of occasional use. On WiFi it drops to a week or so. Making an antenna work uses heaps of energy. It's worse when roaming as it searches for a known network.
Haha, same use case here. One funny thing is how the Kindle's clock drifts away from the correct time over time :)
Yeah, the UI is appalling, but it works really well for normalizing the book metadata, and loading the books onto my e-reader. That's more than enough functionality for me.
Can you tell me more about how it is appalling? I'm trying to learn about UI, and vague descriptions are less helpful than specific ones.
It's non-native anywhere, and so your intuition fails you. Icons change behaviour, the fit and finish is terrible (many text labels do not line up, for instance).

As I said, functionally, it is marvellous. But using it interactively is painful.

Kobo's integration with Pocket is a killer feature for me. It's so seamless: reading an article on my phone, and at any time hit a button, grab my kobo, and continue reading from there.
I have only used Calibre a few times, but doesn't the Kobo show up as a storage device, allowing you to drag/drop the books there? What advantage does Calibre offer purely for transferring?
Using a simple plugin, you can save and convert your proprietary books to epub and similar. I do this with my kindle purchases.
YMMV. I probably have more books and documents than I will ever read. I use Calibre to manage this collection. It is easier to flip through my collection of books on a computer when deciding what to read next than on my ereader. Being able to download meta data helps me decide what to read next. I use the Calibre storage as my backup for my ebooks. My first ereader was a Kindle which I stupidly trashed while trying to swat a fly (true story). I then bought a Kobo. Calibre converted my books as I loaded them onto Kobo.
There's a kobo driver for calibre that modifies epubs as they're transferred, for better support. I don't remember all it does, though.
Check out Calibre-Web[1], It runs on top of a calibre database and some other calibre tooling, you can upload and download books from it, edit meta-data, read through the browser. Any books I grab I upload to it (can do via phone easily enough) and then I point my Kobo to it to grab books. I run it on a headless server, and never interact with Calibre UI.

[1] https://github.com/janeczku/calibre-web

Calibre has a built-in web server, and it seems it improved a lot in this release:

> The server has gained all the major capabilities of the main calibre interface. You can now edit metadata, convert books, and add/remove books and formats just as is possible with calibre itself.

Calibre-Web has shelves (that can be public or private), and a built-in OPDS server (that you can use from within phone apps such as Moon+ or a rooted Kindle).

It not only replaced Calibre's server for me, but also those few functionalities for which I've previously used Goodreads: organizing books into shelves, marking them as read, keeping track of how many books I read in a year.

how is it unusual?

from screenshots it looks like itunes+pdf reader to me

(comment deleted)
It's totally fine. It has a bit of mid-90s Java program vibe to it -- large chunky icons and buttons -- but functionally it's the same as any of these programs. I seriously don't need it to be upgraded to a Material UI or any hot new thing.
Oh no, no fancy stuff. I may just be too used to mupdf/sumatrapdf and very basic gui idioms you know.

I think it helps avoid distraction and resource usage.

I think many people don't realize that its appearance is very customizable - you can turn off all the icons, buttons, extra views etc., after which it has a very plain and simple appearance.

I get that tiny icons are in these days, but my icons are less than 40x40 pixels. Is that considered large? They look the same size as the icons in Firefox.

I'm not sure what these people are complaining about.

You have a search box with a big list box underneath and a preview frame on the side. I guess it's 'dated' in the sense it doesn't use a browser engine, layout everything with CSS, and have icons that match 201XQY's design fad.

I have 32 GB of RAM in my desktop, but I'm getting maxed out on the number of Electron apps I can have running at one time.

At this point, I've got a pretty good sample of apps that were native and have now become Electron, and the Electron versions use 8-10x more memory across the board.

This is not ok. At this point, Outlook is the least resource-hungry productivity application that I need to use on a daily basis. Outlook!

Can you list these apps?

I am curious.

Slack/Discord, Atom/VSCode editor, Spotify, Mailspring, Skype, Boostnote... I could go on and on.

These days, electron seems like a popular base for any desktop app! See a whole list here: https://electronjs.org/apps

Can you explain to me what's so bad about the UI? I've used it for years and I never really gave the UI a second thought.
I find it bad taste and too fancy. A sense of bloat. So I didn't want to use its numerous features.
It's not like he bundled it with a complete copy of chrome. Now that would be bloat.
Nah bundling chrome would modern UI worthy of a billion dollar company. Supporters will innocently ask who in the world does not have a machine with at least 32GB RAM and octa-core processor to run this wonderful application.
It's a free product that does what you need it to do, and more. Man, some people...
It is by far the ugliest program I run on my Mac. That said, I run it frequently, and don't know what I would do without it, despite its complete lack of design.
Why do you assert it has a 'complete lack of design.' It's composed of standard qt widgets.
It’s not very well laid out and the iconography is not the best.
I personally have never had an issue with it. There are many buttons but they are all very discoverable with a bit of hovering. I vastly prefer it to "modern minimalist" interfaces where I have to drill through 90 layers of Hamburger menus to disable a goddamn notification.
I could write a long list of small quality of life tweaks to its UI.

But, at the same time, I wonder how many HNers have even built a UI for a product with so many features. It's incredibly hard to find a good place for everything. And experimentation is expensive and time consuming.

They're speaking from their experience of making a toy 'show hn' project they worked on for a weekend, abandoned and haven't updated in 4 years.
That doesn't mean it's well-designed, it just means it's not using custom widgets. Those of us who aren't particularly thrilled with Calibre's UX are mostly annoyed by how it doesn't bother with typical UI conventions when it comes to menus, displays, command keys, etc.

If I were designing a "competitor," for a start:

- have a "File" menu that collects the commands relating to, you know, files: open, delete, rename, add, edit metadata (akin to the "Get Info" command in most other file menus), etc. Converting between file types could be in a submenu here.

- have an "Edit" menu that does Edit Menu Things (tm), most notably copy, cut, and paste . - let me drag and drop files to add them to the library.

- when I connect a Kindle or other device, show me a second pane with its content side-by-side with my library, rather than making me switch between "here is your library with flags to indicate what's on your device" and "here is your device with flags to indicate what's in your library."

- since I have two panes like the gods intended, let me copy files from my library to my device with drag and drop.

Calibre has all of that functionality, but it ignores three decades of UX convention to no particular benefit.

I don't really mind the UI itself, but the experience from how everything's jumbled around (especially the toolbar from hell) certainly does detract from it's mid-90s charm.
If you like it and want to support development, the main developer is on Patreon https://www.patreon.com/kovidgoyal
you might want to read up on the controversies surrounding him first though
Do you mean because he's arrogant? Who cares? The software is great and saves me a ton of time and money.
I care. As developers we have the moral responsibility of not putting people at risk even if we don't have the legal one.

The author has zero care for security and the product had plenty of vulnerabilities. This harms users and also other people.

Furthermore, poor behaviors attracts blame on the whole open source community.

Fork it.
The codebase is horrible. I use something else.
A something else that you're avoiding naming?
Yes, it's not released (yet).
When you interact with customer service as a paying customer you get to expect courtesy. Some people seem to expect obsequiousness but I digress.

By what chain of reasoning do you derive the existence of the moral obligation to users who have paid exactly nothing let alone the obligation to consider what the broader world thinks of open source developers. It's pretty clear Kovid is a bit of an asshole and sometimes outspokenly incorrect but what right do we have to demand different? Usually such an obligation is transactional. Even if unspoken and devoid of monetary context there is some broader context SOMETHING of value is gained or lost.

So far as I can see the only thing we give Kovid is attention which is cheap and he gives us work which is dear. If you don't agree that the present transaction of putting up with the existence of opinionated posts which you don't have to read for a useful piece of software you don't actually have to use it.

It would even be useful for you to expand on why you think its insecure because that may inform users who can then see to their own interests better for having the benefit of your counsel but don't bore us with talk of his moral obligation unless you can't substantiate such.

The spoiler alert is that you cannot because you have confused the right to control the mores of a particular community with the right to impose those on non-members.

I don't think being a paying customer changes much here either unless there's some sort of explicit customer support package in the deal, especially when we're just talking about donors.

I once made the mistake of accepting donations for a forum I run and learned how people will expect the world from you, like 1:1 customer support whenever they need it, just because they once gave me $5.

Eventually all the "this is outrageous, I am a paying customer!" made me refund everyone and I never accepted donations again.

It is sad to see how you equate moral obligation to transactions.

But if you really need to see transactions everywhere, here's one:

When I give software away for free (which I do) or food (which I do) people give me something in exchange: their trust.

I also give my trust to other software developers.

Not caring of security is a breach of such trust. Same as giving someone some spoiled food.

If you're referring to the "I'll personally maintain Python 2 if it goes EOL" comment, Calibre has been slowly upgrading to Python 3.
It hasn't been upgrading to Python 3 by itself but through the effort of a distro maintainer and other contributors: https://github.com/kovidgoyal/calibre/pulls?q=is%3Apr+author....
That is kinda the point of being an open source project, though, isn't it? The lead dev says, "It's going to be way too difficult for me to convert this codebase to Python 3, I don't want to do it." A group of volunteers then decide to undertake the effort themselves because they wish to ensure the project's continued viability for the future. AFAIK, he hasn't nixed the idea completely if others are handling the legwork.
Did he put any effort into the Python 3 port, or is his merit just that he didn't reject the PRs that others have worked on?
If you look at the github he is actively involved, and is fixing problems that the porters run in to.
You might want to add some specifics and references to back up such a statement. Otherwise it very much looks like a fairly cheap character attack to an outsider such as myself.
Where's the controversy? A maintainer and a contributor disagreeing about a bug report, and it gets a bit heated. Nothing important to see there, and nothing we haven't seen a thousand times in public bug trackers.
There are many other such instances in which the lead dev immediately responds to bug reports with 'works on my machine' without even asking for details to reproduce the bug. Any further words from the bug reporter are met with sarcasm or words worse than I would term "a bit heated".

Here's Kovid responding to reports of security vulnerabilities: https://bugs.launchpad.net/calibre/+bug/885027

How much, exactly, are any of these people reporting bugs paying for this software?

You use open source software that is made by one guy and offered to the world for free, you kind of have to deal with the possibility that that guy has better things to do than fuss over every bug report.

I have no way of knowing how much these people paid, if anything, to the dev's Patreon or Liberapay or Donate to PayPal. What they did do was spend their time reporting serious issues for zero payment. Bugs are important to fix, some bugs can be critically important to fix. If the dev chooses to fix these bugs, it is the dev that will receive all credit for doing so. The person who made the effort (albeit minor in comparison) of reporting the issue will not be credited or acknowledged in any way.

Also, I think a vulnerability that allows unprivileged users to gain root on a system on which Calibre is installed is worth fussing over.

The submitter was pretty civil for the most part, and Kovid ended with:

> Something answering posts from fools like you over the years should have taught me a long time ago.

And submitter is correct - he does this often. I recall a security bug that he refused to fix as fixing it would break some convenient feature. That one got really heated, and only when distributions declared they will stop carrying calibre in their package management system did he cave in and fix it.

Nevertheless, I don't see these as obvious reasons not to support him in Patreon.

I agree, these are not reasons not to support him.
I stumbled into that git issue and couldn't stop reading. He was immediately dismissive of the security suggestion, even when that person had gone out of their way to provide verifiable examples of the vulnerability. I ended up not installing the software.
You mean you didn't install Calibre because of a bug report where the author allegedly misbehaved? That's odd. A lot of open source software is riddled with ego and personality clashes, and because they play out in public forums, mailing lists and bug trackers for everyone to see, these flamewars tend to be very visible (also see: Linus Torvalds' outbursts). Do you also not use these programs?

Did you need Calibre in the first place? If so, what did you end up using instead?

I would argue its always better if people form their own opinions, so I just suggested that people should look it up themselves and come to their own conclusions.
From the sibling comments, it seems like you're just referring to his history of abrasive social interactions on bug tickets. Granted it is strikingly abrasive, but that really isn't a good reason to forego donating. At the very least don't actively convince others not to donate.
I don't know why it always surprises me how little open source software developers are making on Patreon.
As Vitalik and other people doing social-coordination research keep arguing - it's a matter of coordination and not of anybody being greedy. The feeling that your little donation means little is what keeps the whole swarm of users from donating.

This article makes a good argument to the same: https://slatestarcodex.com/2019/09/18/too-much-dark-money-in...

Depending on donations is almost always tenuous, especially if it's not anchored by big donors (and, often, even then).

There's even a school of thought that the existence of things like Patreon for funding open source development is actively harmful insofar as it can create the illusion that it's a viable funding mechanism for sustainable open source development when it really isn't.

It seems like he lives in Mumbai, which makes his $688 equivalent to about $2,805 in SF. Still low, but not as bad.
Is there a good replacement for Calibre ?

one the converts from any format to any format, strips DRM (so I heard), adapts to different readers and if you really have to allows you to read (though the reader looks terrible)

Literally the worst damn mandatory app that I need to have installed on every computer.
I relly want to like and use Calibre, but none of my several tries to get started were successful.

No idea how to browse my Kindle library, how to browse books on my Kindle, or do anything else. It's a totally non-intuitive GUI.

When you plug your Kindle in, a big Kindle icon appears on the top menu and you can browse the contents by clicking on it. How is that unintuitive?
Okay. Where are my bought books not currently on Kindle? I've already logged into my Kindle account.
Amazon doesn't provide any APIs for querying your non-device Kindle library, so naturally you won't see those books in Calibre.

But, you can integrate Amazon's email-to-Kindle feature with Calibre [1] so new books are automatically added to your Calibre library as well.

[1] http://blog.calibre-ebook.com/2017/01/managing-your-kindle-l...

Okay. Would be great if Calibre told you that.

After it prompts me for my Amazon password I sure expect those books to show up.

As I said, the UI/UX is very confusing.

For people who don't like its desktop GUI, you can also run integrated web server and access/edit books via browser.
There have been complaints about the UI since forever, and the developer is well-known for bristling at any constructive criticism and telling people to either accept the way he likes things, or simply don't use the application. Consequently, I am surprised that no one has forked Calibre, even if it was just to kept the backend but simply overhaul the UI.

Something that I would like to see in a future version of Calibre (or a fork) is news-download recipes changed to a plugin system that can be updated separately of Calibre itself. It is not ideal that if a news recipe becomes obsolete due to changes on the respective news website, one has to upgrade Calibre to a new version. For users whose distros package only a certain version of Calibre, it would be nice to continue running that distro-supported version but simply be able to update the news recipes from within the Calibre settings.

The code base is a nightmare and still uses Python 2. I'm not surprised it hasn't been forked, although I'm a little surprised it hasn't been replaced.

Frankly, the software is just fine for most needs, and the person in charge is still active, so the desire to replace it just hasn't materialized.

EDIT: Looks like somebody actually took the initiative to port it to Python 3.

(comment deleted)
Calling the codebase a nightmare is the understatement of the year. I tried forking it at some point. I don't think I could reasonably even attempt describe the codebase in a way that wouldn't get me banned from HN, and most likely the rest of the internet.

Needless to say I gave up.

That makes me very curious. Could you write a blogpost on the topic by any chance?
We would actually love to read that.

An article title such as "Popular open source software Calibre has a codebase that isn't just bad, it's outright dangerous" would definitely make me click.

If you feel strongly, please do this. It adds value. The creator might really benefit from it.

How would you feel if someone came out with an article about "echelon's code isn't just bad, it's outright dangerous" and wrote a whole article attacking and shaming you, just because you might benefit from it?

Sure you might benefit, but there are much more constructive, kinder ways to do it. Even if he and his code aren't great, Goyal's done a lot of free public service here. Let's not be dicks.

If you want to learn about the codebase, here it is https://github.com/kovidgoyal/calibre

Good point. I was responding to the tone of the OP, but it's not at all kind or constructive.

They should be praised for their contributions, not torn down. That would be a dick move.

Forgive me, I have the flu and I'm grumpy today.

That’s clickbait and not very constructive. Fun to read, maybe, but it probably won’t be for Kovid and it won’t help make Calibre better.
> If you feel strongly, please do this. It adds value. The creator might really benefit from it.

There is an awful lot of self-deception packed into this paragraph.

> We would actually love to read that.

That part is probably true for many.

No. I definitely wouldn't like to read a post with an attitude like the one espoused in the titled you proposed.

However, I would gladly read a post that reviews Calibre codebase in a helpful, friendly way.

I would say that the reason it has not been successfully forked is that reliability is better than a nice UI.
It's an incredibly reliable piece of software. Isn't that what's most important?
> I'm not surprised it hasn't been forked, although I'm a little surprised it hasn't been replaced.

Shouldn't be all that surprising. Things are harder than people think, and only a few people are willing to stake actual skin in the game instead of just complain.

Also, Calibre is already a niche tool. All of my friends/family have a Kindle, they all use Amazon's default send-the-kindle feature, and none of them probably even know how to get the physical ebook file out of the Amazon system nor care.

And ebook file management just isn't a very sexy problem to solve beyond a proof of concept weekendware effort. Surely most people aren't spending much time in Calibre anyways. I know I just use it intermittently to load the next 10 books onto my ereader. It's not a part of my life I'm very passionate about changing.

The code is a very ugly mess.
What are the complains? Just that it looks like an old 90s program, and doesn't have the latest all-white minimalist design? Or are there actual UX programs?
It looks like an old 90s Windows program, and most Mac users were bothered by those even at the time. It fails to honor basic common MacOS navigation keyboard controls, making it jarring even if I tune out the over-the-top ugly visual interface.
Old 90s Windows programs are great. Downright relaxing after the "WTF is interactive and what's content?" mess of "modern" UI. Calibre's not that. Some poster upthread got it right by comparing Calibre to some of the uglier examples of Java UIs.

(mind, I find Calibre pretty usable)

>It is not ideal that if a news recipe becomes obsolete due to changes on the respective news website, one has to upgrade Calibre to a new version.

I haven't used the news feature in almost a decade, but in those days, you could clone a news site's recipe and modify it - no need to upgrade Calibre.

What's so problematic about the UI?

It opens with a list of books, you double click on the book you want to read and it opens that book in a new window.

What could be simpler than that?

Recipes are first polled from a central repo so they do update if the app is online.
Great app. I know everyone likes to extol the UNIX "A program should do one thing and do it well" philosophy, but Calibre is one of the few "monolithic" apps I can think of that justifies the bulk. It does everything you could want it to do regarding eBooks: viewing, editing, management, delivery, etc.
Don't forget DRM stripping.
I had mentally lumped that under "management," but maybe I should've added "conversion" as a category. Certainly DeDRM Tools has been worth the price of admission alone.
Do you know if the various 'add-ons' that were required to strip Kindle of DRM are still available and updated.

Years ago, I enjoyed stripping my own purchased Kindle books to ePub with Calibre, so I could read them on my non-Kindle device, but it wasn't so easy as the patches became harder to find, and Amazon would constantly change their DRM.

That's the primary reason I use it. Strip DRM from my purchased books and then upload to Google Books for viewing on all my devices.
Have you considered that maybe you shouldn't be buying DRM content in the first place? If you are going to spend money buy a physical book and consider passing it on after you have read it if you don't want to reread or refer to later.
Sometimes I don’t want a physical copy because it is:

1. unavailable in my country at a reasonable price

2. Something I’d rather read while travelling.

And often, Kindle e-books are the only ones that are priced by region. I try to buy from DRM free stores wherever possible, but it isn’t always doable.

Maybe piracy would be more acceptable? You could always mail the author the cost of the ebook if he doesn't have an online method to accept donations.
I've done that in the past, but a lot of authors have rightful objections to this, since these direct payments to authors don't reach publishers, editors, and many other people who make the book happen.
Unfortunately, many books are ONLY available from stores that still use DRM.

Physical books are much less convenient in that I can't carry 50 of them around in my pocket like I can with books on my phone.

Buy the book from author, donate to someone, download from the internet.
Search for "DeDRM", follow the first result you see to Apprentice Alf's blog. That should lead you to the GH repo with instructions.

It's still a bit of a pain, you may need to intentionally downgrade your version of the Amazon for Kindle app to an older version where the tools can break the encryption. But it can be done.

Or you can download the older file format from the Amazon web page under "Manage Your Content and Devices", "Download and transfer via USB".
The pain kinda disappears if you have a physical Kindle. You enter the serial number once during setup of the plugin, then download the books from amazon.com/myk ("Download & transfer via USB" option), and just drag-and-drop downloaded files into Calibre's interface.

Works on Ubuntu too, which is really a PITA otherwise.

I never managed to get this working weirdly. Still running Kindle for PC 1.17 on Wine.
Technically plugins do this, right?
Somewhat interestingly, under the hood calibre seems to be a bunch of little tools, strung together by the UI:

Here's what's under calibre/bin

  calibre
  calibre-complete
  calibre-customize
  calibredb
  calibre-debug
  calibre-parallel
  calibre_postinstall
  calibre-server
  calibre-smtp
  cjpeg
  ebook-convert
  ebook-device
  ebook-edit
  ebook-meta
  ebook-polish
  ebook-viewer
  fetch-ebook-metadata
  jpegtran
  JxrDecApp
  lrf2lrs
  lrfviewer
  lrs2lrf
  markdown-calibre
  optipng
  pdfinfo
  pdftohtml
  pdftoppm
  web2disk
You can use many (possibly all) of these independently of the UI.
Thanks for mentioning this. I didn't know that Calibre packages its own optipng, a program for which there have been some security advisories in recent years. I hope Calibre keeps pace with upstream releases of these tools.
If it helps to think of Calibre as a "toolkit," then, instead of a single monolithic app, I'm all for it.

It's funny, if they released a version of Calibre that had only the bins you mentioned and omitted the GUI entirely, it would probably be held in much higher esteem among the HN community.

I’d argue this is true in general: I once gave a presentation about a (IMO) pretty decent tool but made the mistake of demonstrating it with a UI that was usable but needed work. It got a lot worse of a reaction than an earlier and worse version of the same tool where I ran it from the command line.
Showing tools that work, CLI or not, is better than showing something that barely works. It is a very natural and logical explanation.
Poettering should learn from the design of this software.
Better he learn from Kovid than the other way around!
(comment deleted)
If you had spent 2 seconds looking at the source code to Calibre, you would not be praising it's codebase.

Also, systemd is not one binary. It's like 50 different binaries.

I installed it on one server that I only ssh to JUST to use that ebook-convert so I can read anything (epub, mobi, pdf, etc) on the command line. It's so easy to use, detects to- and from-formats from filenames and works on anything.
Lots of people being very critical of a unique piece of software that is super powerful, free and regularly updated. Seemingly because their big SV brains can't handle a clunky interface. What a bunch of entitled jerks you sound like.
Couldn't agree more. Calibre is Kovid's labor of love and he wouldn't be so active on it if it weren't, especially considering there is little to no monetary incentive for him to spend the amount of time he does on it. It's also open source. Literally every whiner has the opportunity to fork it and do with it what they please, but instead, they just want to sit by the sidelines and criticize him for his decisions.

As Neil Gaiman so aptly wrote on his blog [1] - "George R.R. Martin is not your bitch". I feel the same needs to be reiterated in this case - "Kovid Goyal is not your bitch".

Edit - Ouch, OP, I guess you struck a nerve with the HN crowd by saying it like it is...

1: http://journal.neilgaiman.com/2009/05/entitlement-issues.htm...

Comparing Goyal to GRRM is desultory. GRRM charged his book buyers a whole bunch of money in installments for decades, and when he got rich out of these fans, he happily screws them over by refusing to finish his story.

Goyal provided a unique and complete piece of software, charging exactly zero, and continues to improve it even a decade after it released.

I don't know much about GRRM, so are you referring to general book sales when you mention "whole bunch of money in installments"?

If you start consuming an unfinished story and then entitle yourself to an ending, that's 100% your fault. As an outside observer who never even watched the show, GoT fans are just tantrum-throwing assholes. When you spend $X on a book, you are just buying that book, not that book + liens on the author's future output + a guarantee that there will be any. Such weird entitlement in that community.

Also, you presumably also demand a really good book as well so that he doesn't "screw you over" (cmon) with a bad book where the fans now recommend dodging the final books (Rendezvous with Rama, Wheel of Time, etc).

I agree GoT fans are weird but come on, it's taken him a literal decade to finish the last book and it's going to take more with the next one. You don't have to bring up higher notions of entitlement or contract law to make the simple remark that the dude is slow and riding the gravy train that came with his early books (which took him much less to write, incidentally). Saying 'it's your fault' just makes you look like kind of a dick.
Apparently so. At least a lot of the negative comments are getting downvoted too. Thanks for engaging with me - I wish it was mandatory to add a comment if you want to down/upvote a comment.
First of all, I’m not in SV, and you couldn’t make me move there even with a gun to my head.

Second, the interface is hard to use. Technology is a tool, and the interface is the part we interact with. If a tool is hard to use, then I’m probably not going to use it. I suffer enough with crappy technology at work; I don’t need it at home too.

And yes, it’s FOSS, and I don’t have to use it. But that doesn’t mean it’s above reproach.

>Second, the interface is hard to use.

Am I the only one who didn't find it hard to use? It's different, but it took all of one afternoon to figure it out 8 years ago. Despite only very occasionally using calibre, that learning session has persisted. I don't find myself getting lost in the UI or making mistakes.

Perhaps because I grew up in the DOS era where it was the norm for every application to be different? I find that as the years go by, the deviation required from the norm to be considered "bad UI" keeps shrinking.

I use Linux as my daily driver, so I’m no stranger to wonky interfaces (although thankfully, I spend a lot of time in a terminal). I consider myself a fairly learned software developer who knows their way around a computer, and it’s not that I can’t learn awkward interfaces. But Calibre makes it just difficult enough to figure out how to do what I want that I avoid it all together. Maybe this isn't your experience, but it’s mine.
If you use it, I hope you support the author.
An issue in the past was that books loaded into Kindles through Calibre appeared as 'personal documents' rather than as a 'book' in the Kindle, upsetting causing the reading state sync to not work if you were reading the same book for example through the Kindle app in your smartphone also, very annoying, and goes against the promise of ebooks. I hope they have a fix for this.
That must be a very long time ago. It worked fine with my Kindle 3 which was released in 2010
I've gone through the motions of emailing the book to my Kindle, which allows it to be downloadable on other Kindle devices or the app, and also syncs up reading location.

Doesn't work for huge books, but has been a great boon for most books!

Right, that's actually my standard Calibre use case: Load book into Calibre. Convert it to MOBI if needed. E-mail it to my Kindle address.

It then pops up everywhere I have a Kindle app, mostly my iPad and Galaxy S9.

Huh. Now that I'm thinking about it, it seems like this would be even easier to do from the command line...

If you fill out the "Sharing books by email" in Calibre's settings, you can just right-click a book -> "Connect/share", "Email to example@kindle.com". It'll do the conversion for you (if necessary).

I'd advise a separate email address for this functionality.

Surprised to see so much hate for Calibre's UI here. I'm not sure I understand. I can load damn near anything that pretends to be an ebook into it, and then I can double-click on the row for that item, and it pops open a reader window. That's all I need it to do.

At least on Windows, I've been pretty underwhelmed with other ebook viewer apps I have tried. The various Kindle apps tend to blow for anything you don't obtain through Amazon, and often don't work great for syncing even Kindle ebooks. I still have a bunch of Microsoft Reader .lit files kicking around, and Calibre is one of the only things that will open them. The Calibre PDF reader is pretty terrible, but setting is up to pop open to Adobe or whatever instead doesn't take much ceremony.

Seeing how many people prioritize fashion over function...in this topic, and life in general, depresses me. Calibre works very well and you have people saying they "can't" use it because it's not pretty enough. It's one guy, does SO much, and it's free. I don't care what it looks like. It's amazing.
I'm not exactly surprised because that was my original response to the UI as well, several years ago, but the surprising thing to me now is why exactly I considered it such a terrible UI back then.

One thing I can remember is that if you start a conversion or a download, often it silently starts in the background with apparently no indication anything is going on, unless you know to look for "Jobs" in the lower right corner. But I think I had a bunch more complaints which have apparently become invisible to me now.

I love Calibre, been using it since way back in my kindle keyboard days.
Calibre does the trick.

It's a shame there's no good hardware ereader to use it with. Every e-ink device is closed hardware, runs only closed software, and is trying to lock you into some DRM-rich ecosystem.

FWIW, I've never had a problem with my kindle, which has never been connected to the internet.

Even the 'special offers' dissipate after being in airplane mode for a certain length of time. I see no value in using any online feature—I've never taken my kindle off of airplane mode, and use Calibre to load all content.

I wouldn't have paid for the ad-free version of the kindle had I known it was just a lock-screen promo for a book. I'm exposed to so few new books in my life that I kinda like the feature. Then again, I also wouldn't have bought the ad-free version had I known I was going to keep it in airplane-mode since the day I bought it.

Back when I first bought my kindle and made this decision, I was thinking the ads would be something like a "checkout these deals on Bose speakers!" interstitials every three page turns.

Actually there are ways to install software on many ereaders. About 10 years ago I used PRS+ on Sony's PRS-500. Nowadays Sony's ereaders are pretty much dead, but there is alternative software for Kindle, Kobo and others. By quick googling I just found:

https://github.com/koreader/koreader

https://github.com/ccoffing/OcherBook

https://github.com/lgeek/okreader

https://fread.ink/

Also:

https://onyxboox.com/ - this is Android so I guess it's bit more hackable

https://the-digital-reader.com/2015/06/19/is-the-booq-cervan...

Android is ill-suited to readers. Installing "homebrew" applications through hackish means has been a thing for a while.

None of this is a replacement to a properly open ebook reading device which does not exist.

On the software side, openinkpot existed at some point, but the project died.

I'd love a properly made piece of very low power open hardware running e.g. nuttx rather than boring Linux/Android.

FBReader is quite nice for reading offline ebooks on Android.

I realize that you are griping about dedicated e-readers, but I want to make clear that its not strictly an Android problem. The more open Android devices work just fine as e-readers.

My flow is basically Calibre -> managed library -> android phone -> offline reading anywhere.

My flow is pretty much the same. But oled != eink, even though I really like orange text on black with oled.
I have 2 apps that I use on my android based eink reader. I mostly read fiction so those 2 our enough for me. Turn on wifi every 2-3 weeks to transfer the books from calibre to calibre companion.

1. Calibre Companion 2. Coolreader

I was surprised, and I'm not sure why, to find out that Kindles run Linux, X11, and Java.
IIRC, Kobo is very hackable. A coworker of mine took a flight navigation software and ported it to the Kobo. He uses it while flying in a glider.
The bq cervantes[1] is completely open source. It runs an old (old) Debian Linux, but it's OSS top to bottom, they tell you how to get into it and run your own firmware, their e-reader app is open source, and you're free to hack it apart as you see fit (koreader has a target for it too).

[1]: https://www.bq.com/es/cervantes-4

Does it still phone home every time you fire it up?
Kudos to Calibre and its author. It's one of the first programs I install on any Linux machine I own.

Yes, the UI is a bit quirky, but who cares? I spend my time actually reading the books, and for managing my library and converting between formats Calibre is ace.

That useful software like this exists makes me very happy.

Calibre is the worst piece of software thar I also happen to love.
(comment deleted)
Surveying this thread, I see an amazingly wide range of uses for Calibre. Yes, the UI is really bad, perhaps especially on a Mac, but it is so mind-bogglingly good at so many different things that it is difficult to believe that Kovid Goyal manages all of this by himself.

Other people have different use-cases than I do, and Calibre satisfies us all. Excellent, amazing, wonderful work, Mr. Goyal!

This used to be called function over form.
I love Calibre. Yes, It's a little clunky, but it solves problems nobody else does.

I have a lot of eBooks, because I built a DIY Book Scanner and scanned all my books in a couple of years ago.