At the end of January 2025, the YONDER platform/app announced that they would be discontinued, leaving until July 31, 2025 before access to the service and all content is gone.
This repository was made to provide instructions on how to extract the Android View into an XML file and in doing so, also be able to get the text of the chapters on Yonder. Also included is Python code that takes the XML files, finds all the text, and builds an EPUB using it (likely doesn't work with some series in its current state and will need adjustments).
I won't be hand-holding on how to do everything, so search it up if you don’t know how to do something.
Note 1: This only works for Android, so you won’t be able to grab your Yonder account library if it was created with Apple ID.
Note 2: This was written assuming you are using Windows on your PC
- Follow the instructions to set up your device and ADB on your computer: Setup ADB
- Connect your device to your computer or, if using an emulator, use the command
adb connect 127.0.0.1:[PORT]oradb connect localhost:[PORT], replacing[PORT]with the port number the emulator uses (search that up yourself). - Verify your device/emulator is connected using the command
adb devices
- Create a main folder named "YonderExtract" (or whatever you prefer).
- Download
YonderParse.py,Pull Chapter XML.bat, andconfig.iniinto "YonderExtract". - Inside "YonderExtract", create a subfolder for each novel (e.g. "Dragon Poor") and copy
Pull Chapter XML.batinto each subfolder.
- On your device or emulator, open a chapter to extract and wait for it to fully load.
- In the novel’s subfolder (e.g. "YonderExtract/Dragon Poor"), run
Pull Chapter XML.bat. chapter#.xmlshould be created, starting at 1 and incrementing for each new file. If the novel starts with a chapter 0, you might want to rename it at such.- Repeat the process for all chapters.
- Install Python 3.x if you don’t have it: Download Python. During installation, check "Add Python to PATH".
- Open a command prompt and verify Python is installed with
python --versionorpy --version. - Install the required library by running:
pip install ebooklib.
- Open a command prompt in the "YonderExtract" folder (e.g.
cd path\to\YonderExtract). - Run the script with:
py YonderParse.py "NovelName", replacing "NovelName" with the novel’s subfolder name. Use quotes if the name has spaces (e.g.py YonderParse.py "Dragon Poor"). - The script will:
- Look for all
chapter#.xmlfiles in "YonderExtract/NovelName". - Detect chapter titles like "Chapter 1: Title", "Chapter 1 -/– Title", or "Chapter 1". For
chapter1.xml, it also recognizes "Prologue" as a chapter. - Use the subfolder name as the EPUB title (e.g. "NovelName.epub") unless overridden.
- Add
cover.png(preferred) orcover.jpgfrom the subfolder as the cover if either exists. - Generate an EPUB file named after the subfolder (or custom title) in the subfolder.
- Look for all
- Check the output message (e.g. "EPUB generated: path\to\YonderExtract\NovelName\NovelName.epub") and open the EPUB in a reader to verify.
- If the defaults don’t fit your novel, create or copy the
config.inifile into the novel’s subfolder (e.g. "YonderExtract/NovelName/config.ini"). Add only the fields you need to change from the defaults:
[SETTINGS]
Title = Custom Title
Author = Author Name
CoverImage = custom_filename.jpg
ChapterPattern = Regular-Expression
PatternType = Standard
Description = A brief description of the novel.
Publisher = Custom Publisher
Fields (all optional):
Title: Overrides subfolder name.Author: Sets author name (default: "Unknown").CoverImage: Uses a custom cover filename (default:cover.pngif present, thencover.jpg).ChapterPattern: Custom regex for chapter titles (default: tries "Chapter #: ...", "Chapter # -/– ...", "Chapter #").PatternType: "Standard" (default), "Volume" (e.g. "Volume #, Chapter #"), or "VolumeAfter" (e.g. "Chapter # of Act #").Description: Adds a description.Publisher: Sets publisher (default: "YONDER").
Example for a novel with a different Chapter structure from the defaults:
[SETTINGS]
Title = The Heroine of Drayfox
ChapterPattern = Chapter (\d+) of Act (\d+)
PatternType = VolumeAfter
- Run the script again after adding
config.inito apply these settings. Omit any fields you don’t need to change.
The batch file (Pull Chapter XML.bat) hides command text, starts with chapter number 1, wakes up the ADB tool with adb devices, finds the next free chapter number (like chapter1.xml, chapter2.xml, etc.), grabs the current screen view as an XML file on your device, and pulls it to your computer as chapter#.xml with that number.
Please create an issue on this repository or contact me on Reddit with the details on your issue.