Sign In

Welcome! Log into your account

Forgot your password?

Create an account

Sign Up

Welcome! Register for an account

A password will be e-mailed to you.

Password Recovery

Recover your password

A password will be e-mailed to you.

Available for:

Tribler 7.12.0 – Stable Free p2p Client

Tribler 7.12.0 – Stable Free p2p Client
Download FreeDownload

Tribler is an open source peer-to-peer client with various features for watching videos online. The user interface is very basic and focused on ease of use, instead of including features.

This program is based on the BitTorrent protocol and uses an overlay network for content searching. Due to this overlay network Tribler does not require an external website or indexing service to discover content.

Tribler was created by university researchers trying to improve peer-to-peer technology. The application enhances BitTorrent by removing the need for central elements such as the websites for finding content. The aim is to increase performance, reliability, and scalability.

Tribler Features:

  • Anonymity. Anonymous downloads with strong encryption, onion routing and hidden seeding. Uses a custom Tor-like network.
  • User interface. Check out our general user interface and other screenshots. We try to make sharing easy and accessible.
  • No websites. The application ncludes search. You can find a lot of videos without any web site. We try to make Tribler impossible to censor and hard to kill.
  • Open Source. Tribler is Open Source and non-profit.
  • Streaming. This app can play your videos. You can watch even before the download is finished.

The main features include: video-only searching, experimental video streaming, and an integrated video player. The SwarmPlayer which is a Python based BitTorrent Internet TV viewer. It allows you to watch BitTorrent-hosted peer-to-peer digital media distribution of video on demand and plays live streaming media.

Tribler adds keyword search ability to the BitTorrent file download protocol using a gossip protocol. That is somewhat similar to the eXeem network which was shut down in 2005.

After a dozen downloads this software can roughly estimate the download taste of the user and recommends content. This feature is based on collaborative filtering, also featured on websites such as and

Another feature is a limited form of social networking and donation of upload capacity. Tribler includes the ability to mark specific users as online friends. Such friends allows to increase the download speed of files by using their upload capacity. Due to these features this software differs from other popular BitTorrent clients such as Vuze and μTorrent.

Changes in Tribler 7.12.0 RC1:


  • The main feature of this release is the auto-generation of torrent tags from torrent titles that work in the background.
  • Also, the release contains numerous bug fixes.
  • The Tribler codebase was significantly refactored to make further development faster.


  • Tags auto-generation
  • Local search for tags
  • Remote search by tags
  • Add docker support

Bugfixes since the 7.11 release:

  • Fix #6968 Tribler freezes and requires “Force shutdown” on exit
  • Libtorrent session state gets lost when upgrading to a new Tribler version, fixed in #6978 by @kozlovsky
  • Fix Tribler crash when pressing Ctrl+O (Cmd+O on OSX) to add a torrent from a file, fixed in #6980 by @kozlovsky
  • Fixes #6929 by @drew2a in #6937: Can’t open the torrent file from the browser by clicking on it
  • Fix #6961 Error when removing entries from the FeedbackDialog by @kozlovsky in #6962
  • Fix the Tribler crash after the closing of FeedbackDialog by @kozlovsky in #6960
  • Fix the upgrader logic if the tags db file was not created yet by @kozlovsky in #6956
  • If a user decides to send a Tribler crash report, Tribler confirms that the report has been sent, but actually, it does not send anything, fixed in #6974 by @kozlovsky
  • Fix processing URL-escaped characters by @drew2a in #6738
  • Make sorting by name case insensitive by @kozlovsky in #6726
  • Remove allow_exit_node_checkbox by @drew2a in #6736
  • Customise categories for different pages by @drew2a in #6554
  • Add exist_ok=True to mkdir by @drew2a in #6560
  • Replace core_traceback by last_core_output by @drew2a in #6567
  • Fixes for Tribler logger by @kozlovsky in #6585
  • Fix api_key encoding/decoding by @kozlovsky in #6608, #6611, #6613, #6647
  • Fix key error on metainfo fetch by @xoriole in #6610
  • Fixes for GUI startup sequence by @ichorid in #6596
  • Fixes #6665 – Graph can now go higher than TB. New PB Definition added. by @Joybuke in #6666
  • Feature/report endpoint errors by @ichorid in #6649
  • Set the correct range for Y-axis of the token balance graph by @kozlovsky in #6668
  • Update Russian translation by @adem4ik in #6710
  • Fix missing XML declaration by @overflw in #6703
  • Swapped ‘cancel’ and ‘download’ buttons by @devos50 in #6727
  • Decrease show threshold for tags by @drew2a in #6742
  • Fixes #6747: OSError “The filename, directory name, or volume label syntax is incorrect” in dragEnterEvent by @kozlovsky in #6748
  • Fixes #6745: Missed dependency: PopularityComponent requires TorrentCheckerComponent to be active by @kozlovsky in #6746
  • Fixes AttributeError on removing downloads by @xoriole in #6909
  • Handle race condition when deleting lock file by @kozlovsky in #6776
  • Fix Ubuntu 21.04+ startup issue by @xoriole in #6734
  • Fixes #6777: suppress PermissionError in on_save_resume_data_alert by @kozlovsky in #6779
  • Add null check to confirm_clicked_callback by @drew2a in #6798
  • Handle OSError in TriblerWindow.clicked_force_shutdown() by @kozlovsky in #6816
  • Handle ValueError “Data is not a bencoded string” in TorrentInfoEndpoint.get_torrent_info() by @kozlovsky in #6814
  • Wrap Download.on_metadata_received_alert() with @check_handle decorator by @kozlovsky in #6818
  • Fix a crash in the Events tab of the Debug pane by @kozlovsky in #6809
  • Escape non-ASCII symbols when writing the tag value to the log by @kozlovsky in #6812
  • Handle possible duplicates in random tags generated by tag_torrent by @kozlovsky in #6820
  • Add missed arguments to RunTriblerArgsParser by @kozlovsky in #6804
  • Replace get by select.limit in BandwidthDatabase.get_latest_transaction by @drew2a in #6821
  • Add NPE check to handle_uri by @drew2a in #6829
  • Add is_dir() check to add_directory_dialog by @drew2a in #6835
  • Add UnicodeEncodeError to the except block by @drew2a in #6836
  • Fix download progress bar paint issue by @xoriole in #6910
  • Fix an error message that reports milliseconds as seconds by @kozlovsky in #6914
  • Handle non-utf8 Tribler Core output in Tribler GUI by @kozlovsky in #6917

