Skip to content

WhatsApp bot for Seerr that allows users to search and request media via WhatsApp messages

License

Notifications You must be signed in to change notification settings

SuFxGIT/whatseerr

Repository files navigation

Whatseerr Logo

Whatseerr

WhatsApp bot for Seerr that allows users to search and request media via WhatsApp messages.

Features

  • πŸ” Search movies and TV shows from WhatsApp
  • πŸ“Ί Request media directly via chat messages
  • πŸ”” Receive webhook notifications from Seerr
  • πŸ‘₯ User mapping (WhatsApp phone numbers to Seerr user IDs)
  • ⚑ Rate limiting and message queuing
  • 🎯 Support for 4K requests (optional)

Screenshots

πŸ“Έ View Screenshots

Quick Start (Docker - Recommended)

Prerequisites

  • WAHA (WhatsApp HTTP API) running and configured
  • Seerr instance
  • Docker installed

1. Pull the Image and Run

docker pull ghcr.io/sufxgit/whatseerr:latest

Environment Variables

Variable Description Required Default
TZ Timezone (e.g., Asia/Kuwait, America/New_York) No UTC

Docker Compose Example

services:
  whatseerr:
    image: ghcr.io/sufxgit/whatseerr:latest
    container_name: whatseerr-bot
    restart: unless-stopped
    ports:
      - "3006:3006"
    volumes:
      - /path/to/config:/config
    environment:
      - TZ=Asia/Kuwait

Configuration Notes:

  • On first run, a config.example.json will be created in your config directory
  • Rename it to config.json and update with your settings:
    • host: The hostname/IP where Seerr, WAHA, and the bot can reach each other
    • jellyseerr.apiKey: Get from Seerr β†’ Settings β†’ General
    • waha.apiKey: Your WAHA API key
    • userIdMappings: Map WhatsApp phone numbers (without @c.us) to Seerr user IDs
      "1234567890": {
        "userId": 1,
        "username": "",
        "admin": true
      }
      • "1234567890": WhatsApp phone number including country code (without @c.us suffix)
      • userId: The user ID from your Seerr instance - each user has their own unique ID (found in Seerr β†’ Users)
      • username: Optional custom display name (leave empty to use Seerr username)
      • admin: Add "admin": true if the user is an admin (omit or set to false otherwise)

Unraid:

  • Repository: ghcr.io/sufxgit/whatseerr:latest
  • Port: 3006:3006 (TCP)
  • Volume: /mnt/user/appdata/whatseerr/config β†’ /config (Read/Write)
  • Variable: TZ=Your/Timezone

2. Configure WAHA Webhook

Point your WAHA session webhook to:

http://YOUR_HOST_IP:3006/requests

Enable these events:

  • session.status
  • message
  • message.reactions

3. Configure Seerr Webhook (Optional)

For receiving notifications (approved/available/declined), add webhook in Seerr:

Webhook URL:

http://YOUR_HOST_IP:3006/seerr

Types: Select notification types you want to receive

Usage

Send a WhatsApp message to your WAHA-connected number:

r The Matrix

The bot will:

  1. Search Seerr for "The Matrix"
  2. Return numbered results
  3. Wait for you to reply with a number (e.g., "1")
  4. Submit the request to Seerr

Available Commands:

  • r <title> or request <title> - Search and request media
  • r4k <title> or request4k <title> - Request in 4K quality (if enabled)

Configuration Options

System

  • protocol: http or https
  • host: Shared hostname/IP for all services
  • logging.level: info or debug

Services

  • jellyseerr.port: Seerr port (default: 5055)
  • jellyseerr.apiKey: Your Seerr API key
  • jellyseerr.defaultUserId: Default user ID for requests
  • waha.port: WAHA port (default: 8584)
  • waha.apiKey: WAHA API key
  • waha.session: WAHA session name (default: "default")

Webhooks

  • webhook.requests.path: Path for WAHA webhook (default: /requests)
  • webhook.requests.port: Webhook server port (default: 3006)
  • webhook.seerr.path: Path for Seerr webhook (default: /seerr)

Mappings

  • userIdMappings: Map phone numbers to Seerr user IDs
  • emailMappings: Auto-populated from webhook notifications
  • lidMappings: Auto-populated for WhatsApp LID format support

Commands

  • command: Comma-separated list of request command aliases
  • command4k: Comma-separated list of 4K request command aliases
  • help4k: Show 4K commands in help message (default: false)

Viewing Logs

docker logs -f whatseerr-bot

Building from Source

git clone https://github.com/sufxgit/whatseerr.git
cd whatseerr
docker build -t whatseerr .

Development

For local development without Docker:

  1. Clone the repository

    git clone https://github.com/sufxgit/whatseerr.git
    cd whatseerr
  2. Install dependencies

    npm install
  3. Create config

    cp config/config.example.json config/config.json
    nano config/config.json
  4. Run the bot

    npm run bot

License

MIT