This is the universal build of LibreTube (github version) 0.28.0. It contains native libraries for every CPU architecture (arm64-v8a, armeabi-v7a, x86, x86_64), so it installs on any Android device. The trade-off is size — it's larger than per-architecture variants. Pick this one if you're unsure which CPU your phone has, or if you plan to share the APK with multiple devices.
File size: 8.6 MB • Min Android: 26 • Target Android: 34 • Version code: 61 • Framework: Native (Java/Kotlin) • Permissions: 9
File Information
| Package Name | com.github.libretube |
|---|---|
| Version Name | 0.28.0 |
| Version Code | 61 |
| Architecture | Universal |
| Min Android Version | Android 26 (API 34) |
| Main Activity | com.github.libretube.Default |
| Framework | Native (Java/Kotlin) |
| File Size | 8.57 MB |
| Signature (SHA1) | 88BF3613D4E599597C8D7A02C514C41F7B941F34 |
| File Hash (SHA256) | 5306732d507524ebe9133c5c716a0daacf677f1dbbda519652a23256893f577e |
What's New
Note
This release adds a new option called "Full Local Mode", which allows you to use LibreTube completely independent of Piped and do all API requests directly to YouTube's servers, similar to NewPipe. This wouldn't be possible without the help of the NewPipe Extractor library, credits to its maintainers.
Thereby I also want to welcome
@FineFindus
to the LibreTube organization and thank him for contributing and helping with the development a lot recently, without his help many bugs would probably not have been spotted early enough before the release :)
New features
feat: add "full local mode" to use the app without Piped by
@Bnyro
in
#7151
and
#7225
feat: add progress indicator for local feed extraction by
@Bnyro
in
#7145
feat: implement local extraction support for SponsorBlock and DeArrow by
@FineFindus
in
#7195
feat: locally store channel info when local streams extraction enabled by
@Bnyro
in
#7190
feat: rebuild custom instances dialogs for better UX by
@Bnyro
in
#7166
feat(StreamsExtractor): generate PoToken by
@FineFindus
in
#7069
Smaller new features
feat: make player default settings behavior more intuitive by
@Bnyro
in
#7277
feat: smoothen background player -> new video player and video player -> new background player transitions by
@Bnyro
in
#7323
feat: smoother, frictionless transition between audio and video mode by
@Bnyro
in
#7261
feat: Implement splash screen for older Android versions by
@Isira-Seneviratne
in
#7154
feat: increase corner-radius of watch-progressbar by
@FineFindus
in
#7165
feat(LocalFeedRepository): filter members only videos by
@FineFindus
in
#7113
feat: fallback to markdown instances list instead of hardcoded list by
@Bnyro
in
#7290
feat(feed): update local feed data when watching video by
@FineFindus
in
#7141
Bug fixes
fix: automatically resume next paused download item after finishing previous one by
@Bnyro
in
#7259
fix: background shuffle mode doesn't builder a proper queue by
@Bnyro
in
#7270
fix: bound time remaining to mark a video as watched by
@clarfonthey
in
#7173
fix: can't load music playlists using local extraction by
@Bnyro
in
#7210
fix: comment count doesn't reset to 0 if comments disabled by
@Bnyro
in
#7254
fix: current playlist doesn't close after deletion by
@Bnyro
in
#7226
fix: display unstarted downloads in videos tab instead of hiding them by
@Bnyro
in
#7256
fix: download fragment buttons overlap miniplayer by
@Bnyro
in
#7269
fix: download tab scrolls to bottom when entered by
@Bnyro
in
#7255
fix(Feed): extract shorts uploadDate from feedInfo by
@FineFindus
in
#7142
fix(Feed): only update
LastFeedWatchedTime
when update time is newer by
@FineFindus
in
#7320
fix: infinitely looping channel tab items when using full local npe by
@Bnyro
in
#7158
fix: label of sleep timer input field overlapping by
@Bnyro
in
#7212
fix(Local): encode nextpage data as base64 by
@FineFindus
in
#7244
fix(Local): set channelOwner for Comments by
@FineFindus
in
#7246
fix: manual sponsorblock skip button not showing up by
@Bnyro
in
#7177
fix: max amount of concurrent download is ignored for playlists by
@Bnyro
in
#7222
fix: missing item metadata when playing download containing video AND audio by
@Bnyro
in
#7288
fix: missing playlist name in search results using local extraction by
@Bnyro
in
#7211
fix: only enable full local mode by default on new installations by
@Bnyro
in
#7326
fix(Player): hide sponsorblock skip button on video end by
@FineFindus
in
#7185
fix: playlist download service crashes for video titles with invalid filename characters by
@Bnyro
in
#7180
fix: properly open current video from media notification by
@Bnyro
in
#7266
fix: regressions from recent splash screen addition for Android < 11 by
@Bnyro
in
#7224
fix: remove unnecessary whitespaces at instances list fallback by
@Bnyro
in
#7291
fix: scroll state not reset to latest video after refreshing feed/subscriptions by
@Bnyro
in
#7310
fix: selected caption option not properly showing current selection by
@Bnyro
in
#7176
fix: skip already downloaded videos when downloading playlists by
@Bnyro
in
#7287
fix: sort channels alphabetically on client side by
@Bnyro
in
#7191
fix: subscription button state not updated after starting next video by
@Bnyro
in
#7307
fix: subscriptions feed scroll state reset after rotating phone by
@Bnyro
in
#7268
fix: subscriptions feed scroll state reset after switching tabs by
@Bnyro
in
#7267
fix: thumbnails of videos containing '#' can't be downloaded by
@Bnyro
in
#7260
fix(ui): standardize logo design across all app instances by
@handokota
in
#7280
fix: update checker doesn't detect new releases properly by
@Bnyro
in
#7143
fix: urls with timestamps don't work properly by
@Bnyro
in
#7237
fix: various bugs when deleting single or all downloads by
@Bnyro
in
#7181
fix: video sort order not preserved when starting video from sorted playlist by
@Bnyro
in
#7286
fix(WatchHistory): always show filter bar by
@FineFindus
in
#7258
fix: watch position saved on video end even if disabled by
@Bnyro
in
#7242
fix: wrong initial state of hide watched videos from feed filter by
@Bnyro
in
#7175
fix(Welcome): center mode group by
@FineFindus
in
#7292
Refactor
refactor: enable full local mode by default by
@Bnyro
in
#7325
refactor: merge OfflinePlayerService with VideoOfflinePlayerService by
@Bnyro
in
#7262
refactor: move watch history logic to view model by
@Bnyro
in
#7169
refactor: remove channel info api calls when subscribing to channels locally by
@Bnyro
in
#7215
refactor: re-use app icon header in about, welcome and help activity by
@Bnyro
in
#7289
refactor: split video and trending layout into different adapters by
@Bnyro
in
#7308
refactor: use paging adapter for channel content items by
@Bnyro
in
#7157
perf(LocalFeedRepository): speed up local feed extraction by
@FineFindus
in
#7214
Chore
chore: remove alternative videos layout option by
@Bnyro
in
#7276
chore: remove app/release folder from git by
@Bnyro
in
#7138
chore: remove unnecessary authApi uses for playlist nextpages by
@Bnyro
in
#7149
chore: small code cleanups related to playing queue by
@Bnyro
in
#7278
chore: update language name in settings for korean by
@bermount
in
#7236
chore: update privacy policy due to recent addition of full local data extraction by
@Figim
in
#7206
chore: update readme to reflect recent addition of full local extraction by
@Bnyro
in
#7213
chore: update roadmap due to implemented local NewPipe extractor feature by
@Figim
in
#7161
build: use NewPipeExtractor fork by
@FineFindus
in
#7293
New Contributors
@Figim
made their first contribution in
#7161
@clarfonthey
made their first contribution in
#7173
@handokota
made their first contribution in
#7280
Full Changelog
:
v0.27.1...v0.28.0
This release adds a new option called "Full Local Mode", which allows you to use LibreTube completely independent of Piped and do all API requests directly to YouTube's servers, similar to NewPipe. This wouldn't be possible without the help of the NewPipe Extractor library, credits to its maintainers.
Thereby I also want to welcome
@FineFindus
to the LibreTube organization and thank him for contributing and helping with the development a lot recently, without his help many bugs would probably not have been spotted early enough before the release :)
New features
feat: add "full local mode" to use the app without Piped by
@Bnyro
in
#7151
and
#7225
feat: add progress indicator for local feed extraction by
@Bnyro
in
#7145
feat: implement local extraction support for SponsorBlock and DeArrow by
@FineFindus
in
#7195
feat: locally store channel info when local streams extraction enabled by
@Bnyro
in
#7190
feat: rebuild custom instances dialogs for better UX by
@Bnyro
in
#7166
feat(StreamsExtractor): generate PoToken by
@FineFindus
in
#7069
Smaller new features
feat: make player default settings behavior more intuitive by
@Bnyro
in
#7277
feat: smoothen background player -> new video player and video player -> new background player transitions by
@Bnyro
in
#7323
feat: smoother, frictionless transition between audio and video mode by
@Bnyro
in
#7261
feat: Implement splash screen for older Android versions by
@Isira-Seneviratne
in
#7154
feat: increase corner-radius of watch-progressbar by
@FineFindus
in
#7165
feat(LocalFeedRepository): filter members only videos by
@FineFindus
in
#7113
feat: fallback to markdown instances list instead of hardcoded list by
@Bnyro
in
#7290
feat(feed): update local feed data when watching video by
@FineFindus
in
#7141
Bug fixes
fix: automatically resume next paused download item after finishing previous one by
@Bnyro
in
#7259
fix: background shuffle mode doesn't builder a proper queue by
@Bnyro
in
#7270
fix: bound time remaining to mark a video as watched by
@clarfonthey
in
#7173
fix: can't load music playlists using local extraction by
@Bnyro
in
#7210
fix: comment count doesn't reset to 0 if comments disabled by
@Bnyro
in
#7254
fix: current playlist doesn't close after deletion by
@Bnyro
in
#7226
fix: display unstarted downloads in videos tab instead of hiding them by
@Bnyro
in
#7256
fix: download fragment buttons overlap miniplayer by
@Bnyro
in
#7269
fix: download tab scrolls to bottom when entered by
@Bnyro
in
#7255
fix(Feed): extract shorts uploadDate from feedInfo by
@FineFindus
in
#7142
fix(Feed): only update
LastFeedWatchedTime
when update time is newer by
@FineFindus
in
#7320
fix: infinitely looping channel tab items when using full local npe by
@Bnyro
in
#7158
fix: label of sleep timer input field overlapping by
@Bnyro
in
#7212
fix(Local): encode nextpage data as base64 by
@FineFindus
in
#7244
fix(Local): set channelOwner for Comments by
@FineFindus
in
#7246
fix: manual sponsorblock skip button not showing up by
@Bnyro
in
#7177
fix: max amount of concurrent download is ignored for playlists by
@Bnyro
in
#7222
fix: missing item metadata when playing download containing video AND audio by
@Bnyro
in
#7288
fix: missing playlist name in search results using local extraction by
@Bnyro
in
#7211
fix: only enable full local mode by default on new installations by
@Bnyro
in
#7326
fix(Player): hide sponsorblock skip button on video end by
@FineFindus
in
#7185
fix: playlist download service crashes for video titles with invalid filename characters by
@Bnyro
in
#7180
fix: properly open current video from media notification by
@Bnyro
in
#7266
fix: regressions from recent splash screen addition for Android < 11 by
@Bnyro
in
#7224
fix: remove unnecessary whitespaces at instances list fallback by
@Bnyro
in
#7291
fix: scroll state not reset to latest video after refreshing feed/subscriptions by
@Bnyro
in
#7310
fix: selected caption option not properly showing current selection by
@Bnyro
in
#7176
fix: skip already downloaded videos when downloading playlists by
@Bnyro
in
#7287
fix: sort channels alphabetically on client side by
@Bnyro
in
#7191
fix: subscription button state not updated after starting next video by
@Bnyro
in
#7307
fix: subscriptions feed scroll state reset after rotating phone by
@Bnyro
in
#7268
fix: subscriptions feed scroll state reset after switching tabs by
@Bnyro
in
#7267
fix: thumbnails of videos containing '#' can't be downloaded by
@Bnyro
in
#7260
fix(ui): standardize logo design across all app instances by
@handokota
in
#7280
fix: update checker doesn't detect new releases properly by
@Bnyro
in
#7143
fix: urls with timestamps don't work properly by
@Bnyro
in
#7237
fix: various bugs when deleting single or all downloads by
@Bnyro
in
#7181
fix: video sort order not preserved when starting video from sorted playlist by
@Bnyro
in
#7286
fix(WatchHistory): always show filter bar by
@FineFindus
in
#7258
fix: watch position saved on video end even if disabled by
@Bnyro
in
#7242
fix: wrong initial state of hide watched videos from feed filter by
@Bnyro
in
#7175
fix(Welcome): center mode group by
@FineFindus
in
#7292
Refactor
refactor: enable full local mode by default by
@Bnyro
in
#7325
refactor: merge OfflinePlayerService with VideoOfflinePlayerService by
@Bnyro
in
#7262
refactor: move watch history logic to view model by
@Bnyro
in
#7169
refactor: remove channel info api calls when subscribing to channels locally by
@Bnyro
in
#7215
refactor: re-use app icon header in about, welcome and help activity by
@Bnyro
in
#7289
refactor: split video and trending layout into different adapters by
@Bnyro
in
#7308
refactor: use paging adapter for channel content items by
@Bnyro
in
#7157
perf(LocalFeedRepository): speed up local feed extraction by
@FineFindus
in
#7214
Chore
chore: remove alternative videos layout option by
@Bnyro
in
#7276
chore: remove app/release folder from git by
@Bnyro
in
#7138
chore: remove unnecessary authApi uses for playlist nextpages by
@Bnyro
in
#7149
chore: small code cleanups related to playing queue by
@Bnyro
in
#7278
chore: update language name in settings for korean by
@bermount
in
#7236
chore: update privacy policy due to recent addition of full local data extraction by
@Figim
in
#7206
chore: update readme to reflect recent addition of full local extraction by
@Bnyro
in
#7213
chore: update roadmap due to implemented local NewPipe extractor feature by
@Figim
in
#7161
build: use NewPipeExtractor fork by
@FineFindus
in
#7293
New Contributors
@Figim
made their first contribution in
#7161
@clarfonthey
made their first contribution in
#7173
@handokota
made their first contribution in
#7280
Full Changelog
:
v0.27.1...v0.28.0
App Description
Note
We don't accept feature or bug requests on these platforms. Kindly submit requests only on GitHub.
📜️ Credits
Readme Design and Banners by
XelXen
Readme Screenshots by
ARBoyGo
Readme Emoji is from
openmoji
Icons
Default App Icon
by
XelXen
Boosted Bird
by
Margot Albert-Heuzey
About
YouTube has an extremely invasive
privacy policy
which relies on using user data in unethical ways. They store a lot of your personal data - ranging from ideas, music taste, content, political opinions, and much more than you think.
This project is aimed at improving the users' privacy by being independent from Google and bypassing their data collection.
Therefore, the app is using the
Piped API
, which uses proxies to circumvent Google's data collection and includes some other additional features.
If you have questions or need help, please make sure to read the
FAQ
before asking for help at the community channels. The
Matrix room
is considered as the main communication channel, all other forums or social media accounts are maintained by volunteers from the community but not the developer(s).
Screenshots
More screenshots can be found
here
Features
No Ads or Tracking
Subscriptions
Subscription Groups
User Playlists
Playlist Bookmarks
Watch/Search History
SponsorBlock
ReturnYouTubeDislike
DeArrow
Downloads
Background playback
User Accounts via Piped (optional)
Contributing
Whether you have ideas, translations, design changes, code cleaning or really heavy code changes, help is always welcome. The more is done, the better it gets! Please respect our
Code of Conduct
in order to keep all interactions and discussions healthy.
You can open and build the project like any other normal Android project by using Android Studio.
Please make sure the title of your pull request and the commit messages follow the
conventional commit types
(e.g.
feat: support for xy
). For instance, the most common commit types are "feat", "fix", "refactor", "ci" and "chore".
Note
Any issue avoiding the issue template will be ignored and forced to be closed.
Note
The usage of AI to generate issue texts or pull requests is not permitted at this repository and thus such issues / pull requests will be ignored.
Donate
Donations can be made at:
https://github.com/sponsors/Bnyro
https://liberapay.com/Bnyro
Contributions in any form are welcome!
📝 Translations
Differences to NewPipe
With LibreTube, you have the choice to either send all requests directly to YouTube or proxy them via Piped for better privacy. Piped acts as a middleman server between you and YouTube in this case, which prevents YouTube from accessing personal information such as your IP address. Additionally, using Piped allows you to sync your subscriptions between LibreTube and Piped, which can be used on desktop too.
While LibreTube only supports YouTube, NewPipe also allows the use of other platforms like SoundCloud, PeerTube, Bandcamp and media.ccc.de.
Both are great clients for watching YouTube videos. It depends on the individual's use case which one fits their needs better.
Privacy Policy and Disclaimer
LibreTube aims to protect the privacy of its users.
Our Privacy Policy
gives detailed information on which data the app stores in order to work, how it is being used, and how the project protects your personal information. It is recommended to read the privacy policy of LibreTube as well as the privacy policy of the instance you have chosen inside the app.
License
LibreTube is
Free Software
: You can use, study, share and modify it at your will. The app can be redistributed and/or modified under the terms of the
GNU General Public License version 3 or later
published by the
Free Software Foundation
.
↥ Scroll to top
We don't accept feature or bug requests on these platforms. Kindly submit requests only on GitHub.
📜️ Credits
Readme Design and Banners by
XelXen
Readme Screenshots by
ARBoyGo
Readme Emoji is from
openmoji
Icons
Default App Icon
by
XelXen
Boosted Bird
by
Margot Albert-Heuzey
About
YouTube has an extremely invasive
privacy policy
which relies on using user data in unethical ways. They store a lot of your personal data - ranging from ideas, music taste, content, political opinions, and much more than you think.
This project is aimed at improving the users' privacy by being independent from Google and bypassing their data collection.
Therefore, the app is using the
Piped API
, which uses proxies to circumvent Google's data collection and includes some other additional features.
If you have questions or need help, please make sure to read the
FAQ
before asking for help at the community channels. The
Matrix room
is considered as the main communication channel, all other forums or social media accounts are maintained by volunteers from the community but not the developer(s).
Screenshots
More screenshots can be found
here
Features
No Ads or Tracking
Subscriptions
Subscription Groups
User Playlists
Playlist Bookmarks
Watch/Search History
SponsorBlock
ReturnYouTubeDislike
DeArrow
Downloads
Background playback
User Accounts via Piped (optional)
Contributing
Whether you have ideas, translations, design changes, code cleaning or really heavy code changes, help is always welcome. The more is done, the better it gets! Please respect our
Code of Conduct
in order to keep all interactions and discussions healthy.
You can open and build the project like any other normal Android project by using Android Studio.
Please make sure the title of your pull request and the commit messages follow the
conventional commit types
(e.g.
feat: support for xy
). For instance, the most common commit types are "feat", "fix", "refactor", "ci" and "chore".
Note
Any issue avoiding the issue template will be ignored and forced to be closed.
Note
The usage of AI to generate issue texts or pull requests is not permitted at this repository and thus such issues / pull requests will be ignored.
Donate
Donations can be made at:
https://github.com/sponsors/Bnyro
https://liberapay.com/Bnyro
Contributions in any form are welcome!
📝 Translations
Differences to NewPipe
With LibreTube, you have the choice to either send all requests directly to YouTube or proxy them via Piped for better privacy. Piped acts as a middleman server between you and YouTube in this case, which prevents YouTube from accessing personal information such as your IP address. Additionally, using Piped allows you to sync your subscriptions between LibreTube and Piped, which can be used on desktop too.
While LibreTube only supports YouTube, NewPipe also allows the use of other platforms like SoundCloud, PeerTube, Bandcamp and media.ccc.de.
Both are great clients for watching YouTube videos. It depends on the individual's use case which one fits their needs better.
Privacy Policy and Disclaimer
LibreTube aims to protect the privacy of its users.
Our Privacy Policy
gives detailed information on which data the app stores in order to work, how it is being used, and how the project protects your personal information. It is recommended to read the privacy policy of LibreTube as well as the privacy policy of the instance you have chosen inside the app.
License
LibreTube is
Free Software
: You can use, study, share and modify it at your will. The app can be redistributed and/or modified under the terms of the
GNU General Public License version 3 or later
published by the
Free Software Foundation
.
↥ Scroll to top
Download LibreTube (github version) APK
Fast, free and safe download.
APK Permissions 9
- android.permission.ACCESS_NETWORK_STATE
- android.permission.FOREGROUND_SERVICE
- android.permission.FOREGROUND_SERVICE_DATA_SYNC
- android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK
- android.permission.INTERNET
- android.permission.POST_NOTIFICATIONS
- android.permission.RECEIVE_BOOT_COMPLETED
- android.permission.WAKE_LOCK
- com.github.libretube.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
APK Verified
The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way.
Similar in Video Players
Frequently Asked Questions about LibreTube (github version) APK
This is the universal variant — a single APK that contains native libraries for every CPU architecture. It installs on any Android device but is larger than per-architecture variants.
Yes — the APK's signature has been cryptographically verified against the publisher's signing key. The SHA-256 hash is shown in the File Information panel so you can independently confirm the file matches the original release.
Android 26 (API level 34) or newer. Older devices will refuse the install.
Install a free app like 'CPU-Z' or 'Droid Hardware Info' from the Play Store and look at the ABI / Instruction Set row. Most phones made after 2017 are arm64-v8a; if in doubt, download the universal variant.
All variants are functionally identical — same features, same version. They differ only in which CPU architectures the native code is compiled for, and (sometimes) which screen densities the included graphics target. Pick the one that matches your device for the smallest install size, or pick 'Universal' if you're unsure.