# orly
Download O'Reilly books as EPUB.




## Table of Contents
- [Installation](#installation)
- [Github releases (recommended)](#github-releases-recommended)
- [Cargo](#cargo)
- [Usage](#usage)
- [Command line interface](#command-line-interface)
## Installation
### Github releases (recommended)
**[Archives of precompiled binaries for orly are available for Windows,
macOS and Linux.](https://github.com/hurlenko/orly/releases)** 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](https://github.com/microsoft/vcpkg). After that install `libxml2`:
```bash
vcpkg install libxml2:x64-windows-static
```
Export compilator options to force static linking:
```bash
$env:RUSTFLAGS="-Ctarget-feature=+crt-static"
```
- Linux
On linux systems you'd `pkg-config`. For Debian-based distributions:
```bash
apt-get install libxml2-dev pkg-config
```
- macOS
Use `brew` to install `libxml2` and `pkg-config`:
```bash
brew install libxml2 pkg-config
```
Finally install `orly`:
```bash
cargo install orly
```
After installation, the `orly` command will be available. Check the [command line](#command-line-interface) 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:
```bash
orly 1234567890 --creds "email@example.com" "password"
orly 1234567890 --cookie 'BrowserCookie=....'
```
## Command line interface
Currently `orly` supports these commands
```bash
USAGE:
orly.exe [FLAGS] [OPTIONS] --creds <EMAIL PASSWORD>... <BOOK_ID>
ARGS:
<BOOK_ID> Book ID to download. Digits from the URL
FLAGS:
-h, --help Print help information
-k, --kindle Tweak css to avoid overflow. Useful for e-readers
-v, --verbose Sets the level of verbosity
-V, --version Print version information
OPTIONS:
-c, --creds <EMAIL> <PASSWORD> Sign in credentials
--cookie <COOKIE_STRING> Cookie string
-o, --output <OUTPUT DIR> Directory to save the final epub to [default: .]
-t, --threads <THREADS> Sets the maximum number of concurrent http requests [default: 20]
```