Convert Figma logo to code with AI

c0re100 logoqBittorrent-Enhanced-Edition

[Unofficial] qBittorrent Enhanced, based on qBittorrent

18,745
1,242
18,745
133

Top Related Projects

qBittorrent BitTorrent client

Official Transmission BitTorrent client repository

1,538

Deluge BitTorrent client - Git mirror, PRs only

an efficient feature complete C++ bittorrent implementation

⚡️ Streaming torrent client for the web

5,528

Full-featured BitTorrent client package and utilities

Quick Overview

qBittorrent-Enhanced-Edition is a modified version of the popular open-source BitTorrent client qBittorrent. It includes additional features and enhancements not found in the original software, aimed at providing users with more control and functionality for their torrenting needs.

Pros

  • Enhanced functionality with additional features not present in the original qBittorrent
  • Regular updates and active development
  • Improved performance and stability in some areas
  • Maintains compatibility with most qBittorrent plugins and themes

Cons

  • Not officially supported by the original qBittorrent development team
  • May have potential security risks due to modifications
  • Some users may find the additional features overwhelming or unnecessary
  • Possible compatibility issues with future official qBittorrent releases

Getting Started

To get started with qBittorrent-Enhanced-Edition:

  1. Visit the project's GitHub repository: https://github.com/c0re100/qBittorrent-Enhanced-Edition
  2. Download the latest release for your operating system from the "Releases" section
  3. Install the software following the instructions for your specific OS
  4. Launch qBittorrent-Enhanced-Edition and configure it according to your preferences
  5. Begin using the enhanced features for your torrenting activities

Note: Always ensure you're using torrents legally and in compliance with your local laws and regulations.

Competitor Comparisons

qBittorrent BitTorrent client

Pros of qBittorrent

  • Official, stable release with regular updates and bug fixes
  • Wider community support and more extensive documentation
  • Cross-platform compatibility (Windows, macOS, Linux)

Cons of qBittorrent

  • Lacks some advanced features present in the Enhanced Edition
  • May have slower development of new features
  • Less customization options for power users

Code Comparison

qBittorrent:

void TorrentHandle::setAutoManaged(bool enable)
{
    if (m_nativeStatus.auto_managed == enable) return;

    m_nativeHandle.auto_managed(enable);
    m_nativeStatus.auto_managed = enable;
}

qBittorrent-Enhanced-Edition:

void TorrentHandle::setAutoManaged(bool enable)
{
    if (m_nativeStatus.auto_managed == enable) return;

    m_nativeHandle.auto_managed(enable);
    m_nativeStatus.auto_managed = enable;
    m_session->handleTorrentAutoManaged(this);
}

The Enhanced Edition includes an additional function call to handle auto-managed torrents, potentially providing more advanced management capabilities.

Both projects are based on the same core codebase, but qBittorrent-Enhanced-Edition offers additional features and customizations for advanced users. While qBittorrent provides a stable and widely supported experience, the Enhanced Edition caters to users seeking more control and experimental features. The choice between the two depends on individual needs and preferences.

Official Transmission BitTorrent client repository

Pros of Transmission

  • Lightweight and efficient, using fewer system resources
  • Cross-platform support with native clients for various operating systems
  • Simple and user-friendly interface, ideal for beginners

Cons of Transmission

  • Fewer advanced features compared to qBittorrent-Enhanced-Edition
  • Limited customization options for power users
  • Less frequent updates and slower development cycle

Code Comparison

Transmission (C):

static void
tr_peerMgrAddIncoming(tr_peerMgr* manager, tr_address const* addr, tr_port port, struct peer_atom** atom)
{
    assert(tr_isAddress(addr));
    struct tr_peer_info* inf = getExistingPeer(manager, addr, port);
    if (inf == NULL)
        inf = createPeerInfo(manager, addr, port, false, atom);
}

qBittorrent-Enhanced-Edition (C++):

void Session::addTorrent(const AddTorrentParams &params)
{
    if (params.savePath.isEmpty())
        throw RuntimeError(tr("Incorrect torrent name"));

    const bool resumeData = !params.resumed.isEmpty();
    TorrentInfo torrentInfo = params.torrentInfo;
    if (!torrentInfo.isValid() && !resumeData)
        throw RuntimeError(tr("Invalid torrent"));
}

Both projects use different programming languages and have distinct coding styles. Transmission focuses on a more C-style approach, while qBittorrent-Enhanced-Edition uses modern C++ features.

1,538

Deluge BitTorrent client - Git mirror, PRs only

Pros of Deluge

  • Cross-platform support (Windows, macOS, Linux) with a consistent interface
  • Extensible plugin system allowing for customization and additional features
  • Lightweight and efficient, suitable for low-resource systems

Cons of Deluge

  • Less frequent updates compared to qBittorrent-Enhanced-Edition
  • User interface may feel less modern and intuitive to some users
  • Fewer built-in features without plugins

Code Comparison

While both projects are written in different languages (Deluge in Python, qBittorrent-Enhanced-Edition in C++), here's a brief comparison of how they handle adding a torrent:

Deluge:

def add_torrent_file(self, filename, filedump, options):
    torrent_id = self.torrentmanager.add(filedump=filedump, options=options, filename=filename)
    return torrent_id

qBittorrent-Enhanced-Edition:

bool AddNewTorrent::addTorrent(const QString &source)
{
    TorrentInfo torrentInfo = TorrentInfo::loadFromFile(source);
    if (!torrentInfo.isValid()) return false;
    return addTorrent(torrentInfo);
}

Both implementations focus on adding a torrent file, but qBittorrent-Enhanced-Edition's approach is more type-safe and uses C++ features for better performance.

an efficient feature complete C++ bittorrent implementation

