Skip to main content

Google Play Books Doesn’t Support Epub, and Other Crazy Possibilities

Chimeric[1]Epub advocates like to pretend that it’s an industry standard format, but that’s not completely true.

Kobo (to name one example) adds their own nonstandard components to the files they sell, Apple prefers their own bastardized form of Epub3 ( iBooks) and uses a proprietary DRM, and then there’s the fact that no vendor actually supports the complete Epub3 spec.

And now it seems we can add Google to the mix. A reader has tipped me to the news that Google Play Books doesn’t actually display Epub. Sure, Google will let users upload Epub files, and they maintain a pretense of selling Epub, but their reading apps apparently Do Not Display Epub files when you are reading an ebook.

I learned of this oddity from Ben Hollingum, an ebook developer based in London. He detailed the quirk on his blog a couple days ago:

Most e-readers ruin your books by not recognising certain CSS declarations, overriding them with their own defaults, or by implementing your CSS in a freakishly non-standard way – not so Google Play Books. The part of Google Play Books that handles CSS stylesheets – presumably forked from the Chrome browser – seems to be excellent, it can understand complex pseudo-class selectors and parse combinations of pseudo-class and pseudo-element selectors with ease. The problem comes from the way that it handles the HTML framework onto which that CSS is applied.

This first became apparent to me when I loaded one of the books I was working on into Google Play Books. This book had drop-caps on the opening body-text paragraphs of each chapter. These were identified using an HTML class (p.first) and a pseudo-element selector (::first-letter). I did it this way because it allowed swanky modern systems like iBooks and Readium to display drop-caps, but phrased it in such a way that Adobe Digital Editions and similar readers (which always render drop-caps wrong) would ignore it (pseudo elements mean nothing to them).

When I loaded this book into Google Play books I noticed something odd. In addition to the drop cap on the first paragraph (which rendered very nicely), it added a drop cap to the first letter of the following page (the page break having fallen halfway through the first para). This seemed to imply that Google Play Books was altering my HTML in real-time (it reacted to changes in font-size and line-height that moved the page break), adding in a hard paragraph break on either side of the page break.

Ben goes on to explain the steps to confirm this strange behavior, eventually ending with:

Intrigued, I added another layer to my selector. I changed it to body>div.text>p:first-of-type::first-letter this absurdly convoluted selector should, in theory, have selected only the first letter of the first paragraph of the first div in the whole HTML document. What it actually did was select the first letter of each page.

This seems to imply that in order to render a book, Google Play Books takes the content from your epub and pastes it into an individual HTML document for each page. To make it even stranger, in order to work out where to put the page breaks it must have to apply the CSS to the HTML first, then work out where the page breaks will fall, then chop up the HTML into individual documents and re-apply the CSS. Only after it has gone through all that can it render the page.

Based on this behavior Ben has awarded the title of "weirdest epub rendering engine" to Google Play Books.

If his report is correct then it will most definitely deserve the title, but unfortunately for me I have not yet managed to confirm Ben’s claims.

I don’t think I know anyone (other than Ben) who has looked closely enough at GPB to have noticed this strange behavior, and I didn’t get a response to my tweet yesterday. It had an #eprdctn tag attached, so I thought it would get some attention, but aside from a single retweet I have not gotten even a nibble.

And so I am throwing this story on to the blog just to see what happens. If anyone can confirm or deny this story, please let me know.

In spite of the lack of evidence, I have to say that this report rings true.

This report is consistent with Google requiring that you upload an ePub before downloading it and reading it in the Google Play Books app, and it offers the best explanation for Tom Semple’s remark that GPB only downloads a fragment of an ebook at a time. It would also explain why GPB didn’t support 3rd-party ebooks until the middle of last year.

All of those quirks can be explained by the simple supposition that the Google Play Books app for Android doesn’t actually support Epub. Instead it appears to be using some type of concealed intermediary file format of unknown design to serve up fragments of an ebook.

In a way, this quirky non-Epub behavior might be caused by Google Play Books' early history. While Google focuses support on Epub now, there was a time when they would let authors and publishers upload just about any type of file to be sold in Google’s ebookstore. This included RTF, PDF, PDB, XML, DOC, and even Mobipocket (I kid you not).

The behavior reported by Ben could be the result of some Googler’s kludged together attempt to support all those disparate file formats in a consistent manner. I don’t know why they didn’t just convert to Epub, but I suppose at some point this chimeric file made sense. Or maybe they didn’t have enough time to get it right, I don’t know.

