Discord-Jellyseerr Bot

This Discord bot integrates with Jellyseerr to provide commands for searching, requesting, and getting notifications about media in your Jellyseerr instance.

Features

  • Search for movies and TV shows
  • Get detailed information about media
  • Request movies and TV shows to be added to your library
  • Get recommendations for similar content
  • Simple interface for interacting with your Jellyseerr instance

Installation

Standard Installation

  1. Clone this repository:

    git clone https://github.com/yourusername/discord-jellyseerr.git
    cd discord-jellyseerr
    
  2. Install the required dependencies:

    pip install -r requirements.txt
    
  3. Copy the .env.example file to .env and edit it with your configuration:

    cp .env.example .env
    
  4. Edit the .env file with your Discord bot token and Jellyseerr API details:

    DISCORD_BOT_TOKEN=your_discord_bot_token_here
    JELLYSEERR_URL=http://your-jellyseerr-instance:5055
    JELLYSEERR_EMAIL=your_jellyseerr_email@example.com
    JELLYSEERR_PASSWORD=your_jellyseerr_password
    
  5. Run the bot:

    python main.py
    

    Alternatively, use the provided shell script:

    ./run.sh
    

Docker Installation

  1. Clone this repository:

    git clone https://github.com/yourusername/discord-jellyseerr.git
    cd discord-jellyseerr
    
  2. Copy the .env.example file to .env and edit it with your configuration:

    cp .env.example .env
    
  3. Edit the .env file with your Discord bot token and Jellyseerr API details as shown above.

  4. Build and run using Docker Compose:

    docker compose up -d
    

For more detailed Docker deployment instructions, see DOCKER.md.

Setting up the Discord Bot

  1. Go to the Discord Developer Portal
  2. Create a new application and set up a bot
  3. Enable the following Privileged Gateway Intents:
    • MESSAGE CONTENT INTENT
  4. Invite the bot to your server with the following permissions:
    • Send Messages
    • Embed Links
    • Attach Files
    • Read Message History
    • Use External Emojis
    • Add Reactions

Jellyseerr Authentication

This bot uses a local Jellyseerr user account for authentication:

  1. Create or use an existing local user account in Jellyseerr
  2. Provide the email address and password in the .env file
  3. The bot will automatically authenticate and maintain the session

Using a dedicated user account provides better tracking of requests and actions performed by the bot.

Important: Jellyseerr requires the email address for login, not the username.

Commands

Search & Discovery

  • !search <query> - Search for movies and TV shows
  • !movie <id> - Get detailed information about a movie
  • !tv <id> - Get detailed information about a TV show
  • !trending - Show trending movies and TV shows

Requests

  • !request movie <id> - Request a movie
  • !request tv <id> [seasons] - Request a TV show (all or specific seasons)
  • !requests [status] [page] - List media requests

Other

  • !help - Show the help message
  • !status - Check Jellyseerr server status

Webhooks

For notifications about request approvals, media availability, and other events, Jellyseerr provides built-in webhook support for Discord. Configure these directly in the Jellyseerr settings panel under "Notifications".

This bot does not handle notifications, as the native webhook integration provides a more reliable solution with customizable notifications.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Deployment Options

Standard Deployment

Run the bot directly on your system with Python. This is simple for testing but requires you to manage dependencies and keep the process running.

Docker Deployment

Deploy the bot as a Docker container for better isolation and easier management. The Docker setup includes:

  • Containerized environment with all dependencies
  • Volume mounting for persistent logs
  • Automatic restarts if the bot crashes

License

This project is licensed under the MIT License - see the LICENSE file for details.

Description
No description provided
Readme 103 KiB
Languages
Python 99.1%
Dockerfile 0.5%
Shell 0.4%