You can extract every unique word from an EPUB with Calibre's built-in word report or one of several scripts on GitHub, and it works. The catch is what you get back: a list of several thousand words, sorted by frequency, in which the words you already know and the words you need look exactly alike. Filtering that list is the actual work, and it is harder than the extraction.
What a frequency dump is good for
It is genuinely useful in two situations. The first is deciding whether a book is readable at all before you commit forty hours to it — if the top thousand words contain a lot you cannot recognise, pick an easier book. The second is pre-learning a small, closed vocabulary: a technical text, a play with unusual period language, a book with heavy dialect.
In both cases you are using the list as a measurement, not as a study set. That is the right use for it.
Why it disappoints as a study set
A novel might contain eight thousand distinct word forms. Strip the very common ones and you still have thousands left. Of those, the ones worth your time are the ones you personally do not know, and no extraction tool knows which those are, because it has never watched you read.
So you end up studying a list assembled by frequency rather than by need. The words at the top are ones you knew already. The word that actually stopped you on page forty is somewhere in the middle, indistinguishable from four hundred others.
There is a second problem that catches people out: a raw extraction gives you word forms with no definitions and no context. You still have to define several hundred entries by hand before the list becomes studiable, which is where most of these projects quietly end.
The alternative: let the book tell you
Upload the EPUB to Paira and read it there instead. Tap a word you do not know and it goes into that book's set with its definition and the sentence it appeared in. The list is built from the words that actually stopped you, in the order they stopped you, and it arrives already defined.
To be clear about what this is not: Paira does not produce a frequency report, and it will not hand you every unique word in the file. If a frequency table is what you came for, Calibre is the better tool and you should use it. What Paira gives you instead is the filtered version, filtered by the only thing that can do it accurately, which is you reading.
What tapping a word in the reader actually saves
If you already have a list
Say you extracted one, filtered it, and added definitions. That list imports directly: one word pair per line, and Paira detects whether you separated the columns with tabs, semicolons, commas, colons or spaced hyphens. Add a third column and it becomes the example sentence.
How the text importer reads your file
Which formats upload
TXT and EPUB. An uploaded book is private to you and is not shared or published. If a book is in another format, converting it to EPUB or plain text first is the route in — Calibre does that too.