P.S. If anyone knows of a best practices FAQ for GPB, please don’t hesitate to share a link. I want to see what it says.

image credit Heidi Taillefer

Similar Articles


Comments


fjtorres January 31, 2014 um 12:22 pm

I completely ignore Google Play Books so I have no idea how it works. I thought it was just another generic adept store stocked by the BPHs and, maybe, smashwords.
Now I’m wondering, what do you get when you download a book off GPB?
Do you get an epub you can open with, say, Aldiko or ADE?
Does it depend on how you download it or where you download it?

Maybe GPB is a walled garden, too?
Or a half-n-halfer like Kobo?

Nate Hoffelder January 31, 2014 um 12:27 pm

I ignored it as well. But apparently you can download Epubs from the GPB website, so I guess it’s some type of half and half system like Kobo.

fjtorres January 31, 2014 um 1:49 pm

So we now have yet another mutant sub-species of epub.
What do we call it? GePub?

Nate Hoffelder January 31, 2014 um 2:29 pm

That sounds about right.

Dan January 31, 2014 um 12:42 pm

GPB is probably more like Kobo. It is designed to be cloud based in that you normally don’t ever download the whole book, although you can "pin" it so you can read offline in which case it does download the whole book, but NOT in any place or format you can get to with other apps like Aldiko or ADE. But, you can download an epub from them that you can load in whatever you like, but I’m not sure if I could do this directly on my Android phone/tablet or not as I’ve only ever done it on a computer then added to my Calibre library. They do a similiar thing with their google play music.


Robert Nagle January 31, 2014 um 1:05 pm

I just wanted to chime in about something different. Google Play’s royalties for authors and publishers was pretty crappy, so I never bothered.

Support for pseudo-selectors has been spotty on all platforms (though I’ve recently heard it unofficially renders on KF8 devices). I’ve learned the hard way that testing in browsers is not always the best way to see how they render in ebooks.

As an aside, let me say that it always amazes me how much time is spent trying to get drop caps to work on any platform. I’ve never been able to do it well in more than one platform….

fjtorres January 31, 2014 um 1:46 pm

Me, I’m not sure why they’re needed at all. 😉


New Identity Same Guy February 1, 2014 um 4:33 am

While I started rabble rousing here on Apple’s case, the bottom line is e-readers are just not the way to go long-term. E-readers, regardless of the format, are just a new form of a walled garden leaving users at the mercy of the hardware developers or the limitations of the software coders. Why take something from a fully capable HTML5 document perfectly usable when locally stored and then try to fiddle to get it to work in an e-reader?

This is just the latest example of media companies making a fortune on a dead format only to make customers purchase the same thing again in a better state.

I have put together a system that takes a media rich document built in wordpress and with a click of a button it downloads a single html document (or a zipped html) that contains media, CSS and Javascript, mathml, svg.


William Ockham February 1, 2014 um 4:26 pm

Calling the Google Play version of EPUB a mutant subspecies is like calling Raphael a mutant subspecies of Teenage Mutant Ninja Turtles because his name ends in a consonant. EPUB is the worst joke of a spec I have ever seen. The simple fact is that the EPUB spec has zero relevance to how a book will render on any device or app.


Ben Hollingum February 3, 2014 um 4:50 am

I realised, while I was sitting on the train this morning, that my second code example isn’t quite right. Rather than body>div.text>p:first-of-type::first-letter it should be body>div:first-of-type>p:first-of-type::first-letter.

There’s no difference between the result of these two lines of code, which means my point stands, but I just thought I’d put in that little correction.

I feel I should point out that I wasn’t seriously trying to use these monstrous pseudo-selectors as the basis for the styling of a book, nor was I desperate to get drop-caps to work. The book I was working on was a test, created for probing the behavior of various e-readers.

re: William Ockham’s point. I agree that the epub spec is something of a joke, but this particular deviation is an order of magnitude more annoying than the usual crap. GPB is smashing your finely-built lego castle, whereas a program like ADE is merely smearing it with poop.


Paul February 23, 2014 um 11:05 pm

