qbithelparr

qbithelparr

Docker app from entree3000's Repository

Overview

qbithelparr bridges qBittorrent and Discord, allowing you to check torrent download status directly from your Discord server without opening the qBittorrent web interface. Using Discord's native slash commands, you can query your qBittorrent instance to see what's currently downloading, what's completed, and filter by media type (movies or TV shows). This is particularly useful for media server enthusiasts running Sonarr/Radarr automation who want quick status updates without leaving Discord. The bot connects to your qBittorrent WebUI and responds to /status commands in a designated Discord channel, displaying real-time progress, ETA, and torrent states. Messages auto-refresh and clean up after themselves to keep your channel organized. Version 2.0 brings modernized Discord.py 2.x support, proper slash commands, improved error handling, and automatic configuration file generation for easy Unraid deployment.

qbithelparr

qbithelparr is a Discord bot that provides torrent status updates from qBittorrent. It can send notifications to both Discord channels.

Features

  • Discord Integration: Provides status updates on torrents directly in your Discord server.
  • Torrent Status Updates: Shows the status of torrents, including downloading, completed, stalled, and more.
  • Customizable: Configure categories and status types through a configuration file.

Prerequisites

  • Python 3.9+
  • qBittorrent with Web UI enabled
  • Discord Bot Token (with proper intents enabled)
  • Discord Developer Mode enabled (to get channel IDs)

Installation

  1. Clone the repository:

    git clone https://github.com/Entree3k/qbithelparr
    cd qbithelparr
    
  2. Install the required Python packages:

    pip install -r requirements.txt
    
  3. Create your Discord bot:

    • Go to Discord Developer Portal
    • Create a new application
    • Go to "Bot" section and create a bot
    • Enable these intents: Message Content Intent, Server Members Intent
    • Copy your bot token
    • Invite the bot to your server with these permissions: Send Messages, Manage Messages, Read Message History
  4. Configure config.ini:

    • Edit the provided config.ini file
    • Add your Discord bot token
    • Add your Discord channel ID (right-click channel → Copy ID)
    • Configure qBittorrent connection details
    • Set category names to match your Sonarr/Radarr setup

Usage

  1. Run the bot:

    python qbithelparr.py
    
  2. Interact with the bot on Discord using the /status slash command to get the status of torrents.

Docker

Using Docker Run

docker run -d \
  --name qbithelparr \
  --restart unless-stopped \
  -e token="your_discord_bot_token" \
  -e botChannel="your_discord_channel_id" \
  -e QBIT_HOST="localhost" \
  -e QBIT_PORT="8080" \
  -e QBIT_USER="admin" \
  -e QBIT_PASS="your_password" \
  -e TV_CATEGORY="tv" \
  -e MOVIE_CATEGORY="movies" \
  -v /path/to/config:/usr/src/app \
  entree3000/qbithelparr:latest

Using Docker Compose

Create a docker-compose.yml file (see included example) and run:

docker-compose up -d

Building from Source

docker build -t qbithelparr .
docker run -d --name qbithelparr-container qbithelparr

Unraid Installation

  1. Go to the Apps tab in Unraid
  2. Search for qbithelparr
  3. Fill in the configuration fields:
    • Discord Bot Token
    • Discord Channel ID
    • qBittorrent host, port, username, password
    • TV and Movie categories
  4. Click Apply

The container will automatically create a config.ini file at /mnt/user/appdata/qbithelparr/config.ini which you can edit and then restart the container.

Commands

  • /status [filter]: Modern slash command to see the status of torrents.
    • /status or /status all: See all torrents
    • /status movies: See movie torrents only
    • /status tv: See TV show torrents only
    • /status completed: See completed torrents only
    • /status downloading: See actively downloading torrents only
    • /status tv completed: Combine filters to see completed TV shows
    • /status movies downloading: See movies currently downloading

Note: The status message updates every 5 seconds for 30 seconds, then auto-deletes. Non-pinned messages in the channel are cleared when the command is used.

What's New

Version 2.0 Improvements

  • Modern Discord.py 2.x: Updated from deprecated 1.7.3 to latest discord.py with slash commands
  • Slash Commands: Native Discord slash command integration
  • Comprehensive Error Handling: Graceful error handling throughout with user-friendly error messages
  • Type Hints: Added type annotations for better code maintainability
  • Better Documentation: Improved docstrings and inline comments
  • Enhanced Configuration: Better documented config.ini with instructions
  • Channel Validation: Bot now validates it's being used in the correct channel
  • Improved Message Formatting: Better error handling for edge cases in message formatting
  • Docker Support: Updated Dockerfile with proper volume mounting and output buffering

Contributing

Feel free to submit issues or pull requests if you have suggestions or improvements.

Install Qbithelparr on Unraid in a few clicks.

Find Qbithelparr in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Qbithelparr Review the template variables and paths Click Install

Requirements

Before installation, you must configure the values below. After first run, edit /mnt/user/appdata/qbithelparr/config.ini to make changes.

Categories

Download Statistics

637
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
entree3000/qbithelparr:latest
Last Updated2026-01-10
First Seen2022-09-29

Runtime arguments

Network
bridge
Shell
sh
Privileged
false

Template configuration

Discord Bot TokenVariable

Your Discord bot token from https://discord.com/developers/applications

Target
token
Default
your_discord_bot_token
Discord Channel IDVariable

The Discord channel ID where bot will respond (Enable Developer Mode in Discord, right-click channel, Copy ID)

Target
botChannel
Default
your_discord_channel_id
qBittorrent HostVariable

qBittorrent WebUI host (use container name if both on same Docker network)

Target
QBIT_HOST
Default
localhost
qBittorrent PortVariable

qBittorrent WebUI port

Target
QBIT_PORT
Default
8080
qBittorrent UsernameVariable

qBittorrent WebUI username

Target
QBIT_USER
Default
admin
qBittorrent PasswordVariable

qBittorrent WebUI password

Target
QBIT_PASS
TV CategoryVariable

qBittorrent category for TV shows (must match Sonarr category)

Target
TV_CATEGORY
Default
tv
Movie CategoryVariable

qBittorrent category for movies (must match Radarr category)

Target
MOVIE_CATEGORY
Default
movies
AppData Config PathPathrw

Container path for config.ini file

Target
/usr/src/app
Default
/mnt/user/appdata/qbithelparr
Value
/mnt/user/appdata/qbithelparr