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]>

Issues
  • 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
  • Option to change layout of panels in RSS tab

    Option to change layout of panels in RSS tab

    Suggestion

    In all versions till current v4.4.3.1 version, the RSS tab has always been a 3-panel tab - RSS feed panel on left, torrents panel in middle, and RSS article panel details on right. The app allows some adjustment of width of the panel. This layout is known as "Vertical view" in Thunderbird email app. image

    I would like to request an option to change the layout of the panels. In particular, the RSS feed panel remains at left, and the right side will be split into top and bottom panels, corresponding to torrents panel and RSS article panel respectively. This layout is known as "Classic view" in Thunderbird email app. image

    Of course, some users with short RSS feed list might prefer Wide view as well. image

    The reason for my suggestion is simple: In vertical view, all 3 panels need to compete with the limited width of the screen to display the information. However, as seen in the photo, most of the time, the RSS feed panel and torrents panel do not require large viewing area to display information. RSS feed panel would do better in vertical space, but torrents panel just need a slim horizontal space. The remaining space would be better utilised by RSS article panel to display info which may contain lengthy text and pictures.

    So, the inclusion of option to change layout of panels in RSS tab, would allow a more efficient use of screen area.

    Use case

    No response

    Extra info/examples/attachments

    No response

    Feature request 
    opened by wind77 0
  • GUI - Move Advanced Setting

    GUI - Move Advanced Setting "Network interface" into Connections where it belongs (VPN related)

    Suggestion

    In the GUI, please move the current Settings item "Network Interface" from its current spot in "Advanced" into "Connections" where it would be much more visible to the populace

    Use case

    For privacy reasons, many (most?) people wish to have qBittorrent upload/download only while there VPN is operating.

    This has been possible forever, but it is not entirely obvious how to do it and involves going into the "scary" advanced settings. A simple change would be to remap the allowed interfaces setting name Advanced->Network Interface into the Connections settings page.

    IMO, manually choosing an interface to run over is a much less advanced setting than Proxy Server or Listening Port and does not deserve to be hidden away.

    Even better, after doing so, you can advertise running only during VPN connections as a qBittorent Feature!

    Extra info/examples/attachments

    1-Move-AdvancedSettings-NetworkInterface 2-into-Connections

    Feature request 
    opened by KelleyCook 0
  • Show progress dialog on second instance run

    Show progress dialog on second instance run

    While app instance is loading and main window isn't available show progress dialog instead. Fixes a bug mentioned in https://github.com/qbittorrent/qBittorrent/pull/17498#issuecomment-1207464709.

    GUI Hotfix 
    opened by glassez 1
  • Revise quote behavior

    Revise quote behavior

    Now the behavior of double quotes aligns more as with issuing commands from shell/command line. Related: https://github.com/qbittorrent/qBittorrent/pull/17453#issuecomment-1203372027

    Tested on linux.

    Hotfix Core 
    opened by Chocobo1 0
  • Can't escape plus symbol in API, double decodes to white space

    Can't escape plus symbol in API, double decodes to white space

    qBittorrent & operating system versions

    qBittorrent: 4.4.3.1 x64 Operating system: Windows 10 Pro 21H2

    What is the problem?

    Using the renameFile endpoint, '+' characters cannot be escaped. When using %2B in the parameter, the result "double decodes" and returns as white space and a File Not Found error.

    Steps to reproduce

    No response

    Additional context

    No response

    Log(s) & preferences file(s)

    No response

    WebAPI 
    opened by dullbarber 0
  • Letters for filenames are overlapped

    Letters for filenames are overlapped

    qBittorrent & operating system versions

    qBittorrent: 4.4.3.1 x64 Operating system: Windows 11 Pro 21H2/22000.832 x64

    What is the problem?

    Text on filenames is like overwritten, letters are crushed one against the next one.

    Example text: Columbo.S01E01.1971.Ransom.for.a.Dead.Man.720p.BluRay.mkv

    Steps to reproduce

    No response

    Additional context

    No response

    Log(s) & preferences file(s)

    No response

    Qt bugs GUI 
    opened by superbonaci 0
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 74 Aug 6, 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 639 Jul 27, 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 4k Aug 5, 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 837 Aug 5, 2022
Tool for inspecting, creating and editing BitTorrent metafiles.

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

null 104 Aug 4, 2022
Transmission is a fast, easy, and free BitTorrent client.

Official Transmission BitTorrent client repository

Transmission 7k Jul 30, 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 74 Aug 6, 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 639 Jul 27, 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 4k Aug 5, 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 837 Aug 5, 2022
Tool for inspecting, creating and editing BitTorrent metafiles.

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

null 104 Aug 4, 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 319 Aug 7, 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 8 Jun 1, 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 164 Aug 7, 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

ᴠ : ꜱᴛᴜᴅɪᴏ 13 Apr 13, 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 101 Jul 3, 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 Jul 10, 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
rpclib is a modern C++ msgpack-RPC server and client library

rpclib rpclib is a RPC library for C++, providing both a client and server implementation. It is built using modern C++14, and as such, requires a rec

null 1.3k Aug 4, 2022
The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.

Welcome! The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design

Microsoft 7k Aug 6, 2022
A C++ header-only HTTP/HTTPS server and client library

cpp-httplib A C++11 single-file header-only cross platform HTTP/HTTPS library. It's extremely easy to setup. Just include the httplib.h file in your c

null 7.5k Aug 5, 2022
Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution

CppServer Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and

Ivan Shynkarenka 867 Aug 8, 2022
A portable MQTT C client for embedded systems and PCs alike.

MQTT-C is an MQTT v3.1.1 client written in C. MQTT is a lightweight publisher-subscriber-based messaging protocol that is commonly used in IoT and net

Liam Bindle 518 Aug 4, 2022
C++ client for making HTTP/REST requests

REST client for C++ About This is a simple REST client for C++. It wraps libcurl for HTTP requests. Usage restclient-cpp provides two ways of interact

Daniel Schauenberg 1.4k Aug 5, 2022
Wangle is a framework providing a set of common client/server abstractions for building services in a consistent, modular, and composable way.

Wangle C++ networking library Wangle is a library that makes it easy to build protocols, application clients, and application servers. It's like Netty

Facebook 2.9k Jul 26, 2022
C++ websocket client/server library

WebSocket++ (0.8.2) WebSocket++ is a header only C++ library that implements RFC6455 The WebSocket Protocol. It allows integrating WebSocket client an

Peter Thorson 5.7k Jul 31, 2022
The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.

Welcome! The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design

Microsoft 7k Aug 8, 2022