I suspect they did it to make syncing between different devices easier. Apple for example does it for its Pages, Numbers files because it was too difficult to get the changes synced a crossed for cloud services. Hence they use a proprietary binary format instead of XML which the old version used, which allows smaller files to be sent and gives the impression of speed, particularly when using a web browser client. Amazon and Apple still use binary files for sending the page location info in their ebooks but send the entire book file before doing so (in ePub or mobi etc..). Hence the ebook is ePub but the bookmark information isn’t (if that makes sense).


17 Apps To Help You Make Ebooks That Get Noticed June 2, 2014 um 12:35 pm

[…] people consider the EPUB format to be the standard, though that isn’t quite so. Still, for purposes here, we’ll assume that MOBI is for Kindle and that EPUB is for most […]


Brandi June 4, 2014 um 11:54 pm

i have to disagree as i am at this moment reading an upub file book on google play books


Bryn Jones June 26, 2014 um 5:59 am

I recently purchased a bunch of ePub comics through a humble bundle offer. The humble bundle site recommends loading the books onto Google Books to read them. I went ahead and did as suggested and found that while the android version of Google Books can display the comics perfectly. The browser version does not support these particular epubs. Very annoying.


Xerxes Setna July 23, 2014 um 12:08 pm

As a new author, I’m new to e-publishing. Publishing to Kindle was a doddle. But I’ve been trying for five days to publish on GPB and have failed so far. I created an epub file using Calibre, but when uploaded to GPB it says there are errors, many of them. Not being a technical person, I have no idea what they mean or how to resolve them. So I’m looking for an alternative way of creating a file that GPB will accept. Any suggestions would be gratefully received. I have uploaded a pdf but when published, it looks dreadful trying to read on a mobile device.
I have read other books on my mobile device from GPB and they are great – not so lucky with my own book.


Bob Myers July 31, 2014 um 11:26 pm

You’re confusing "not supporting epub" with "implementation bug".


Sheogorath August 14, 2014 um 5:27 pm

