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.
- Clone the Repository:
git clone https://github.com/wilburforce83/audiobook-scraper.git
cd audiobook-scraper
- Install Dependencies:
npm install
- 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
}
- Start the Application:
node index.js
- Access the Web Interface:
Navigate to http://localhost:3000.
- Install PM2:
npm install -g pm2
- Run with PM2:
pm2 start index.js --name audiobook-scraper
- Monitor and Manage:
pm2 logs audiobook-scraper
pm2 restart audiobook-scraper
pm2 save
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.
- Build Docker Image:
docker build -t wilburforce83/audiobook-scraper:latest .
- 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
- 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
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.
- 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.
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.
For support, visit the GitHub repository.