Skip to main content

goodlibs

build Latest Version Supported Python Versions Code Style: Black

Download books from a Goodreads shelf using Library Genesis.

📚 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.

🛠️ 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

💻 Usage

💲 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

📃 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.

⚖️ License

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

🤝 Contributing

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

Metadata

Release files for goodlibs 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goodlibs 0.1.1
File Size Uploaded
goodlibs-0.1.1.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for goodlibs 0.1.1
File Interpreter ABI Platform
goodlibs-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 36.2 kB

Release files / goodlibs-0.1.1.tar.gz

Download URL goodlibs-0.1.1.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
be3a330d55cf10cf6613bc4e1c4c834e7507d4e6cd19134f66a53341a7a08c07
BLAKE2b-256 checksum
How to use checksums
54c72c331f9623fd703eaa69b12300559f677b1f854a0063b052c8160f056d0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

Release files / goodlibs-0.1.1-py3-none-any.whl

Download URL goodlibs-0.1.1-py3-none-any.whl
Size 24.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f866a00019a2ba3d534d9f5cbf2b3e257db0751a59d1b61b4b0ee97c0a4f475c
BLAKE2b-256 checksum
How to use checksums
553061fdff836bf7a4ddbe200069294e18711d4e0e4b10c034bb2b6f8e1a1089
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page