libby icon indicating copy to clipboard operation
libby copied to clipboard

a simple CLI tool to quickly download books from Library Genesis (libgen)

libby

libby is a simple CLI tool to quickly download books from Library Genesis.

Demo

output

Installation

libby is available on the AUR as libby-git. If you have yay, you can install libby with:

yay -S libby-git

Or, to install it manually from this repo, run the following:

git clone https://github.com/carterprince/libby
sudo cp libby/libby /usr/bin/

Requirements

Necessary

When libby is installed from the AUR, there is no need to install these manually.

Optional

If you want the functionality these provide in libby, you have to install them yourself.

  • mutt/neomutt (optional)
  • rofi (optional)
  • calibre (optional)

Usage

Run libby with no arguments for help:

Usage: libby [--rofi] [--mirror <num>] [--no-view] [--to-kindle] <query>
  --rofi: use rofi to select a book (default is fzf)
  --mirror <num>: use an alternative libgen mirror (default: 3)
  --no-view: don't view the result
  --to-kindle: convert file to .mobi and send to $KINDLE_EMAIL via mutt/neomutt (implies --no-view)
  --to-usb: copy file to $USB via rsync (implies --no-view)
  <query>: the query to search for

Things to consider

  • libby filters out all filetypes except ePUBs and PDFs.
  • By default, libby creates $HOME/books (lowercase 'b') if it does not already exist and saves all downloads there. This can be changed by adding
export LIBBY_OUTPUT_DIR="/foo/bar"

to your shell profile (.zprofile or .bash_profile).

  • By default, libby opens the downloaded file with xdg-open. This command can be changed by adding
export LIBBY_VIEWER="foobar"

to your shell profile (.zprofile or .bash_profile).

Why I made this

Because everything else was too slow, tried to do too much, or no longer worked. The whole point of having a cli is it's faster and more convenient than navigating to the download manually in your browser.