Pros of libtorrent

  • Highly efficient and optimized BitTorrent protocol implementation
  • Extensive documentation and well-maintained codebase
  • Supports multiple operating systems and platforms

Cons of libtorrent

  • Requires integration into a client application for end-user functionality
  • Steeper learning curve for developers new to BitTorrent protocols
  • Limited built-in user interface components

Code Comparison

libtorrent (C++):

#include <libtorrent/session.hpp>
#include <libtorrent/add_torrent_params.hpp>
#include <libtorrent/torrent_handle.hpp>

lt::session ses;
lt::add_torrent_params p;
p.save_path = "./";
p.ti = std::make_shared<lt::torrent_info>("test.torrent");
lt::torrent_handle h = ses.add_torrent(p);

qBittorrent-Enhanced-Edition (C++):

#include "base/bittorrent/session.h"
#include "base/bittorrent/torrenthandle.h"
#include "base/bittorrent/magneturi.h"

BitTorrent::Session *session = new BitTorrent::Session();
BitTorrent::TorrentHandle *handle = session->addTorrent("test.torrent", true);

The code snippets demonstrate the basic setup and torrent addition process for both projects. libtorrent provides a lower-level API, while qBittorrent-Enhanced-Edition offers a more abstracted interface built on top of libtorrent.

⚡️ Streaming torrent client for the web

Pros of WebTorrent

  • Browser-based: Can run directly in web browsers without additional software
  • JavaScript implementation: Easy integration with web applications
  • Streaming support: Allows media playback before full download

Cons of WebTorrent

  • Limited protocol support: Primarily focuses on WebRTC and web-based transfers
  • Performance: May not match native applications for large-scale downloads
  • Feature set: Less comprehensive than full-fledged torrent clients

Code Comparison

WebTorrent (JavaScript):

const WebTorrent = require('webtorrent')
const client = new WebTorrent()

client.add(torrentId, function (torrent) {
  torrent.files.forEach(file => {
    file.createReadStream().pipe(process.stdout)
  })
})

qBittorrent-Enhanced-Edition (C++):

#include <libtorrent/session.hpp>
#include <libtorrent/add_torrent_params.hpp>

lt::session ses;
lt::add_torrent_params p;
p.save_path = "./";
p.ti = std::make_shared<lt::torrent_info>("example.torrent");
ses.async_add_torrent(p);

The code snippets demonstrate the basic usage of each library. WebTorrent uses a more JavaScript-friendly API, while qBittorrent-Enhanced-Edition utilizes C++ with the libtorrent library, offering lower-level control and potentially better performance for desktop applications.

5,528

Full-featured BitTorrent client package and utilities

Pros of torrent

  • Written in Go, offering better performance and concurrency
  • Lightweight library design, allowing for flexible integration
  • Active development with frequent updates and improvements

Cons of torrent

  • Lacks a built-in GUI, requiring additional work for user interface
  • May have a steeper learning curve for developers new to Go
  • Less feature-rich compared to qBittorrent-Enhanced-Edition

Code Comparison

qBittorrent-Enhanced-Edition (C++):

void TorrentHandle::addTrackers(const QVector<TrackerEntry> &trackers)
{
    const lt::torrent_handle handle = m_nativeHandle;
    for (const TrackerEntry &tracker : trackers)
        handle.add_tracker(tracker.url());
}

torrent (Go):

func (cl *Client) AddTrackers(ih metainfo.Hash, trackers []string) error {
    t, ok := cl.torrent(ih)
    if !ok {
        return errors.New("torrent not found")
    }
    for _, tracker := range trackers {
        t.AddTrackers([][]string{{tracker}})
    }
    return nil
}

Both repositories provide BitTorrent functionality, but with different approaches. qBittorrent-Enhanced-Edition is a full-featured client with a GUI, while torrent is a library focused on core BitTorrent operations. The code comparison shows how each handles adding trackers, with qBittorrent using C++ and Qt, and torrent using Go's more straightforward syntax.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

qBittorrent Enhanced Edition

Important Note for user and tracker operators


Features:

  1. Auto Ban Xunlei, QQ, Baidu, Xfplay, DLBT and Offline downloader

  2. Auto Ban Unknown Peer from China Option (Default: OFF)

  3. Auto Update Public Trackers List (Default: OFF)

  4. Auto Ban BitTorrent Media Player Peer Option (Default: OFF)

  5. Peer whitelist/blacklist


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.

Repository

If you are using a desktop Linux distribution without any special demands, you can use AppImage from release page.

Latest AppImage download: qBittorrent-Enhanced-Edition-x86_64.AppImage

Arch Linux (Maintainer: c0re100)

AUR

nox AUR

Debian (Maintainer: Kolcha)

Qt5 variants (Debian 11 and above):

GUI

nox

Qt6 variants (Debian Testing and above):

GUI

nox

The one repository contains all 4 variants listed above, links to specific packages are provided for convenience.

openSUSE (Maintainer: openSUSE Chinese Community)

openSUSE repo

Ubuntu (Maintainer: poplite)

PPA

macOS (Homebrew) (Maintainer: AlexaraWu)

brew install c0re100-qbittorrent

Windows

Windows 10 & 11 (Maintainer: c0re100)

winget install c0re100.qBittorrent-Enhanced-Edition

Chocolatey (Maintainer: iYato)

choco install qbittorrent-enhanced

Scoop (Maintainer: Chawye Hsu)

scoop bucket add dorado https://github.com/chawyehsu/dorado
scoop install qbittorrent-enhanced

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

For enhanced features bug(such as Auto Ban, API, Auto Update Tracker lists...), please report to: https://github.com/c0re100/qBittorrent-Enhanced-Edition/issues