What I do is to download free books from Google Play (not through the Google Play Books app, then open the downloaded file to extract the epub before deleting the rest because it’s the only way I can open the books in my chosen ebook app.


Anders Feder January 4, 2015 um 11:47 pm

You mistakenly assume that the aim of GPB is to render EPUB, and then deem it to be "weird" that it does not live up to this false expectation. The aim of the GPB renderer is not to render EPUB – it is to deliver a decent reading experience. Waiting for an EPUB download to finish, having your mobile device’s tiny memory clogged with EPUB files, etc. are all detriment to having a decent reading experience. That’s why Google has chosen a streaming model for GPB rendering. Unfortunately, unlike PDF, EPUB does not natively support streaming, and so Google have had to come up with their own delivery scheme.

Nate Hoffelder January 5, 2015 um 6:46 am

No, I didn’t assume that was their aim. I assumed that because they maintained the external appearance of supporting Epub, they would display Epub. They don’t, and I thought that was pretty cool.

Waiting for an EPUB download to finish, having your mobile device’s tiny memory clogged with EPUB files

Given how fast download speeds are now and the cost of storage, that is just nonsense.

Anders Feder January 6, 2015 um 6:18 am

No it isn’t. You just don’t like being wrong.

Nate Hoffelder January 6, 2015 um 6:39 am

I’m fine with being wrong; it happens to all of us.

But your argument in support of Google’s solution smacks of working backwards from your conclusion. The average ebook is well under 1MB in size. With storage measuring in GB there are no real space issues, and with mobile data plans measuring in GB the cost to transmit 1MB is negligible.

Also, don’t forget that Google requires that you upload an ebook before you can download it – and that includes when you already have the ebook on the device. That undercuts your argument; Google is effectively adding to the storage issue and wasting bandwidth uploading and downloading the file.

Tom June 24, 2015 um 4:59 pm

Sorry Anders but I agree with Nate, and I suspect the majority agree. I am not really interested in a device that is tied to the "cloud" anyway. The inability to "clog" up my device’s "tiny memory" because Google wants to push their online platform is a real showstopper. Support for offline browsing shouldn’t be some weird exception to the anticipated user experience. Also, most of us don’t like being wrong, but some of us are capable of intelligent debate.


John Balks March 5, 2015 um 5:31 pm

I can confirm Ben Hollingum’s story. I’ve uploaded several ebooks with CSS drop-caps to Google Play and they all demonstrate the problem described here in both the web and Android readers. It appears that Google’s ebook renderer doesn’t paginate HTML documents like, say, your browser’s Print dialog does, but by actually breaking any block-level elements at page intervals. Unfortunately it’s not possible to inspect the DOM in the readers, so I don’t know exactly what kind of transformation it does…

And you’re right in that neither the Android app nor the web reader actually serve you the EPUB as you uploaded it. If you’re curious about the "concealed intermediary file format of unknown design", you can inspect it yourself (sort of) on your Android phone: just fire up your favorite file manager app and navigate to ~/Android/data/com.google.android.apps.books/files/accounts/[email protected]/volumes/. Every oddly-named folder there corresponds to a book, with a segments subfolder containing the actual chapter files. You’ll notice the names of the files in the segments subfolder match the ids that the corresponding elements were given in the original EPUB’s manifest file. The contents of the files themselves are unfortunately encrypted, though in an earlier version of the app, contents of user-uploaded books were served in plain text. You’ll just have to take my word that their contents were mostly the same as what the Google Books web reader serves to date, which you can easily inspect yourself by opening your browser’s network debugging console while using it (look for requests going to with a query string starting segment?start=chapter_id_here....)

Nate Hoffelder March 5, 2015 um 6:42 pm

Thanks for the details, John!


Sheogorath March 8, 2015 um 3:44 pm

I don’t even bother reading ebooks through Google’s app, I just download whatever I want from Google Play, then find the file on my fake SD card and pull the epub from it before opening it in Cool Reader. I guess it’s the wrapper that Google puts on the epubs that’s at fault because I’ve never experienced drop caps being on every page.


Can I Play Castle Story Offline Files Folder Location | RMS March 17, 2015 um 12:08 am

[…] Google Play Books Doesn’t Support Epub, and Other Crazy … – Google Play Books Doesn’t Support Epub, and Other Crazy Possibilities Epub, Epub3, Google, Google Books Epub advocates like to pretend that it’s an industry standard …… […]


On the Dastardly Evil of Proprietary eBook Formats and the Inherent Righteousness of Industry Standard Formats | Ink, Bits, & Pixels June 7, 2015 um 6:14 pm

[…] He's not wrong; this is exactly why Kobo, Apple, and Google each use their own proprietary ebook format internally while maintaining support for Epubs loaded externally (in the case of Google, this is just a fig leaf). […]


Ebook Distribution: Google Play June 22, 2015 um 1:03 pm

[…] according to The Digital Reader, Google Play Books may not actually support epub. Though the system will accept an epub, it […]


Sheogorath June 23, 2015 um 1:15 am

I’m fine with being wrong; it happens to all of us.
Oh, good. Because my plan with T-Mobile isn’t 'in the GB', it’s less than 0.5 of a GB (500MB).

Nate Hoffelder June 24, 2015 um 5:04 pm

I have a pay as you go plan with T-Mobile, mainly for trips. I usually go for the option of 1GB for 7 days.


Sheogorath June 24, 2015 um 6:05 pm

I’m guessing you’re in the US? Because that plan isn’t available in the UK. Even if it was, it’s easier and cheaper to get six months 'unlimited' internet capped at 500GB a month, and download large apps via Wi-Fi in my local pub.


Missy August 2, 2015 um 3:14 pm

Yea! preach it brothas! Lol


Simon August 20, 2015 um 8:20 pm

We regularly create interactive documents in the .epub format and have found all the free Android readers including Google Play Books to be inconsistent and unreliable. They do not support the standards formats as claimed. Play Books is poorly designed and Kindle is very limited in what it offers. Unfortunately Apple’s iBooks reader is the only reliable free reader on the market to date that supports media rich .epub formats with any consistency.


Anon April 9, 2016 um 7:15 pm

The problem with authors is their over reliance in using calibre. It’s a cumbersome program that mess everything up. If you’re planning on selling a book then it’s only right to create it through Sigil or similar editors. What I meant is do it properly and it will display properly on all readers. That way they won’t look crappy or have that feeling of lazy converted or worst, errors.

Google play books is the best and it displays my epubs at 99%.

I’m not kidding, try it yourself: https://goo.gl/RxaFf3


mimi April 12, 2016 um 12:32 am

Good grief this must be why I’m having trouble– I uploaded some epub files to Google Play ages ago, and then deleted the files off my computer. Now, I want to download those files to my computer but the only way I can is to use Google Takeout, which just gives me pdfs of everything. So annoying ):

Nate Hoffelder April 12, 2016 um 7:04 am

