orly icon indicating copy to clipboard operation
orly copied to clipboard

Download O'Reilly books as EPUB.

orly

Download O'Reilly books as EPUB.

GitHub release Downloads Crates.io License

Table of Contents

  • Installation
    • Github releases (recommended)
    • Cargo
  • Usage
  • Command line interface

Installation

Github releases (recommended)

Archives of precompiled binaries for orly are available for Windows, macOS and Linux. Linux and Windows binaries are static executables.

Cargo

If you're a Rust programmer, orly can be installed with cargo.

> Note that the minimum supported version of Rust for `orly` is **1.54.0**.

You need to install the development headers of libxml2 first. The process depends on the OS being used:

  • Windows

    First install vcpkg. After that install libxml2:

    vcpkg install libxml2:x64-windows-static
    

    Export compiler options to force static linking:

    $env:RUSTFLAGS="-Ctarget-feature=+crt-static"
    
  • Linux

    On linux systems you'd pkg-config. For Debian-based distributions:

    apt-get install libxml2-dev pkg-config
    
  • macOS

    Use brew to install libxml2 and pkg-config:

    brew install libxml2 pkg-config
    

Finally install orly:

cargo install orly

After installation, the orly command will be available. Check the command line section for supported commands.

Usage

  • You will need an O'Reily account with a non-expired subscription.

  • Find the book you want to download and copy its id (the digits at the end of the url).

  • Use your credentials or a cookie string to download the book:

    orly 1234567890 --creds "[email protected]" "password"
    # or
    orly 1234567890 --cookie 'BrowserCookie=....'
    

Command line interface

Currently orly supports these commands

USAGE:
    orly [OPTIONS] <BOOK_IDS>...

ARGS:
    <BOOK_IDS>...    Book ID to download. Digits from the URL

OPTIONS:
    -c, --creds <EMAIL> <PASSWORD>    Sign in credentials
        --cookie <COOKIE_STRING>      Cookie string
    -h, --help                        Print help information
    -k, --kindle                      Apply CSS tweaks for kindle devices
    -o, --output <OUTPUT DIR>         Directory to save the final epub to [default: .]
    -t, --threads <THREADS>           Maximum number of concurrent http requests [default: 20]
    -v, --verbose                     Level of verbosity
    -V, --version                     Print version information