FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

figa12/BookGrab · GitHub

forked from johnpc/BookGrab
 
 

Repository files navigation

BookGrab

Disclaimer: BookGrab is a personal project I built for myself. Support is limited to MyAnonyMouse (MAM) as the content source, and Transmission or Deluge as the download client.

BookGrab is a simple, streamlined web application that allows you to search for books on MyAnonyMouse using their RSS API and send downloads directly to your Transmission or Deluge client. It provides a clean, straightforward interface for finding and downloading both ebooks and audiobooks.

Why BookGrab?

Most people looking for book automation probably want Readarr. However, I built BookGrab because:

  1. Readarr requires separate instances for audiobooks and ebooks, which is cumbersome
  2. Readarr's author-based interface is too complicated to share with friends and family
  3. I wanted a simpler, more direct search-and-download experience without the complexity of a full media management system

BookGrab focuses on doing one thing well: making it easy to search MAM and download books with a single click.

Features

  • Simple search interface for MyAnonyMouse's extensive book collection
  • Display search results with book details (title, author, format, length for audiobooks)
  • Download books directly to your Transmission or Deluge client with a single click
  • Separate download paths for audiobooks and ebooks (I send my audiobooks to the directory scanned by AudioBookshelf and the ebooks I send to the directory scanned by Calibre-Web)
  • Light and dark mode support
  • Minimal setup and configuration

Getting Started

Prerequisites

  • A MyAnonyMouse account and session token
  • A running Transmission or Deluge client

Installation Options

Option 1: Docker Compose (Recommended)

  1. Create a docker-compose.yml file:
version: '3'

services:
  bookgrab:
    image: figz/bookgrab:latest
    container_name: bookgrab
    ports:
      - "3000:3000"
    environment:
      - MAM_TOKEN=your_mam_token_here
      # Choose your download client: "transmission" (default) or "deluge"
      - DOWNLOAD_CLIENT=transmission
      # --- Shared (required for both clients) ---
      - AUDIOBOOK_DESTINATION_PATH=/path/to/audiobooks
      - EBOOK_DESTINATION_PATH=/path/to/ebooks
      # --- Transmission (required when DOWNLOAD_CLIENT=transmission) ---
      - TRANSMISSION_URL=http://your-transmission-server:9091/transmission/rpc
      # --- Deluge (required when DOWNLOAD_CLIENT=deluge) ---
      # - DELUGE_URL=http://your-deluge-server:8112
      # - DELUGE_PASSWORD=your_deluge_webui_password
    restart: unless-stopped
  1. Update the environment variables with your own values
  2. Run the container:
docker-compose up -d
  1. Access BookGrab at http://localhost:3000

Option 2: Docker

Run the container directly:

docker run -d \
  --name bookgrab \
  -p 3000:3000 \
  -e MAM_TOKEN=your_mam_token_here \
  -e DOWNLOAD_CLIENT=transmission \
  -e AUDIOBOOK_DESTINATION_PATH=/path/to/audiobooks \
  -e EBOOK_DESTINATION_PATH=/path/to/ebooks \
  -e TRANSMISSION_URL=http://your-transmission-server:9091/transmission/rpc \
  figz/bookgrab:latest

For Deluge, set DOWNLOAD_CLIENT=deluge and use DELUGE_URL + DELUGE_PASSWORD instead of TRANSMISSION_URL.

Option 3: Manual Installation

  1. Prerequisites:

    • Node.js 18+ and npm
  2. Clone the repository

  3. Install dependencies:

npm install
  1. Create a .env.local file in the root directory with the following variables:
MAM_TOKEN=your_mam_token_here
DOWNLOAD_CLIENT=transmission
AUDIOBOOK_DESTINATION_PATH=/path/to/audiobooks
EBOOK_DESTINATION_PATH=/path/to/ebooks
TRANSMISSION_URL=http://your-transmission-server:9091/transmission/rpc

# To use Deluge instead, comment out TRANSMISSION_URL and set:
# DOWNLOAD_CLIENT=deluge
# DELUGE_URL=http://your-deluge-server:8112
# DELUGE_PASSWORD=your_deluge_webui_password
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 with your browser to see the application.

Building for Production

If you're installing manually, you can build for production:

npm run build
npm start

Configuration

All configuration is done via environment variables at deploy time. In the app's Settings you can see the active download client and test the connection, but values are set here.

Variable Required Description
MAM_TOKEN Yes Your MyAnonyMouse session token.
DOWNLOAD_CLIENT No transmission (default) or deluge.
AUDIOBOOK_DESTINATION_PATH Yes Download path for audiobooks (both clients).
EBOOK_DESTINATION_PATH Yes Download path for ebooks (both clients).
TRANSMISSION_URL When transmission Transmission RPC endpoint, e.g. http://host:9091/transmission/rpc.
DELUGE_URL When deluge Deluge WebUI base URL, e.g. http://host:8112.
DELUGE_PASSWORD When deluge Deluge WebUI password.

MAM_TOKEN can alternatively be supplied at runtime via the in-app Settings, or via MAM_TOKEN_FILE pointing to a file containing the token.

Technologies Used

  • Next.js
  • TypeScript
  • AWS Amplify UI
  • MyAnonyMouse RSS API
  • Transmission RPC API
  • Deluge WebUI JSON-RPC API

Limitations

  • Only works with MyAnonyMouse as the content source
  • Requires a Transmission or Deluge client for downloads
  • No library management features - just search and download
  • No automatic organization of downloaded content beyond basic path separation

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages


Back | FazBrowse Home | New Git URL