qBittorrent - A BitTorrent client in Qt

Overview

qBittorrent - A BitTorrent client in Qt

AppVeyor Status GitHub Actions CI Status Coverity Status


Description:

qBittorrent is a bittorrent client programmed in C++ / Qt that uses libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.

It aims to be a good alternative to all other bittorrent clients out there. qBittorrent is fast, stable and provides unicode support as well as many features.

The free IP to Country Lite database by DB-IP is used for resolving the countries of peers. The database is licensed under the Creative Commons Attribution 4.0 International License.

Installation:

For installation, follow the instructions from INSTALL file, but simple:

./configure
make && make install
qbittorrent

will install and execute qBittorrent hopefully without any problem.

Public key:

Starting from v3.3.4 all source tarballs and binaries are signed.
The key currently used is 4096R/5B7CC9A2 with fingerprint D8F3DA77AAC6741053599C136E4A2D025B7CC9A2.
You can also download it from here.
PREVIOUSLY the following key was used to sign the v3.3.4 source tarballs and v3.3.4 Windows installer only: 4096R/520EC6F6 with fingerprint F4A5FD201B117B1C2AB590E2A1ACCAE4520EC6F6.

Misc:

For more information please visit: https://www.qbittorrent.org

or our wiki here: http://wiki.qbittorrent.org

Use the forum for troubleshooting before reporting bugs: http://forum.qbittorrent.org

Please report any bug (or feature request) to: http://bugs.qbittorrent.org and https://cpperror.com

Official IRC channel: #qbittorrent on irc.libera.chat


sledgehammer999 <[email protected]>