Code improvements

  • Use ipv8 as an external dependency by @drew2a in #6757
  • Add maybe_component by @drew2a in #6557
  • Refactor/remove obsolete upgrades by @ichorid in #6558
  • Run Upgrader in the GUI thread by @ichorid in #6559
  • Remove unused methods by @devos50 in #6605
  • Make notifier more generic by @drew2a in #6702
  • Move discovery_booster to ipv8 component by @drew2a in #6719
  • Move EVA protocol to ipv8 component by @drew2a in #6723
  • Add session context manager by @drew2a in #6724
  • Remove common package by @drew2a in #6755
  • Statically typed notifier by @kozlovsky in #6728
  • Enable origin tracking for coroutine objects by @kozlovsky in #6762
  • Refactoring the folders structure by @drew2a in #6803
  • Remove popularity community experiments by @drew2a in #6805
  • Rename QtSingleApplication.activation_window() to tribler_window by @drew2a in #6830
  • Remove pre-commit by @drew2a in #6837
  • Refactor rest utils by @drew2a in #6838
  • Fix build for release 7.12 by @kozlovsky in #6896
  • Update Debian build by @xoriole in #6901
  • Updated IPv8 pointer by @qstokkink in #6669
  • Update issue templates by @drew2a in #6580
  • [Snyk] Security upgrade pillow from 8.4.0 to 9.0.0 by @snyk-bot in #6705
  • [Snyk] Security upgrade pillow from 9.0.0 to 9.0.1 by @snyk-bot in #6765

Documentation fixes

  • Update development on Linux by @drew2a in #6536
  • Fixes #6624: specify the exact version of mistune library in doc/requirements.txt by @kozlovsky in #6625
  • Specify the exact version of MarkupSafe in doc requirements by @kozlovsky in #6781
  • Add Faker and sentry as common dependency by @xoriole in #6656
  • Added v7.11 download badge to README by @devos50 in #6768
  • Fix broken link by @drew2a in #6796
  • Add python 3.9 and python 3.9 badges by @drew2a in #6797

Test improvements

  • Add a possibility to manually trigger GUI and Core exceptions in Tribler for debugging purposes by @kozlovsky in #6959
  • Make –core and –gui-test-mode separate flags with all combinations possible by @kozlovsky in #6602
  • Using SelectorEventLoop during tests by @devos50 in #6527
  • Apply MockIPv8 key injection by @drew2a in #6544
  • Added small delay after mouse click in GUI test by @devos50 in #6547
  • Make CoreExceptionHandler scope-dependent by @drew2a in #6543
  • Change mock type for encode_message by @drew2a in #6540
  • Use in-memory SQLite DB for Tags in GUI test mode by @ichorid in #6574
  • Fix and speedup test_drop_silent_peers by @ichorid in #6578
  • Simplify GUI-Core startup sequence by @ichorid in #6573
  • Improve tests for by @drew2a in #6588
  • Replace random char generation by fake words by @drew2a in #6592
  • Make sure generated tags have a valid length by @devos50 in #6615
  • Remove spam in pytest output by @kozlovsky in #6620
  • Fix gui tests stability by @kozlovsky in #6619
  • Fix for #6603 by @drew2a in #6629
  • Fixed channel subscribe GUI test by @devos50 in #6643
  • Remove SOCKS component from GUI test mode requirements by @ichorid in #6651
  • Fix #6653 Sentry test failures by @drew2a in #6694
  • Add faker and sentry_sdk as common modules to mock during doc build by @xoriole in #6675
  • Fix unstable test_channels_peers_mapping_drop_excess_peers by @kozlovsky in #6731
  • Fix run_bandwidth_crawler script by @kozlovsky in #6730
  • Fix tunnel experiments by @kozlovsky in #6732
  • Fix unstable tests by @kozlovsky in #6763
  • Add “no_parallel” pytest’s mark by @drew2a in #6799
  • Add no_parallel to pytest.ini by @drew2a in #6800
  • For test run with ‘–no-parallel’ argument, skip all “normal” tests by @drew2a in #6824
  • Fix Tribler startup/shutdown and GUI tests stability by @kozlovsky in #6828
  • Refactor add_fake_torrents_channels fixture by @drew2a in #6827

Homepage –

Supported Operating Systems:

  • Windows 7, 8, 8.1, 10, 11.
  • macOS Yosemite or newer.
  • Linux Ubuntu.

Tribler Screenshot