8 releases

0.1.7 Jul 3, 2024
0.1.6 Jul 2, 2024
0.1.5 Oct 22, 2023
0.1.4 Jul 14, 2023
0.1.0 Sep 21, 2021

#414 in Text processing

Custom license

57KB
1.5K SLoC

orly

Download O'Reilly books as EPUB.

GitHub release Downloads Crates.io License

Table of Contents

Installation

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@example.com" "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

Dependencies

~33–47MB
~659K SLoC