Frustrating, isn’t it?

I do not see a way to download the ebooks I uploaded, either. And that is weird because Google will let me download the ebooks they sold me – but not the ones I uploaded.


Duk November 27, 2016 um 2:40 pm

I am ridiculously late to this party, but have only this week become and Android user. As an avid reader, the first thing I did was to hit Google Play Books and toss four of my favorite books (which were due for their once-a-decade re-read) into my mobile.

Imagine how incredibly perturbed I was to discover that, even having paid to "own" the digital versions of these books, I do _not_ actually "own" them. It wasn’t until _after_ having bought the books (and one music album) that I discovered I am tethered to the internet to use them. I spend fully one-fourth of my time in the "e-sticks" where there is no internet at all, let alone free wi-fi, so I can’t actually use any of the stuff I just paid for. Sure, I can toss a few paper copies on the seat and dig out my old cassette walkman to hear my antique metal, but I was hoping to get away from all that.

Google, however, couldn’t be bothered to tell me that what I was buying was "stream only" until _after_ I’d dropped a chunk of money down. Worst of all, I need to listen to that album until I’m sick of it, because I can only listen to the album that I "own" for four months, then I have to subscribe to their music service or be denied to the music that I "bought" from them.

Having gotten all that off my chest, can someone tell me where I can buy– like trade money for real, honest-to-Pete downloadable files that I can read when I want, where I want, on my Android phone?

Thanks to all.

Nate Hoffelder November 27, 2016 um 2:47 pm

Try going in to your library and selecting the 3-dot menu for one of the ebooks. There should be a download option.

MKS November 27, 2016 um 3:41 pm

Get the Kindle app and buy books from Amazon and you can keep as many as you can fit on your phone.

Vikarti Anatra December 12, 2016 um 3:08 am

Kindle (if you buy book it won’t be suddenly deleted from device…most of time, see 1984 fiacso but they will refund you in this case, this is unusual case) (it’s possible to rent some books, mostly textbooks from them too, they are time-limited).
Smashwords – you will get EPUBs or MOBIs and it’s up to how you want to read them. Many readers support them.
IT books – many sources, like shop.oreilly.com, you will get EPUBs or MOBIs
SciFi – do you knew about Baen Books http://www.baen.com/baenebooks ? EPUBs and MOBIs without DRM again
www.feedbooks.com – many different books. EPUBs/PDFs, usually use Adobe’s DRM (your reader must support it or you must remove DRM)


Jeff Mcneill December 12, 2016 um 12:57 am

Reminds me a lot of browsers and standards. Only the uninitiated think that the two have a great relationship with each other. Rather they fight or ignore each other in stony silence a bit of the time.


Kepubify Can Make Kobo Kepub eBooks Out of (DRM-Free) Epub eBooks | The Digital Reader December 17, 2017 um 12:52 pm

[…] Google and Apple, Kobo uses its own unique form of the Epub ebook file format. Google's file format has no known name, and of course Apple uses iBooks, but Kobo's take is called […]


Digital Pubbing – Ebook Distribution: Google Play February 25, 2019 um 3:21 am

[…] according to The Digital Reader, Google Play Books may not actually support epub. Though the system will accept an epub, it […]


Marie November 16, 2020 um 11:56 am

Hello, my issue is somewhat related to this article but not sure if it’s relevant since the post is 6 years old … So I’ve been trying to get my EPUB to view properly in the browser on google play books (exported from InDesign 2020). It gets uploaded and processed, but when I open the book the webpage is blank except for the standard e-book menu bar at the top. It’s as if the e-book is empty.

The same EPUB file does work in the google play books app on my android tablet and android phone. It also works in iBooks on desktop and iPad. I’ve done numerous hours of research on the web/youtube and spoken to 3 google reps. I’ve also checked to see if by any chance there’s a DRM on the EPUB and there doesn’t seem to be.

And for kicks, I’ve exported a file from Pages (Apple’s version of Microsoft Word) to EPUB, and tested it in the browser in google play books, and the same problem occurs. However, converting a word doc to EPUB using calibre DOES WORK in the browser in google play books, which is strange. Could these discrepancies be due to the program that exports the EPUB? Or is it a google books browser problem as indicated in the above article? I’m not a programmer or developer, and so diving into the HTML of my EPUB hasn’t been as useful for me. Any comments and suggestions are greatly appreciated! TIA!


Write a Comment