Skip to content

Latest commit

 

History

57 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Audiobook Scraper

Audiobook Scraper is a Node.js application for scraping, downloading, and managing audiobook torrents from sources such as AudiobookBay. The application features:

  • Search & Browse: Find audiobooks by search terms or by browsing categories.
  • Torrent Downloading: Automatically scrape and download torrent files with progress tracking.
  • Collection Management: Queue download requests, manage concurrency, and track real-time status.
  • Settings & Configuration: Customizable settings via a built-in GUI and JSON configuration.
  • Multiple Deployment Options: Local installation, PM2 management, or Docker container.

Installation

Local Installation

  1. Clone the Repository:
git clone https://github.com/wilburforce83/audiobook-scraper.git
cd audiobook-scraper
  1. Install Dependencies:
npm install
  1. Configure Application:

The application automatically creates a db/settings.json file with default settings on the first run:

{
  "username": "audio",
  "password": "bo0k5",
  "uiport": 3000,
  "audiobookShelfPath": "/audiobooks",
  "audiobookbayURLs": "https://audiobookbay.lu,http://audiobookbay.se",
  "maxTorrents": 5,
  "torrentTimeout": 30000,
  "excludeRomance": true
}
  1. Start the Application:
node index.js
  1. Access the Web Interface:

Navigate to http://localhost:3000.

Using PM2

  1. Install PM2:
npm install -g pm2
  1. Run with PM2:
pm2 start index.js --name audiobook-scraper
  1. Monitor and Manage:
pm2 logs audiobook-scraper
pm2 restart audiobook-scraper
pm2 save

Docker Deployment

Important: When using Docker, the audiobookShelfPath must be set to a Docker container path (e.g., /app/library) and then bound to your local host Audiobookshelf library path using Docker volumes. This ensures downloads correctly populate your local Audiobookshelf library.

  1. Build Docker Image:
docker build -t wilburforce83/audiobook-scraper:latest .
  1. Run Docker Container:
docker run -it --rm -p 3000:3000 -v $(pwd)/db:/app/db -v /your/local/library:/app/audiobooks wilburforce83/audiobook-scraper:latest
  1. Docker Compose:
version: '3'
services:
  audiobook-scraper:
    image: wilburforce83/audiobook-scraper:latest
    container_name: audiobook-scraper
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - ./db:/app/db
      - /your/local/library:/app/audiobooks

Configuration

Settings are managed via the built-in GUI or directly through db/settings.json. Changes to critical settings such as uiport and audiobookShelfPath require a server restart.

Usage

  • Search: Enter queries to find audiobooks.
  • Browse Categories: Explore audiobooks by categories.
  • Request Books: Select audiobooks to queue for downloading.
  • Manage Downloads: Monitor real-time progress and status.

API Overview

  • GET /search?q=query – Search for audiobooks.
  • GET /browse?p=path – Browse specific categories.
  • POST /download – Queue audiobooks for download.
  • DELETE /collection/completed – Remove completed downloads.

Support

For support, visit the GitHub repository.

About

ABB scraper and UI for adding torrents and creating watchlists for auto downloading to an audiobook library

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages