Free and Open Source, full-featured torrent client for Android

Overview

Hosted Weblate Matrix Room Chat - Telegram Coverity Scan Build Status

LibreTorrent

LibreTorrent

Get it on F-Droid Get it on AFH Get it on APKMirror Get it on Aptoide Get it on Google Play

Mirror: https://proninyaroslav.ru/mirror/libretorrent/

Issues: https://gitlab.com/proninyaroslav/libretorrent/issues

Copylefted libre full-featured torrent client for Android.

Use, see, change and share; with all.

📋 Features

  • Select which files to download
  • Move files while downloading
  • Auto-move downloaded files to another folder or external drive
  • Stream files, with sequential downloads
  • Android TV
  • Material design, dark and black theme, and tablet UI
  • Customisable network, battery, and UI settings, etc.
  • 35+ translations
  • Scheduling
  • Auto-downloading, with Atom/RSS manager
  • Create torrents, with many and big files
  • HTTP\S and magnet links
  • DHT, PeX, encryption, LSD, UPnP, NAT*PMP, µTP
  • IP filtering (eMule dat and PeerGuardian)
  • Supports proxy for trackers and peers
  • Based on libtorrent4j
  • And more

🌍 Translations

Help translate the app at Hosted Weblate

languages

Donations

The development is 100% funded by heroic people like you. If you have problems with payment or you want to donate in another way, contact me at [email protected]. Thank you!

  • PayPal: paypal
  • Yandex Money (YooMoney): 410011738561939
  • WebMoney:
    • WMZ: Z335461926163
    • WMR: R151579576467
  • Amazon.com eGift Cards: just choose your amount and type e-mail [email protected] in the gift card details https://smile.amazon.com/gp/product/B004LLIKVU/
  • Liberapay: liberapay
  • Bitcoin: 1Af9DgxtWvVp6bFiYQw2MeWtRzTXshRYpB
  • Nano: nano_1b13t35x5dwu39xcs3xj4ozfsniozfnxdqwjijy6efnkda6sc3hqie914fja

🎉 Contributors

Please see CONTRIBUTING.md

Developers

Screenshots

phone phone dark rss create torrent session log tablet

🔒 Privacy Policy

Please see our Privacy Policy.

📄 License

Large GPLv3 logo with “Free as in Freedom”

Copyright (C) 2016 Yaroslav Pronin 
   
    
This file is part of LibreTorrent.
LibreTorrent is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program.  If not, see 
    .

   
