qBittorrent

qbittorrent.org
qBittorrent

A cross-platform BitTorrent client with built-in torrent search, RSS feeds, and an optional web interface. It contains no ads or bundled software. As with any BitTorrent client, your IP address is visible to the peers and trackers you connect to.

Open Source

qBittorrent Source Code

Author

qbittorrent

Description

qBittorrent BitTorrent client

#bittorrent#bittorrent-client#c-plus-plus#crossplatform#torrent#torrent-client

Homepage

https://www.qbittorrent.org

License

NOASSERTION

Created

04 Feb 12

Last Updated

14 Jun 26

Latest version

release-5.2.1

Primary Language

C++

Size

311,182 KB

Stars

38,153

Forks

4,724

Watchers

38,153

Language Usage

Language Usage

Star History

Star History

Top Contributors

Recent Commits

  • Vladimir Golovnev (14 Jun 26)

    Use better name for torrent IO error signal PR #24510.

  • Vladimir Golovnev (14 Jun 26)

    Fix missing signal parameters PR #24509.

  • Vladimir Golovnev (14 Jun 26)

    Use better method name for clearing the tags PR #24508.

  • Vladimir Golovnev (14 Jun 26)

    Use better names for search engine related types PR #24507.

  • Hu Xinyu (14 Jun 26)

    Fix MatchAll share limit mode when all limits are disabled PR #24497.

  • xavier2k6 (13 Jun 26)

    GHA CI: Sync `NSIS` third party action with upstream * Bump `repolevedavaj/install-nsis` action `1.2.0` -> `1.2.1` https://github.com/repolevedavaj/install-nsis/releases/tag/v1.2.1 PR #24495.

  • Andy Ye (12 Jun 26)

    Use Latin script for Bosnian locale name Fixes #24188 PR #24342

  • Zihao (12 Jun 26)

    fix: "Torrent is already present" dialog position when main window is minimized PR #24403. Closes #24375.

  • LewpyUK (09 Jun 26)

    Support multiple recipients for email notifications PR #24304. Closes #18739.

  • Chocobo1 (08 Jun 26)

    Avoid memory leak on translator This revise the translation loading procedure for both Qt and qbt translations. PR #24456.

  • Chocobo1 (08 Jun 26)

    Make 'server domain' matching anchored Otherwise it will match to any sub-string of the HTTP Host header, which is unwanted behavior. Also, now it stores regex expressions to avoid constructing them on every use. For users: This is tighten up behavior from previous. Add `*` to match sub-domains if required. For example: `*.example.com`. PR #24458.

  • Chocobo1 (08 Jun 26)

    Only use `X-Forwarded-Host` header when reverse proxy support is enabled PR #24457.

  • Chocobo1 (08 Jun 26)

    Revise container for entry tracking in Transfer List Model Instead of maintaining two separate containers, now there is only one. PR #24455.

  • Chocobo1 (08 Jun 26)

    Clean up initialization Previously `columnFilterLayout` set `m_columnFilterWidget` as parent, but the latter is still `nullptr` which is a surprise. So just remove the `parent` parameter since later `setLayout(columnFilterLayout)` will set the `parent` properly. PR #24454.

  • Chocobo1 (08 Jun 26)

    Handle edge case for `splitToViews()` This avoids potential division by zero when `in` is not empty and `sep` is empty. Also, now it fully matches `QStringView::split()` behavior. PR #24453.

  • dependabot[bot] (08 Jun 26)

    GHA CI: Bump pre-commit hook versions Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> PR #24435.

  • LewpyUK (08 Jun 26)

    WebUI: Replace alerts for test email with custom notification Replace alert dialogs with a `MochaUI.Window`-based notification dialog for test email results. Set the translation context of the each message to the same. PR #24283.

  • Mark Yu (08 Jun 26)

    WebUI: Implement skip "Add new torrent" dialog This implements `Display torrent content and some options` in WebUI. Currently, the WebUI **always** opens a the `AddNewTorrentDialog` when adding a new torrent. PR #24404.

  • Aaron Kruse (07 Jun 26)

    Add "Contribution" column to Peers list PR #23989.

  • Mark Yu (07 Jun 26)

    WebUI: Bring back properties panel expand/collapse button PR #24430. Closes #24429.

  • Vladimir Golovnev (07 Jun 26)

    Fix previously matched episode format PR #24452. Closes #24177.

  • Vladimir Golovnev (07 Jun 26)

    Don't reannounce before interface changes are applied PR #24447.

  • nathanon-akk (07 Jun 26)

    Fix "RSS Smart Episode Filter" RegEx PR #24398. --------- Co-authored-by: Vladimir Golovnev <[email protected]>

  • Tom Piccirello (06 Jun 26)

    WebUI: Reuse category and plugin when refreshing search The new search should use the same category and plugin as the original search. PR #24427.

  • PedroVH (06 Jun 26)

    WebUI: Use correct row id when updating Rss Downloader feed selection Currently in `RssDownloaderFeedSelectionTable` "click" event listener, the `row` value is retrieved from the `rssDownloaderRulesTable` when it should be from `rssDownloaderFeedSelectionTable`. This value is used in `rssDownloaderFeedSelectionTable.updateRowData()` and it makes no sense to update an item in a table using another tables item id. You can reproduce the bug by having more feeds than rules, and trying to change the selection of feeds at the end of the list. You can circumvent this bug by creating a corresponding number of Rules for each Feed, so that an Id is found by `rssDownloaderRulesTable.getRow()`. PR #24402.

  • Chocobo1 (06 Jun 26)

    Revise container usage * Add `reserve()` calls. Each index needs to call independently. * Use `key` template helper. This can simplify code. * Add `ByIndex` tag. This improves readability and avoid ambiguity. There should be no user visible changes. PR #24426.

  • Chocobo1 (06 Jun 26)

    Don't store redundant pointer in cookies model The pointer is not in use so storing it is unnecessary. The pointer might become dangling when the container is modified and this will trigger warnings from code analyzers. PR #24415.

  • Chocobo1 (06 Jun 26)

    Avoid useless cast PR #24414.

  • Chocobo1 (06 Jun 26)

    Fix wrong removal procedure Previously the operation will start to be wrong after removing an element from `m_watchedFolders`, this is fixed now. Also, the elements are now removed in one operation which avoids multiple shifting. PR #24413.

  • Chocobo1 (06 Jun 26)

    Fix off-by-one error The `beginInsertRows()` expects index not total count. Also guard for empty input. PR #24412.