Comments
  • Implement new icon/color theme

    Implement new icon/color theme

    Redesigned Icons

    Old icons posed two problems:

    • Barely visible in dark theme
      
    • Inconsistent icon sizes and colors
      

    With this commit, the following changes were made:

    • Bright Icons that work in both white and dark theme
      
    • All icons using uniform canvas (32 px * 32 px) and limited color pallet
      
    • All icons are in SVG file now
      

    These icons have well visibility in the HDPI screen and thus future-proof the application.

    Optimization

    All SVG icons have been optimized by svgcleaner. It removes unnecessary metadata and sometimes fixes color and shape preview.

    Quality Improvement

    Removed icons that are not being used

    • [x] dialog-cancel
    • [x] dialog-information
    • [x] document-encrypt
    • [x] document-import
    • [x] document-save
    • [x] edit-clear-history
    • [x] edit-cut
    • [x] edit-paste
    • [x] expand
    • [x] rss-config
    • [x] services
    • [x] tab-close
    • [x] tools-report-bug
    • [x] view-calendar-journal

    Replaced similar and single use icons

    • [x] Replaced checking by queued
    • [x] Replaced completed by checked
    • [x] Replaced document-edit by edit-rename
    • [x] Replaced document-properties by help-about and help-contents
    • [x] Replaced download by downloading
    • [x] Replaced edit-delete by list-remove
    • [x] Replaced mail-mark-read by task-complete
    • [x] Replaced paused.svg by media-playback-pause
    • [x] Replaced resumed by media-playback-start
    • [x] Replaced seeding by kt-set-max-upload-speed
    • [x] Replaced sphere by loading
    • [x] Replaced task-attention by dialog-warning
    • [x] Replaced unavailable by task-reject
    • [x] Replaced uploading by kt-set-max-upload-speed
    • [x] Replaced view-filter by filterinactive
    • [x] Replaced qbittorrent-tray-with-font by qbittorrent-tray

    Preview

    Icons - New

    In-place GUI Menu & Context Icons

    delete confirmation copy transferlist context menu queue transferlist context menu tags transferlist context menu category transferlist context menu transfer list - context menu v2 filters context menu tags filter context menu category filter context menu transferlist context menu content context menu http sources context menu peers context menu trackers context menu webui certificates ip filtering properties tab bar status bar v1 search menu RSS menu help menu tools menu view menu edit menu File Menu 9th June 2022 Tray Icon Context Menu 9th June 2022 top toolbar filters sidebar

    Transferlist torrents by state text colors

    transferlist torrents by state text in light mode transferlist torrents by state text in dark mode

    Quick overview

    image image

    Reference PRs

    #8406, #12169, #12926, #12965

    WebUI Look and feel GUI 
    opened by now-im 553
  • Control/Edit RSS feeds from the Web UI

    Control/Edit RSS feeds from the Web UI

    I have qbittorrent running on OpenSUSE 12.2 that I used to set up RSS feeds to automatically download torrents and I used this box as a media server for my home. I can adjust pretty much everything through an ssh session or through the web ui. It would be nice to be able to control the RSS feeds for qbittorrent without having to ssh -Y into the box and pull over the gui and do the edits. Ideally I want to use the web ui from my iPAD and adjust the RSS feeds, can this feature be added to the web ui? Thanks jdavis3980

    Feature request WebUI RSS 
    opened by jdavis3980 281
  • Proxies and UDP issues (no DHT/magnet/metadata/UDP trackers)

    Proxies and UDP issues (no DHT/magnet/metadata/UDP trackers)

    This is to gather all relevant bug reports about proxies and UDP connection issues(no DHT, no magnet/metadata working, no UDP trackers working etc)

    These came into being after the 4.2.0 release which uses libtorrent 1.2.0. Libtorrent 1.2.x doesn't have the force_proxy setting that libtorrent 1.1.x did. This option, when false, allowed direct connections to DHT/metadata/μTP peers/UDP trackers when the proxy didn't support UDP connections. In libtorrent 1.2.x this was deemed non-sensical and if the proxy doesn't support UDP connections then all the above will not work. No direct connection will be attempted.

    Anonymous mode doesn't play a role in this.

    There is a slight chance that libtorrent code doesn't correctly detect UDP support by the proxy. So the purpose of the thread is to help debug and forward details to the libtorrent author.

    For the time being the libtorrent author has provided a PR(https://github.com/arvidn/libtorrent/pull/4202) which logs socks5 related errors. I will provide a test builds shortly.

    Network Proxy/VPN 
    opened by sledgehammer999 218
  • No connections/torrents won't start when using a proxy server

    No connections/torrents won't start when using a proxy server

    qBittorrent version and Operating System:

    qBittorrent 4.0.0, Windows 10 (Fall Creators Update)

    What is the problem:

    No connections when using a Socks5 proxy server. Adding a Torrent with over 1000 seeds stays at "downloading metadata" with 0 seeds and 0 peers. Appears unable to make any connections. Downgrade to qBittorrent 3.3.16 OR turn off proxy server (bad) and torrents immediately start.

    What is the expected behavior:

    Should be able to connect and torrents should start downloading like they always have in version 3

    Steps to reproduce:

    Add any torrent and use a proxy server (btguard, etc.)

    Proxy/VPN 
    opened by qtipbailey 200
  • SOCKS5 proxy disconnect issue due to insufficient retries

    SOCKS5 proxy disconnect issue due to insufficient retries

    EDIT: for users having trouble with this, use the test build linked here: https://github.com/qbittorrent/qBittorrent/issues/12583#issuecomment-619298534, it should be able to re-establish connection after disconnect errors.

    Follow up to https://github.com/qbittorrent/qBittorrent/issues/11735#issuecomment-615831521 @arvidn for your convenience.

    Network Libtorrent Proxy/VPN 
    opened by FranciscoPombal 195
  • Dark Theme

    Dark Theme

    Is there a way to use Qt's theme engine to support themeing? In particular, a simple dark theme option would be great: qBittorrent is blindingly white at night when I want to watch some... legally downloaded TV shows.

    P.S. I'm on Windows.


    EDIT: I'm on Linux now. Dark themes galore! Join the masterrace, folks!

    Feature request Look and feel 
    opened by YodaEmbedding 194
  • 4.2.5 takes half an hour to load UI

    4.2.5 takes half an hour to load UI

    qBittorrent version and Operating System

    v4.2.5 x64 Windows 10 (running virtualised under Hyper-V)

    What is the problem

    After updating to 4.2.* versions a few times and finding them to vary between unstable and unusable, I made the mistake of updating again today - this time to 4.2.5 from 4.1.9.1

    It takes about half an hour to load the UI. A blank white/grey "qBittorrent v4.2.5 (Not Responding) " window loads up, and then half an hour later (I'm not joking!), starts responding. By the time it's responding, it has built up a commit size of over 12 GB, but only 500MB or so working set.

    I'm not really sure what else to check. Process Explorer says it's opened a large amount of connections, so it would appear that it may actually be functioning while the UI is non-responsive. There is very little disk IO.

    What is the expected behavior

    Program opens a responsive UI in a timely manner and does not use 12 GB RAM.

    Steps to reproduce

    Upgrade from 4.1.9.1 with many existing torrents and then try to open v4.2.5

    Additional Info

    • Windows 10 is virtualised using hyper-v
    • Network access is via a VPN
    • The downloaded files are stored on a network share, which is connected via virtualised 10-GigE. This does not use the VPN
    • All the other files are stored in their default locations, %appdata%/qBittorrent etc.
    • There does not appear to be any performance bottleneck anywhere that I can find - disk usage/queues on both the local VM and the network storage disks are fine. Network access is fine.
    Performance GUI 
    opened by ned-martin 166
  • qBittorrent process never ends

    qBittorrent process never ends

    Windows 10 x64 qBittorrent 3.3.4

    When I click FIle => Exit the tray icon disappears but the process is running forever... If I want to start qBittorrent again I have to kill the old process in the task manager. When I shutdown the pc many times the pc never goes off because it's waiting for qBittorrent (the message is saving torrent...)

    I don't know if it's caused by qBittorrent or by libtorrent but I think we should add a timeout (for example 5 seconds) and force exit if the task are not completed within that time. @qbittorrent/qbittorrent-frequent-contributors

    OS: Windows OS: Linux Confirmed bug Libtorrent 
    opened by ngosang 165
  • 4.2.x high RAM memory usage due to HTTPS tracker announces for some users

    4.2.x high RAM memory usage due to HTTPS tracker announces for some users

    Please provide the following information

    qBittorrent version and Operating System

    4.2.2 Windows 10

    If on linux, libtorrent-rasterbar and Qt version

    (type here)

    What is the problem

    Excessively high RAM memory usage compared to 4.2.0

    320MB after continuously running for two weeks compared to 2.5GB after running for 3 hours with the same of downloading/uploading torrents.

    4.2.2 RAM USAGE 4_2_2 RAM

    4.2.2 STATISTICS

    4_2_2 STAT

    4.2.0 RAM USAGE 4_2_0 RAM

    4.2.0 STATISTICS 4_2_2 STAT

    What is the expected behavior

    (type here)

    Steps to reproduce

    (type here)

    Extra info(if any)

    (type here)

    Performance Libtorrent 
    opened by p43b1 156
  • Redesign Icons

    Redesign Icons

    Redesigned Icons

    Old icons posed two problems:

    • Barely visible in dark theme
    • Inconsistent icon sizes and colors

    With this commit, the following changes were made:

    • Bright Icons which are equally visible in both white and dark theme
    • All icons using uniform canvas and only 6 colors

    These icons have well visibility in the HDPI screen and thus future-proof the application.

    WebUI Look and feel GUI 
    opened by now-im 151
  • IO Errors popping up out of nowhere

    IO Errors popping up out of nowhere

    EDITED BY @sledgehammer999 Libtorrent bug link: https://code.google.com/p/libtorrent/issues/detail?id=406 Read that link carefully and this one too before posting "me too" reports.

    ORIGINAL POST TEXT FOLLOWS

    I've suddenly been getting this error on several torrents the past day or so

    25/12/2012 22:31:58 - An I/O error occured, 'blanketyblank' paused. 25/12/2012 22:31:58 - Reason: blanketyblank file (C:/Users/Sarreq Teryx/Downloads/ut\blanketyblank.mkv.!qB) error: Used to indicate that an operation cannot continue without blocking for I/O

    Confirmed bug 
    opened by SarreqTeryx 151
  • "Align to piece boundary for files larger than" function does not work correctly.

    qBittorrent & operating system versions

    2022-11-24_231432

    What is the problem?

    A folder is created in the created torrent, which should not be.

    Steps to reproduce

    1 Torrent Creator 2 Optimise alignment 3 Align to piece boundary for files larger than: 1 KiB 4 The .pad directory appears in the created torrent

    I'm expecting align to piece and don't expect to see a .pad directory there. 2022-11-24_232613

    Or was that how it was intended?

    Additional context

    No response

    Log(s) & preferences file(s)

    No response

    opened by stalkerok 0
  • Files saving to default location regardless of 'Save at'

    Files saving to default location regardless of 'Save at'

    qBittorrent & operating system versions

    4.4.5 Windows 10 21H2 19044.2251 x64

    What is the problem?

    Files are saving to default location (Downloads) regardless of 'save at' being used.

    Steps to reproduce

    Set to manual mode Select a save location either by browsing or by using previous locations when loading torrent Start torrent Torrent saving into default rather than selected location

    Additional context

    No response

    Log(s) & preferences file(s)

    qBittorrent settings.txt

    Can't reproduce 
    opened by Void2258 1
  • Auto delete after RSS auto downloader rule matches an article

    Auto delete after RSS auto downloader rule matches an article

    Suggestion

    Hey everyone :-) I'd like to see an "Auto delete rule after match" checkbox in RSS automatic downloader rules, for occasions when I set a rule to download only a single torrent, like a film, audiobook, album, ebook, etc., so that I don't need to manually delete rules that have matched and downloaded the torrent.

    Use case

    Downloading single torrents.

    Feature request RSS 
    opened by 91rl 0
  • Qbittorent Spontaneously self deleting without notice

    Qbittorent Spontaneously self deleting without notice

    qBittorrent & operating system versions

    4.4.5 Windows 10 21H2 19044.2251 x64

    What is the problem?

    The program is uninstalling silently. There is no notification or indicator of any kind, it is just suddenly gone.

    Steps to reproduce

    None - happens spontaneously and randomly.

    Additional context

    No response

    Log(s) & preferences file(s)

    No response

    opened by Void2258 5
  • [Enhancement] Seperate dialog box for regex editing

    [Enhancement] Seperate dialog box for regex editing

    Suggestion

    We need a separate dialog box for editing regular expression. For rss feed, It is very difficult to edit regular expression in one line.

    Use case

    (?x) (?:Pink\sPanther |Bucks |<something to match>) (.*) (?:Animated |Movies?) (.*) (?:1080|720)p # Match for Bucks Bunny Animated 1080p.mp4

    Extra info/examples/attachments

    No response

    Feature request RSS 
    opened by freezboltz 0
  • Starvation of WebUI with low performance processors

    Starvation of WebUI with low performance processors

    qBittorrent & operating system versions

    qBitorrent: 4.4.0 armhf (docker version by linuxserver.io) OS: Ubuntu 20.04.3 LTS Qt: not related; this is a headless server libtorrent-rasterbar: 2.0.5

    CPU: Marvell ARMADA 375, Cortex A9, 2 cores Memory: 2G

    What is the problem?

    Basically my machine is a bare metal Marvell ARMADA 375 machine, 2 cores with 2 GB memory. It is a slow CPU and I wanted to utilize both cores so I switched from transmission to qb.

    After importing a torrent file and it starts to download, it hangs the entire WebUI. It says disconnected from qbittorrent. After a restart of qbittorrent, it still has no response to any query. Basically TCP connection could not be established with port 8080 as lsof did not show the incoming connection. Using curl on the server to request localhost:8080 and the WebUI API also does not work. It seems that some sort of starvation happens on the thread handling WebUI connections. Download/Verification of files are processed normally but WebUI is not.

    I have checked version history and nothing mentioned regarding this between 4.4.0 to the latest official version.

    It is in fact a slow machine, but probably better synchronization/scheduling could have been done to prevent starvation on the WebUI. Control of the daemon could possibly be placed at a higher priority than normal IO/Hash thread.

    AsyncIO and Hash threads are set to 1. However, it still takes up both cores to a consistent 100% after restart.

    Edit: I tested again and found that if only verification happens, it consumes 100% on one core and ~60% on the other, and the WebUI is still responsive although slower. However, when there is a single task downloading, the WebUI is not responsive and behave the same as above mentioned details.

    Edit2: WebUI/API does not respond to requests again after I add multiple tasks for verification. CPU is still 100/60 but WebUI seems to be fighting resources with the hashing thread.

    Steps to reproduce

    1. Find a slow machine, <= 2 cores (not sure whether this is the cause)
    2. Add new download task ~~/verify existing files~~

    Additional context

    image ^ 9 minutes for loading the mainpage (the login page)

    This browser is from a different machine so the latency is not caused by the browser.

    Log(s) & preferences file(s)

    Config
    [AutoRun]
    enabled=false
    program=
    
    [BitTorrent]
    Session\AddExtensionToIncompleteFiles=true
    Session\AnnounceToAllTrackers=true
    Session\AsyncIOThreadsCount=1
    Session\CheckingMemUsageSize=128
    Session\CoalesceReadWrite=true
    Session\DHTEnabled=false
    Session\DefaultSavePath=/downloads/complete
    Session\DiskCacheSize=256
    Session\Encryption=1
    Session\HashingThreadsCount=1
    Session\IDNSupportEnabled=true
    Session\LSDEnabled=false
    Session\MaxUploads=50
    Session\MaxUploadsPerTorrent=20
    Session\MultiConnectionsPerIp=true
    Session\PeXEnabled=false
    Session\PieceExtentAffinity=true
    Session\Port=56881
    Session\Preallocation=true
    Session\QueueingSystemEnabled=false
    Session\ReannounceWhenAddressChanged=true
    Session\TempPath=/downloads/incomplete/
    Session\TempPathEnabled=true
    Session\TorrentExportDirectory=/downloads/torrents/
    
    [Core]
    AutoDeleteAddedTorrentFile=Never
    
    [LegalNotice]
    Accepted=true
    
    [Meta]
    MigrationVersion=2
    
    [Network]
    [email protected]()
    PortForwardingEnabled=false
    Proxy\OnlyForTorrents=false
    
    [Preferences]
    Advanced\RecheckOnCompletion=false
    Advanced\trackerPort=9000
    Connection\PortRangeMin=6881
    Connection\ResolvePeerCountries=true
    Connection\UPnP=false
    Downloads\SavePath=/downloads/
    Downloads\TempPath=/downloads/incomplete/
    DynDNS\DomainName=changeme.dyndns.org
    DynDNS\Enabled=false
    DynDNS\Password=
    DynDNS\Service=DynDNS
    DynDNS\Username=
    General\Locale=
    MailNotification\email=
    MailNotification\enabled=false
    MailNotification\password=
    MailNotification\req_auth=true
    MailNotification\req_ssl=false
    MailNotification\[email protected]
    MailNotification\smtp_server=smtp.changeme.com
    MailNotification\username=
    WebUI\Address=*
    WebUI\AlternativeUIEnabled=false
    WebUI\AuthSubnetWhitelistEnabled=false
    WebUI\BanDuration=3600
    WebUI\CSRFProtection=true
    WebUI\ClickjackingProtection=true
    WebUI\CustomHTTPHeaders=
    WebUI\CustomHTTPHeadersEnabled=false
    WebUI\HTTPS\CertificatePath=
    WebUI\HTTPS\Enabled=false
    WebUI\HTTPS\KeyPath=
    WebUI\HostHeaderValidation=true
    WebUI\LocalHostAuth=true
    WebUI\MaxAuthenticationFailCount=5
    WebUI\Port=8080
    WebUI\ReverseProxySupportEnabled=true
    WebUI\RootFolder=
    WebUI\SecureCookie=true
    WebUI\ServerDomains=*
    WebUI\SessionTimeout=3600
    WebUI\TrustedReverseProxiesList=127.0.0.1
    WebUI\UseUPnP=true
    WebUI\Username=admin
    
    [RSS]
    AutoDownloader\DownloadRepacks=true
    AutoDownloader\SmartEpisodeFilter=s(\\d+)e(\\d+), (\\d+)x(\\d+), "(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})", "(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})"
    
    opened by fsgmhoward 0
Owner
qBittorrent project
qBittorrent project
Transmission is a fast, easy, and free BitTorrent client

About Transmission is a fast, easy, and free BitTorrent client. It comes in several flavors: A native Mac OS X GUI application GTK+ and Qt GUI applica

Bread 97 Nov 16, 2022
BitTorrent DHT library

The files dht.c and dht.h implement the variant of the Kademlia Distributed Hash Table (DHT) used in the Bittorrent network (``mainline'' variant). T

Juliusz Chroboczek 650 Nov 17, 2022
an efficient feature complete C++ bittorrent implementation

libtorrent is an open source C++ library implementing the BitTorrent protocol, along with most popular extensions, making it suitable for real world d

Arvid Norberg 4.2k Nov 22, 2022
libTorrent BitTorrent library

LibTorrent Copyright (C) 2005-2014, Jari Sundell LICENSE GNU GPL, see COPYING. "libtorrent/src/utils/sha_fast.{cc,h}" is originally from the Mozil

Jari Sundell 841 Nov 5, 2022
Tool for inspecting, creating and editing BitTorrent metafiles.

A commandline tool for creating, inspecting and modifying bittorrent metafiles.

null 124 Nov 21, 2022
Transmission is a fast, easy, and free BitTorrent client.

Official Transmission BitTorrent client repository

Transmission 8.1k Nov 23, 2022
Transmission is a fast, easy, and free BitTorrent client

About Transmission is a fast, easy, and free BitTorrent client. It comes in several flavors: A native Mac OS X GUI application GTK+ and Qt GUI applica

Bread 97 Nov 16, 2022
BitTorrent DHT library

The files dht.c and dht.h implement the variant of the Kademlia Distributed Hash Table (DHT) used in the Bittorrent network (``mainline'' variant). T

Juliusz Chroboczek 650 Nov 17, 2022
an efficient feature complete C++ bittorrent implementation

libtorrent is an open source C++ library implementing the BitTorrent protocol, along with most popular extensions, making it suitable for real world d

Arvid Norberg 4.2k Nov 22, 2022
libTorrent BitTorrent library

LibTorrent Copyright (C) 2005-2014, Jari Sundell LICENSE GNU GPL, see COPYING. "libtorrent/src/utils/sha_fast.{cc,h}" is originally from the Mozil

Jari Sundell 841 Nov 5, 2022
Tool for inspecting, creating and editing BitTorrent metafiles.

A commandline tool for creating, inspecting and modifying bittorrent metafiles.

null 124 Nov 21, 2022
A bittorrent plugin for VLC.

vlc-bittorrent (Bittorrent plugin for VLC) What is this? With vlc-bittorrent, you can open a .torrent file or magnet link with VLC and stream any medi

Johan Gunnarsson 344 Nov 15, 2022
This is a collection of tools for creating and manipulating BitTorrent v2 torrent files

torrent tools This is a collection of tools for creating and manipulating BitTorrent v2 torrent files. torrent-new can create hybrid torrents, but the

Arvid Norberg 9 Nov 12, 2022
web server & client. Fully C++/WebAssembly. Server runs on google cloud function. Client uses a C++ virtual dom.

Starter project. A web server and client fully made with C++/WebAssembly. A simple CMake configuration describes how to build and run everything.

null 3 Aug 6, 2021
Triton Python and C++ client libraries and example, and client examples for go, java and scala.

Triton Client Libraries and Examples To simplify communication with Triton, the Triton project provides several client libraries and examples of how t

Triton Inference Server 211 Nov 25, 2022
VEngine-Client - vEngine: Official Client Module

━ S Y N O P S I S ━ Maintainer(s): Aviril, Tron vEngine is Next-Gen Sandbox-Engine being crafted in C++. In contrast to UE/Unity/ReverseEngineered-Mod

ᴠ : ꜱᴛᴜᴅɪᴏ 15 Sep 7, 2022
Pyth-client - client API for on-chain pyth programs

pyth-client client API for on-chain pyth programs Build Instructions # depends on openssl apt install libssl-dev # depends on libz apt install zlib1g

Pyth Network 113 Nov 23, 2022
Webdav-client-cpp - C++ WebDAV Client provides easy and convenient to work with WebDAV-servers.

WebDAV Client Package WebDAV Client provides easy and convenient to work with WebDAV-servers: Yandex.Disk Dropbox Google Drive Box 4shared ownCloud ..

Cloud Polis 102 Oct 1, 2022
This repository provides a C++ client SDK for Unleash that meets the Unleash Client Specifications.

Unleash Client SDK for C++ This repository provides a C++ client SDK for Unleash that meets the Unleash Client Specifications. Features The below tabl

Antonio Ruiz 4 Jan 30, 2022