Comments
  • Feature/disable keep alive

    Feature/disable keep alive

    Added an option that allows users to disable the foreground notification / task that keeps the application alive in the background while no torrents are downloading

    • Fixed how torrentsFinished() handles verifying torrents are downloading
    • Added an option in behavior settings that lets the user disable/enable the keep alive settings
      • When disabled, the notification/task will be removed when all torrents complete their downloads
      • When enabled, previous behavior is retained
    • This change does not affect the Shutdown when downloads complete settings

    Note, this does not shut the application, it just disables the notification/task that keeps the application running in the background when no torrents are downloading

    opened by CometDog 14
  • Added debug icon, app name, and version suffix

    Added debug icon, app name, and version suffix

    To avoid overwriting stable versions of the application when testing on production devices, I modified the debug build type to install separately from the release version as well as display a different icon (inverted color) and "DEBUG" at the end of its name to avoid confusion.

    No other changes were made but the app name and icon in the AndroidManifest.xml file are based on items in the generated.xml file which get created when gradle builds, so testing release to the store / F-Droid should be done when possible

    opened by CometDog 5
  • Feature/custom battery control

    Feature/custom battery control

    • Added settings options to set a custom battery percentage to stop downloads at
      • There is a switch preference that is disabled unless you enable the battery control key
        • Enabling this switch pops a dialog that explains that using this feature will consume additional battery
      • There is a seekbar preference that is disabled unless you enable the custom battery control key
        • The range of this preference is 10 - 90 to avoid errors in the math for pausing
        • The textview displaying the value does not update in real time, only after setting the value
    • Added logic to the TorrentTaskService to handle not pausing downloads at the regular 15% interval if the custom battery control key is enabled
    • Added logic to TorrentDownload to handle pausing downloads when the custom battery control threshold is pased
      • If a user manually resumes a download, it will not automatically pause again until after the threshold is passed again (charged then discharged). This is identical to current behavior
    opened by CometDog 5
  • Added support for adding an infohash directly to the Add Link option

    Added support for adding an infohash directly to the Add Link option

    • A user can now type the infohash of a torrent directly into "Add Link" and it will add the torrent
      • Any string not containing the MAGNET_PREFIX or HTTP(S)_PREFIX will automatically attempt to convert to an infohash using the new INFOHASH_PREFIX
    opened by CometDog 4
  • Modified the isListening check in the core TorrentEngine to fix Online notification

    Modified the isListening check in the core TorrentEngine to fix Online notification

    The swig().is_listening() does not seem to be checking for what we want it to be checking for when utilizing this notification. The client still has an active session and is listening even though connectivity is offline. Whether that is a defect in their library or abstract behavior, it doesn't seem necessary to use that library for this.

    I just did we do in WifiReceiver and check the connectivity of wifi OR cellular to determine if the client is listening. This may break the concept of "isListening" in the app so it may be valuable to rename or create a new method if you feel. I'm not sure what is considered "listening".

    Additionally, should we be checking the user's preference for wifi-only to determine what "listening" is in this method? Right now i just check if wifi or cellular is connected, because technically you CAN start a download on cellular manually if you have wifi only on. Please weigh in on this.

    Let me know if this looks right to you or if the overhead of constantly creating that connectvitymanager may be negative.

    opened by CometDog 3
  • Czech translation

    Czech translation

    First ver of transl. Gonna check how does it look in-app. Maybe some updates will follow. Otherwise fine app and looking forward for next development.

    opened by HarryMichal 3
  • Add Kotlin support and convert AddLinkDialog into Kotlin (+refactoring)

    Add Kotlin support and convert AddLinkDialog into Kotlin (+refactoring)

    I make a first PR for kotlin support and have an example for AddLinkDialog. If it's ok to you, I will take effort for converting and refactoring the others.

    Feel free to reject if you want to stay with Java.


    In AddLinkDialog, the clipboardDialog and clipboardViewModel are not actually used, but I cannot resolve the clip data this time (always get null for primaryClip). I keep them as they are by now as I'm not familiar to ClipboardManager


    Within this PR, I haven't enabled Kotlin coroutine yet.

    opened by tuanchauict 2
  • Bugfix/shutdown after download closing after one download

    Bugfix/shutdown after download closing after one download

    • TorrentTaskService will now verify that all torrent downloads are out of the DOWNLOADING state before attempting to shut down the app
    • Added the FLAG_ACTIVITY_CLEAR_TOP flag to the intent to launch MainActivity from AddTorrentActivity
      • The behavior without this causes multiple layers of MainActivity to be created, meaning the app won't fully shut down at shut down, it'll just close the top layer. This change fixes that behavior
    opened by CometDog 2
  • Fix  #140

    Fix #140

    Imagine pause is false and the battery is not charging. Then

    pause &= !Utils.isBatteryCharging(context);
    

    expands to

    pause = pause && !Utils.isBatteryCharging(context);
    
    pause = false && true
    
    pause = false
    

    That is not the expected behaviour.

    Now my change will expand to:

    pause = false || true
    
    pause = true
    

    That is the expected behaviour.

    opened by noughtmare 2
  • Created a black theme

    Created a black theme

    Created a black theme as an option in the menu. This theme is different than the dark theme in that it uses pure black (#000000). This lets OLED-based screens turn off their pixels in the fully black areas.

    • Added the appropriate checks to apply the black themes in all relevant activities
      • Split the Utils.isDarkTheme logic out into a Utils.getTheme method so Utils.isBlackTheme could leverage it as well as future themes
    • Defined @color/black as #000000
    • Created the appropriate option in the options menu
    • Created the appropriate style, leveraging the dark theme where appropriate.
      • I kept the background of popups and dialogs from the dark theme so they can be seen against the black backgrounds they sit on. All text and accent colors are unchanged from the dark theme
    • Added the appropriate drawables for the black theme

    NOTE: Though I changed it and it seems fine, I do not know what <item name="backgroundBlank">...</item> actually is. If I should be changing that color to something different than the normal background style, let me know.

    opened by CometDog 2
  • Add monochrome icon.

    Add monochrome icon.

    Android 13 supports themed app icons. This requires that the application provides an adaptive icon, and a monochrome app icon.

    This change adds the monochrome icon and modifies ic_launcher.xml to use it.

    The monochrome icon is taken from ic_launcher_foreground.xml without the gradient. Before/After

    opened by Irishsmurf 1
  • replacing some of farsi words with more clear translations

    replacing some of farsi words with more clear translations

    In recent years because of the advancement of technology many English words are common in day to day Farsi conversations. One of these words is 'link'. In Farsi the word 'لینک' which is equal to 'link' is more correct word in compare to its translation 'پیوند'. I am a native Farsi speaker, if you need more information about this fill free to contact me.

    opened by imanshaterian 0
Releases(3.5-beta01)
Owner
Yaroslav Pronin
Programmer of free software.
Yaroslav Pronin
MEGA Android Client - A fully-featured client to access your Cloud Storage provided by MEGA

A fully-featured client to access your Cloud Storage provided by MEGA. This document will guide you to build the application on a Linux machine with Android Studio.

Mega Limited 1.1k Jan 3, 2023
Tachiyomi 20.4k Jan 9, 2023
NimTome is a Free and open-source spell tracker application for Dungeons and Dragons

Nimtome: An open source application to manage all your spells in D&D About This project came to life as a homework assignment, but it became a lot bit

null 2 Jan 11, 2022
Free and open source manga reader for Android.

Build Stable Weekly Preview Contribute Support Server Tachiyomi Tachiyomi is a free and open source manga reader for Android 5.0 and above. Features F

Tachiyomi 20.4k Jan 9, 2023
AdAway is a free and open source ad blocker for Android.

AdAway AdAway is an open source ad blocker for Android using the hosts file and local vpn. For more information visit https://adaway.org Installing Th

null 4.9k Jan 7, 2023
Aegis Authenticator is a free, secure and open source 2FA app for Android

Aegis Authenticator Aegis Authenticator is a free, secure and open source 2FA app for Android. It aims to provide a secure authenticator for your onli

Beem Development 4.6k Jan 3, 2023
FlorisBoard is a free and open-source keyboard for Android

FlorisBoard FlorisBoard is a free and open-source keyboard for Android 6.0+ devices. It aims at being modern, user-friendly and customizable while ful

FlorisBoard 3.7k Jan 5, 2023
A free and open-source offline authenticator app for Wear OS.

Wristkey Need 2FA codes quickly, right on your Wear watch without needing a phone? Wristkey is an open-source 2FA client for Wear OS watches that does

Owais Shaikh 80 Jan 4, 2023
Free and Open Source Launcher.

Omega Launcher Free and Open Source Launcher Installation & Download Our builds are available on: Github: Releases or Actions (usually). F-Droid: Eith

Saul Henriquez 977 Jan 2, 2023
A Free, Fully Fledged, Open-Source Music Player for Android

Turtle Player Free, Fully Fledged & Open-Source. The Music Player for Android. Turtle Player is designed to be a fun and unique app for playing your m

Edd Turtle 178 Nov 18, 2022
Authenticator Pro is a free open-source two factor authentication app for Android

Authenticator Pro Authenticator Pro is a free open-source two factor authentication app for Android. It features encrypted backups, icons, categories

jmh 1k Jan 4, 2023
The Free & Open Source Android Application for reading (Light) Novels

Shosetsu The Free & Open Source Android Application for reading (Light) Novels! We appreciate any help in improving the app, so let us know by opening

ShosetsuOrg 541 Jan 6, 2023
PngNote is a free, open-source, handwriting note-taking app based on BOOX SDK.

PngNote is a free, open-source, handwriting note-taking app based on BOOX SDK. Use BOOX SDK: Leverage raw-rendering feature, similar stylus lag to the

null 34 Nov 11, 2022
A Free, open source Contacts Butler App built with kotlin

Contacts Butler Do you have a bunch of contacts that are missing a lot of info such as names, emails, phone numbers, etc? Do you really know the conta

Android Contacts Butlers 1 Nov 30, 2021
Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software

Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software. It primarily helps organize one's finances and keeps track of where, when and how the money goes.

Money Manager EX 1.2k Dec 31, 2022
A Free, Open source unofficial manga reader for MangaDex

Neko A Free, Open source unofficial manga reader for MangaDex About: This is a MangaDex specific fork of Tachiyomi and TachiyomiJ2K. This contains fea

Carlos 1.4k Jan 3, 2023
A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

Smack About Smack is an open-source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. Being a

Ignite Realtime 2.3k Dec 28, 2022
A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs

Smack About Smack is an open-source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. Being a

Ignite Realtime 2.3k Dec 21, 2021
Twire is an alternative and open source Twitch client for Android

Twire This is a fork of the Pocket Plays for Twitch Android application. More information in this issue. Twire is an open source, ad-free Twitch brows

Twire 749 Jan 2, 2023