google-play-book-downloader
google-play-book-downloader copied to clipboard
Missing Pages
I'm getting this error when I run the script.
Error! Couldn't find a download link for 128 pages (79% missing, total: 162 pages). Make sure that the FETCH_OPTIONS object is valid and that you own the book.
I can read all the pages in the browser.
still getting the same error.
Same issue! any news?
I did some troubleshooting and found out why it happened: with some books, the program grabs the manifest.json for the free preview of the book (the one you see without an account), rather than the actual book.
For me, this workaround worked for downloading manga:
- Have your book open in Google Play in a Chromium browser
- Open Dev Tools, then go to the Sources section
- In the source
books/reader?id=<bookID>&pg=<page>
, there should be a script that lists a series of the page URLs. (It may require refreshing the page to see.) - Copy the text from
{metadata
to...contains_image_bubbles": false}
- Make a new file called
manifest.json
in the same directory asgoogle-play-book-downloader-pdf.mjs
and paste it in there. - When you edit
google-play-book-downloader-pdf.mjs
, IN ADDITION to what you would normally do (i.e., adding the book ID and the request header in their respective sections):- Comment out the lines beginning with:
-
const manifest_text
-
const manifest
-
await fs.writeFile
-
- Add this line to the top:
import manifest from "./manifest.json" assert { type: 'json' };
- Comment out the lines beginning with:
You will need to repeat Steps 3 to 5 for each book you want to download (i.e. grab the series of URLs from the page source, and overwrite manifest.json
with them each time).
@currythecoder Thank you for the investigation. It seems that the manifest indeed limits the number of page images now. We may need to migrate to using the content embedded in the page itself (it used to be incomplete iirc but now it looks good…)
Is the metadata.preview
property in your manifest.json
equal to partial
or full
?
@currythecoder Bump
same issue
@michael753-yen Are you using the latest version? It's in Python now.