Convert MOBI to EPUB
Runs in your browser. No upload, no account.
Runs in your browser 0 bytes uploadedRuns in your browser. No upload, no account.
Runs in your browser 0 bytes uploadedDrop your MOBI file here
Nothing is uploaded. The book is unpacked and rewritten in this tab.
The text and the chapter order come across. The publisher’s fonts, styling and pictures do not — and the page below says why rather than pretending otherwise.
MOBI was designed for a French company called Mobipocket in the year 2000, for handheld
computers with grayscale screens and no web browser. Amazon bought it in 2005, built the first
Kindle around it, and then spent fifteen years moving away from it — first to AZW, then to the
newer AZW3, and finally to accepting EPUB directly in 2022. In 2023 Amazon stopped taking
.mobi altogether: send one to your Kindle now and it comes back rejected.
That is why the files still turn up. A format is only retired at the shop counter, never on
anybody's hard drive. Every Kindle purchase from before 2011, every ebook bundle bought in the
years when .mobi was the safe choice, every download from a library of free books
that has not been regenerated since — they are all still sitting in folders, and the software
that opened them is either gone or no longer wants them. Converting one is not nostalgia; it is
the only way left to read it.
| Full name | Mobipocket ebook |
|---|---|
| Extension |
.mobi, .prc
|
| Format type | Amazon’s older Kindle ebook — one HTML stream in a Palm database |
| MIME type |
application/x-mobipocket-ebook
|
| Full name | Electronic Publication |
|---|---|
| Extension |
.epub
|
| Format type | A reflowable ebook — a zip of XHTML with no fixed pages |
| MIME type |
application/epub+zip
|
Open one with a hex editor and the first thing you find is a thirty-two-byte filename padded with zeros, because a MOBI is not an archive — it is a Palm database, the record format Palm Computing published in 1996 for organizers with a megabyte of memory. There are no filenames inside, no directory, no compression per file. There is a numbered list of byte ranges, and what each one means is written down in the first of them.
The book itself is one continuous HTML document spread across those records, compressed with a scheme from the same era: a two-byte reference that says copy eight characters from two hundred bytes back. It is small, fast, and it has exactly one subtlety — the reference is allowed to read the output it is currently writing, so a run of forty dashes is stored as one dash and an instruction. Copy the whole span in one move and you get the wrong answer, quietly, on the most common pattern in the format.
One document means one thing for the result: there is nothing in the file that says chapter. Some MOBI books carry headings, in which case those are used. Many carry only page breaks — the single structural marker the format has — and then the divisions are real but the titles were never written down anywhere. The receipt says which of the two happened, because numbered sections are the tool's numbering and presenting ours as the book's would be a small lie sitting in your library forever. Amazon's newer AZW3 format solved this by keeping the chapters as separate documents, which is why converting one of those gives you their real names back.
Somewhere in the first few hundred bytes of every Kindle file is a two-byte number saying whether the book is encrypted. Reading it costs nothing, so it is the first thing that happens here: a thirty-megabyte book that turns out to be locked gets told so in about a millisecond, before anything has been unpacked. That ordering is the whole design. Finding out after the work is finished is how other converters do it, and it wastes your time to no purpose.
If the number says locked, this page stops. Not behind a warning, not as an advanced option, not with a suggestion of where to look — the encryption is tied to the account that bought the book, and getting past it is a different activity from converting a container. What does go through is everything nobody locked, which is a large category: Project Gutenberg, Standard Ebooks, StoryBundle, Humble Bundle, publishers who sell without DRM, technical books bought direct, and anything you built yourself.
How common is each? Nobody here knows, and you should distrust any page that tells you. We have no way to see what people actually drop into a tool that uploads nothing, and inventing a percentage would be inventing a percentage. What can be said is where the clue is: a file downloaded from a store you had to sign into is usually locked, and one downloaded from a library of public-domain books never is. Beyond that, the reliable move is to hand the file over and read what the header says.
That phrase covers two quite different files, and which one you have changes the answer
completely. If it is a .mobi, you are in the right place and it very likely
converts. If it is .azw3 or .azw — the formats Amazon actually
delivered purchases in for the last decade — the odds of a lock are higher, and
the page for those explains what that format keeps that this one
cannot. Either way you can find out by dropping the file in: the format is read from the bytes,
not from the extension, and a mislabeled file is handled correctly and named for what it is.
Renaming, incidentally, is why the extension cannot be trusted. People change it when a program
refuses to open a file, which means a .mobi on your disk is fair evidence of
somebody's frustration and poor evidence of what is inside.
The standard answer to this problem is Calibre, and it deserves the reputation: two decades of work, free, and better than this page at nearly everything. It carries the illustrations across. It keeps the publisher's styling. It manages a library, talks to e-readers over USB, converts in both directions and handles formats nobody has mentioned in years. If you convert books with any regularity, install it and stop reading here.
Installing it is the catch, and it is a bigger catch than it sounds. On a Chromebook in managed mode there is no installer to run. On a phone or a tablet there is no desktop program to install at all. On a university lab machine, a library terminal or a work laptop, the list of permitted software belongs to an IT department, and adding to it takes longer than reading the book would. The job in those situations is nearly always singular — one course reader, one dissertation, one title out of a bundle bought in 2014 — and a library manager is an odd thing to acquire for it. A browser tab fits the size of the task: the book goes in, the EPUB comes out into the downloads folder, and the computer is exactly as you found it.
The text comes across in full, and there is a way to be sure rather than hopeful. The file states its own text length in bytes, and the unpacked result is compared against that number before anything is written — a decompression that stopped halfway cannot pass unnoticed, which matters because a half-converted book reads perfectly normally until the moment it stops.
Illustrations do not. In a MOBI they are stored as their own records, tucked in after the last text record, and a MOBI written before 2010 rarely holds more than two of them — a cover and one figure is typical. Moving them into the finished book is a job in its own right rather than a line of code, so the number found is put in front of you and left there: if the pictures were the reason you kept the file, do not delete the original yet. The type styling is dropped for a different reason, which is that it should be. Your reading app sets the text better than a fifteen-year-old stylesheet written for a grayscale screen. Once the EPUB exists, turning it into a PDF puts the words on a page size you pick, and the opposite conversion handles documents that were never an ebook.
All of that runs in this tab, and there is a way to prove it that beats reading a promise. Convert one book — that first handover is what pulls in the reader code, and it is the last thing this address is asked for. Then switch your browser's developer tools to Offline, or simply pull the network cable, and convert the next book. It works, because by then there is nothing left to fetch and nothing being sent. A page that quietly shipped your library somewhere would fail that test on the second file, in front of you, with no argument required from either side.
Almost certainly not, and the tool says so before it starts rather than after. Books bought from Amazon are usually encrypted to the account that bought them, and this page does not remove that lock — not as an option, not behind a warning. The check is the first thing that happens: the file header carries a field saying whether the book is locked, and that field is read out of the first few hundred bytes, so a thirty-megabyte book gets its answer in a millisecond instead of after being unpacked. What does convert is everything nobody locked: books from Project Gutenberg, Humble Bundle, Standard Ebooks, StoryBundle, a publisher who sells DRM-free, or a file you made yourself.
Drop it in — that is the fastest way, and nothing is uploaded to find out. There is no reliable way to tell by looking: the extension does not say, the file size does not say, and a locked book and a free one look identical in a file manager. What does say is a field in the header, and the tool reads it and reports it in plain words along with the format, the title and the author. If you would rather guess first: where the file came from is the best clue. Something downloaded from a store you signed into is usually locked; something downloaded from a library of public-domain books never is.
Because it does more than this page does, and it does some of it better. It manages a whole library, it carries the pictures across, it keeps the publisher’s styling, it converts in both directions, and it talks to e-readers over USB. If you convert books regularly, install it. This page exists for the situation Calibre cannot reach: a Chromebook, a tablet, a phone, a library terminal, a work laptop where installing software is somebody else’s decision. That is one file, once, on a machine that is not yours to change.
The text comes across in full, and the chapter order with it — the tool checks the unpacked text against the byte count the file itself declares, so a partial conversion cannot pass unnoticed. What stays behind is the pictures and the publisher’s styling. Illustrations sit in the file as separate records and would need a manifest entry each in the finished book, which is real work rather than a line of code, so the count is shown and the honest thing is said instead of quietly dropping them. The styling is deliberate: an EPUB reflows around your screen, and your reading app sets the type better than a converted stylesheet would.
Age. MOBI is the older format — one long HTML document inside a Palm database, a container design from 1996. AZW3, also called KF8, is what Amazon moved to in 2011: real XHTML, one document per chapter, packed into the same container. Both start with the same eight bytes, so the extension is the only visible difference and it is often wrong, because people rename files when a program refuses to open one. This page reads the header rather than the name, so a mislabeled file still converts correctly — and it says which one it actually found. The page written for the newer format is AZW3 to EPUB.
Because the file never named them. An older MOBI often carries no headings at all — only page breaks, which is the one structural marker the format has — so the chapters are real divisions with no titles attached to them. The receipt says which of the two happened, and it matters: a division taken from headings is the book’s, while numbered sections are the tool’s numbering, and presenting ours as the book’s would be a small lie repeated in your library forever. You can also ask for one continuous document instead, which some readers prefer.
No. Unpacking the records, finding the chapters and writing the finished archive all happen in code that your browser has already downloaded. There is a test for that which beats any assurance a page can give: convert one book, then set your developer tools to Offline — or unplug the machine — and convert a second one. It works, because by then nothing needs fetching and nothing is being sent. A page that was quietly copying your library somewhere would fail on that second file, visibly, with no argument needed. The single request that does occur is the first handover pulling in the reader code from this domain.