{"id":20315834,"url":"https://github.com/rubeniskov/audible-scraper","last_synced_at":"2025-03-04T09:12:58.517Z","repository":{"id":261401300,"uuid":"884200635","full_name":"rubeniskov/audible-scraper","owner":"rubeniskov","description":"Audible Scraper is a command-line tool (CLI) written in Rust that allows you to scrape information about audiobooks from Audible","archived":false,"fork":false,"pushed_at":"2024-11-06T16:52:39.000Z","size":404,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T01:02:59.879Z","etag":null,"topics":["audible","csv","json","jsonl","scraper","toml","web","web-scraping"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubeniskov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-06T10:30:29.000Z","updated_at":"2024-12-30T22:30:53.000Z","dependencies_parsed_at":"2024-11-06T11:41:08.298Z","dependency_job_id":"ea76c02c-6203-49b4-8fd1-b30edcc54c3e","html_url":"https://github.com/rubeniskov/audible-scraper","commit_stats":null,"previous_names":["rubeniskov/audible-scrapper","rubeniskov/audible-scraper"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubeniskov%2Faudible-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubeniskov%2Faudible-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubeniskov%2Faudible-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubeniskov%2Faudible-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubeniskov","download_url":"https://codeload.github.com/rubeniskov/audible-scraper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241818902,"owners_count":20025210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audible","csv","json","jsonl","scraper","toml","web","web-scraping"],"created_at":"2024-11-14T18:22:21.347Z","updated_at":"2025-03-04T09:12:58.498Z","avatar_url":"https://github.com/rubeniskov.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Audible Scraper\n\n_Audible Scraper_ is a command-line tool (CLI) written in Rust that allows you to scrape information about audiobooks from Audible with various filters and output format options. It leverages internal modules to build customized queries and serialize results into formats like JSON, CSV, JSONL, and TOML.\n\n## Features\n\n- Filter audiobooks by narrator (optional).\n- Export data in various formats, including:\n  - **JSON**\n  - **CSV**\n  - **JSONL**\n  - **TOML**\n- Asynchronous implementation for scalability and efficiency.\n\n## Installation using pre-built binaries\n\nGot to the [release page](https://github.com/rubeniskov/audible-scraper/releases) and download the latest release for your operating system.\n\n## Install from Source\n\nClone the repository and install dependencies using `cargo`:\n\n### Prerequisites\n\n1. **Rust**: Ensure that Rust is installed on your system. You can install it by following the instructions on [rust-lang.org](https://www.rust-lang.org/).\n2. **Cargo**: Cargo should be available as part of Rust for managing dependencies and building the project.\n\n```bash\ngit clone https://github.com/rubeniskov/audible-scraper.git\ncd audible-scraper-main\ncargo install --path .\n```\n\n## Usage\n\nBelow is a basic usage example of the CLI, allowing you to specify output format and optionally filter by narrator.\n\n```bash\naudible-scraper --format \u003cjson|csv|jsonl|toml\u003e [--narrator \u003cnarrator_name\u003e]\nCLI to scrape Audible audiobooks\n\nUsage: audible-scraper.exe [OPTIONS]\n\nOptions:\n  -n, --narrator \u003cNARRATOR\u003e  Narrator name to filter audiobooks (optional)\n  -k, --keywords \u003cKEYWORDS\u003e\n  -f, --format \u003cFORMAT\u003e      Output format: jsonl, csv, json, or toml [default: json] [possible values: jsonl, csv, json, toml]\n  -h, --help                 Print help\n```\n\n```bash\naudible-scraper --narrator \"Jordi Salas\"\n[\n  {\n    \"title\": \"1793 (Spanish Edition)\",\n    \"narrator\": \"Jordi Salas\",\n    \"language\": \"Español (Castellano)\",\n    \"releaseDate\": \"2020-07-30\",\n    \"sampleUrl\": \"https://samples.audible.com/bk/rhsp/002067/bk_rhsp_002067_sample.mp3\"\n  },\n  ...\n  {\n    \"title\": \"Una Visión Estratégica para los Retos Económicos del Siglo XXI (Narración en Castellano)\",\n    \"narrator\": \"Jordi Salas\",\n    \"language\": \"Español (Castellano)\",\n    \"releaseDate\": \"2020-11-19\",\n    \"sampleUrl\": \"https://samples.audible.com/bk/adbl/057704/bk_adbl_057704_sample.mp3\"\n  }\n]\n```\n\n## Command line Arguments\n\n- `--format`: Defines the output format. Available options: `json`, `csv`, `jsonl`, `toml`. **Default**: `json`.\n- `--narrator`: Filters results to include only audiobooks narrated by the specified name. **Optional**.\n- `--keywords`: Filters results to include only audiobooks with the specified keywords. **Optional**.\n\n## Project Structure\n\n- **`src/main.rs`**: Entry point of the CLI application, defining argument handling and execution logic.\n- **`src/audio_book.rs`**: Defines the `AudioBook` struct representing audiobook data.\n- **`src/builder.rs`**: Contains the construction of custom queries.\n- **`src/params.rs`**: Defines the query parameters.\n- **`src/scraper.rs`**: Implements the main scraping logic for Audible.\n\n## Common Error Handling\n\n- **TOML Format Error**: If you encounter an `UnsupportedType(None)` error, ensure all fields in the `AudioBook` struct have simple types. Alternatively, use an intermediate data structure to serialize into `TOML`.\n\n## Contributions\n\nIf you wish to contribute to this project:\n\n1. Fork the repository.\n2. Create a feature branch (`git checkout -b feature/AmazingFeature`).\n3. Submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubeniskov%2Faudible-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubeniskov%2Faudible-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubeniskov%2Faudible-scraper/lists"}