Download books from a Goodreads shelf using Library Genesis.
Goodreads is a social cataloging website that allows you to search for books and save them to reading lists, known as "shelves".
Library Genesis (Libgen) is a file-sharing website for scholarly journal articles, academic and general-interest books, images, comics, and magazines.
goodlibs is a simple utility that searches for and downloads all items from a Goodreads shelf using Libgen.
It was built using betterreads
and a modified fork of libgen.py
.
In solidarity with Library Genesis. In memory of Aaron Swartz.
Install using pip:
pip3 install goodlibs
- Register for a Goodreads API key in order to access your list of books.
- Ensure your Goodreads account privacy settings allow for access to your shelves via the API.
- Set
Who can view my profile:
toanyone (including search engines)
- Check the box
Allow partners of Goodreads to display my reviews
- Set
For basic usage, start with the download
command:
goodlibs download --help
If you want to save your options for later, use the configure
command:
goodlibs configure --help
Typical usage:
goodlibs download -k yourgoodreadsapikey -u yourgoodreadsusername -e mobi -e epub -e pdf
from goodlibs import goodreads, libgen
# Get the list of books from Goodreads.
books = goodreads.get_books(api_key="yourgoodreadsapikey",
username="yourgoodreadsusername",
shelf_name="to-read") # Optional.
# Query Libgen with the list of books.
libgen.download_books(books=books,
language="English", # Optional.
extensions=("mobi", "epub", "pdf")) # Optional.
This code is licensed under the GNU General Public License v3.0. For more details, please take a look at the LICENSE file.
Contributions are welcome! Please feel free to open an issue or submit a pull request.