qBittorrent Security

8/10

Repo Security Summary

Updated 01 Jun 26

  • Code-Review 10/10
  • Maintained 10/10
  • Security-Policy 10/10
  • Packaging N/A
  • CII-Best-Practices 0/10
  • Token-Permissions 10/10
  • Dangerous-Workflow 10/10
  • Binary-Artifacts 10/10
  • License 9/10
  • Signed-Releases 8/10
  • Pinned-Dependencies 0/10
  • Fuzzing 0/10
  • Branch-Protection N/A
  • SAST 10/10

qBittorrent Website

Website

qBittorrent Official Website

qBittorrent Official Website

Redirects

Does not redirect

Security Checks

All 65 security checks passed

Server Details

  • IP Address 172.67.177.106
  • Location San Francisco, California, United States of America, NA
  • ISP CloudFlare Inc.
  • ASN AS13335

Associated Countries

  • US US

Safety Score

Website marked as safe

100%

Blacklist Check

www.qbittorrent.org was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

qBittorrent Docker

Container Info

qbittorrent

The qBittorrent project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.

#Downloaders linuxserver/qbittorrent:latest

Run Command

docker run -d \
  -p 6881:6881/tcp \
  -p 6881:6881/udp \
  -p 8080:8080/tcp \
  -e PUID=${PUID} \
  -e PGID=${PGID} \
  -v /portainer/Files/AppData/Config/qBittorrent:/config \
  -v /portainer/Downloads:/downloads \
  --restart=unless-stopped \
  linuxserver/qbittorrent:latest

Compose File

version: 3.8
services:
  qbittorrent:
    image: "linuxserver/qbittorrent:latest"
    ports:
      - "6881:6881/tcp"
      - "6881:6881/udp"
      - "8080:8080/tcp"
    environment:
      PUID: 1000
      PGID: 100
    volumes:
      - "/portainer/Files/AppData/Config/qBittorrent:/config"
      - "/portainer/Downloads:/downloads"
    restart: unless-stopped

Environment Variables

  • Var Name Default
  • PUID 1000
  • PGID 100

Port List

  • 6881:6881/tcp
  • 6881:6881/udp
  • 8080:8080/tcp

Volume Mounting

  • /portainer/Files/AppData/Config/qBittorrent /config
  • /portainer/Downloads /downloads

qBittorrent Socials

qBittorrent Reviews

More Torrent Downloaders

⚠️ This section is still a work in progress ⚠️
Check back soon, or help us complete it by submiting a pull request on GitHub.
Or submit an entry here

About the Data: qBittorrent

Change History

API

You can access qBittorrent's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/qbittorrent

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share qBittorrent

Help your friends compare Torrent Downloaders, and pick privacy-respecting software and services.
Share qBittorrent and Awesome Privacy with your network!

View Torrent Downloaders (1)