|
|
#1 |
|
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 140
Karma: 211110
Join Date: Jul 2026
Location: Planet Earth
Device: Kobo Forma
|
[GUI Plugin] epubveri library
epubveri library checks every book in your calibre library and tells you what is actually wrong with it.
https://github.com/veripublica/epubv...library-v0.1.0 Why it exists, next to the epubveri Edit Book plugin. That one validates the book you have open, and it is very good at that — but it can only tell you about a book you already decided to open. If you have three thousand books, the question you actually have is which ones. Nobody opens three thousand books to find out. This plugin answers that question, and hands the answer to the other plugin. What you get. Not a list of broken books — a list of defects, each with the number of books carrying it, most widespread first. The shape of it, sketched (your library's rows and numbers will be its own): Code:
MESSAGE WHAT IT SAYS BOOKS FINDINGS RSC-005 element "…" is not allowed here ... ... OPF-003 resource is not declared in the manifest ... ... RSC-007 referenced resource is missing ... ... Then the two plugins join up. Click a row, and calibre's own book list filters to exactly the books that defect is in. Open one in Edit Book and the epubveri plugin puts you on the line. Which → what → fixed. It is fast enough that this is worth doing at all. About 0.2 seconds a book — roughly ten minutes for three thousand, as a background job you can keep working through, and cancelling still shows you what it found. When I timed the two, epubcheck came out around eleven times slower on the same books, and its command line takes one file per run: the same library is an afternoon. The difference between the two plugins, in full, since they now sit next to each other in the plugin list under the same name: Code:
epubveri epubveri library
(Edit Book) (main window)
opens from Edit Book's toolbar the calibre toolbar
checks the book you have open every book in the library,
or just the ones you select
reads the book as the editor the .epub file as it sits
holds it, unsaved on disk
changes included
answers WHAT is wrong WHICH books have a problem
shows every finding, in place, one row per defect, ordered
with line and column by how many books carry it
takes under a second about 0.2 s a book
clicking a row jumps the cursor to it filters the book list to the
books that row affects
Nothing is bundled and nothing is trusted blindly. The plugin ships no binary: on first use it fetches the epubveri build for your platform from epubveri's own releases and verifies it against that release's published checksums before extracting anything, then re-checks it before every scan. A SHA256SUMS.txt sits beside the plugin zip too, if you want to check what you downloaded. Installing — it is not in calibre's plugin index yet, so: download the zip, Preferences → Plugins → Load plugin from file, restart calibre. If no button appears, add it under Preferences → Toolbars & menus. Worth knowing before you try it: it reads the EPUB format only; errors and warnings are ranked while usage notes and epubveri's advisory findings wait behind a checkbox that re-sorts rather than re-scans; and it has run on calibre 9.14 on macOS and nowhere else so far. If you find anywhere it disagrees with epubcheck, that is the most useful thing you can send me — every real defect these plugins have had arrived that way. |
|
|
|
|
|
#2 |
|
Bibliophagist
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 54,318
Karma: 182161621
Join Date: Jul 2010
Location: Vancouver
Device: Kobo Sage, Libra Colour, Lenovo M8 FHD, Paperwhite 4, Tolino epos
|
I tested on my Intake library with 77 books and on my Main library with ~18,000 books. The Intake library took ~38 seconds to report multiple errors and the second took ~3 hours to report 1 error.
The books in the Intake library have not finished my update metadata, correct errors, edit CSS workflow. This is using Calibre 9.14 running from source with Windows 11 as the OS. |
|
|
|
|
|
#3 |
|
null operator (he/him)
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 22,824
Karma: 34252730
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
Moderator Notice
It's not an Editor plugin, it's a GUI Plugin - thread title changed. BR Last edited by BetterRed; 09-07-2026 at 05:43 PM. Reason: add mod tags |
|
|
|
|
|
#4 |
|
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 140
Karma: 211110
Join Date: Jul 2026
Location: Planet Earth
Device: Kobo Forma
|
38 seconds for 77 books is a perfectly normal duration, but the software likely crashed with 18,000 books.
I need to add logging for debugging.Tomorrow is the first day of school, and I'll likely be at the kids' school. I'll look into the error this evening and try to release a new version. |
|
|
|
|
|
#5 | |
|
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 140
Karma: 211110
Join Date: Jul 2026
Location: Planet Earth
Device: Kobo Forma
|
Quote:
Neither "GUI" nor "editor" really fits our category perfectly. Consider that I wrote this not just for the forum, but within Calibre's own application. |
|
|
|
|
|
|
#6 |
|
null operator (he/him)
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 22,824
Karma: 34252730
Join Date: Mar 2012
Location: Sydney Australia
Device: none
|
|
|
|
|
|
|
#7 |
|
want to learn what I want
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,433
Karma: 9656783
Join Date: Sep 2020
Device: Libra Colour
|
Hi,
Currently the friendly name for GUI Plugin is "Extend calibre generally": IMO, this convention fits this plugin, but a new category can be arranged, I guess. I had sent you a PM about this earlier today. |
|
|
|
|
|
#8 | |
|
Bibliophagist
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 54,318
Karma: 182161621
Join Date: Jul 2010
Location: Vancouver
Device: Kobo Sage, Libra Colour, Lenovo M8 FHD, Paperwhite 4, Tolino epos
|
Quote:
Using the numbers from the Intake library compared to the Main library, the time is about right. The Main library has a higher percentage of omnibuses since I have a habit of converting a completed series into an omnibus volume. Edit: Reran the epubveri library test while not running a collection of VMs running in the background and the time for the check dropped to 1hr 29 min. Having that mix of Windows and Linux VMs updating was not that big a CPU load but they keep the disk usage about 80%. Gave the computer something to do while I was watching the CFL Labour Day classic games. Last edited by DNSB; 09-07-2026 at 11:10 PM. Reason: Edit: timing when system load reduced. |
|
|
|
|
|
|
#9 |
|
Zealot
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 140
Karma: 211110
Join Date: Jul 2026
Location: Planet Earth
Device: Kobo Forma
|
epubveri library 0.1.1 — https://github.com/veripublica/epubv...library-v0.1.1
New — the logging I promised in #4. A scan now writes a progress line every 2.5% of the way through, carrying the position, the time so far and the seconds per book, so a run that stops for any reason says where it got to. Books that cannot be read are named as they happen, a cancelled scan says where it stopped, and the opening lines name the validator binary being used. The log stays about forty lines whether the library holds a hundred books or twenty thousand. One line per book was the obvious version and the wrong one — DNSB, your 18 000 books would have produced 18 000 lines, written on the job thread inside the loop being timed. What shipped costs nothing measurable: 120 books took 14.32 s with it and 14.34 s without. DNSB, on whether an hour and a half was normal — the last line of the log now gives the rate, so a run answers that about itself. And I measured the part that is mine: over 120 books this plugin's own overhead, everything that is not the validator, is 2 ms per book — 1.6% of the total. So the number your library reports is essentially a fact about your machine and your books, not about the plugin. 0.30 s/book on Windows against 0.125 s/book here is the platform, not the wrapper. Also: the example report in the README used to print the real counts from the library I designed it against. Those read as a claim about EPUBs in general, which they are not — every library's rows are its own — so the columns stayed and the numbers became placeholders. On the category question I raised in #5: Comfy.n's answer in #7 settles it. "Extend calibre generally" is what this does, and I will leave it there rather than take it further. The zip and its checksums are on the release page. Install with Preferences → Plugins → Load plugin from file, then restart calibre. |
|
|
|
![]() |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| [Editor Plugin] epubveri | Doitsu | Plugins | 31 | Yesterday 07:28 AM |
| [Plugin] epubveri - Simple epubveri wrapper | Doitsu | Plugins | 36 | Yesterday 07:03 AM |
| [GUI-Plugin] Library Codes-SRU | davidjoseph1 | Plugins | 38 | 06-22-2026 02:47 PM |
| [GUI Plugin] Library Codes | DaltonST | Plugins | 373 | 07-12-2024 11:04 AM |
| [GUI Plugin] Library Splitter | DaltonST | Plugins | 31 | 07-11-2022 03:09 AM |