Skip to main content

Download books from a Goodreads shelf using Library Genesis.

Project description

goodlibs

build Latest Version Supported Python Versions Code Style: Black

Download books from a Goodreads shelf using Library Genesis.

:books: Background

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.

:hammer_and_wrench: Installation

Install using pip:

pip3 install goodlibs

Goodreads setup

  1. Register for a Goodreads API key in order to access your list of books.
  2. Ensure your Goodreads account privacy settings allow for access to your shelves via the API.
    • Set Who can view my profile: to anyone (including search engines)
    • Check the box Allow partners of Goodreads to display my reviews

:computer: Usage

:heavy_dollar_sign: From the command line

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

:page_with_curl: From a script

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.

:balance_scale: License

This code is licensed under the GNU General Public License v3.0. For more details, please take a look at the LICENSE file.

:handshake: Contributing

Contributions are welcome! Please feel free to open an issue or submit a pull request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

goodlibs-0.1.1.tar.gz (11.5 kB view hashes)

Uploaded Source

Built Distribution

goodlibs-0.1.1-py3-none-any.whl (24.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page