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
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).
- More screenshots can be found here
- No Ads
- User Accounts
- Subscriptions
- Subscription Groups
- User Playlists
- Playlist Bookmarks
- Watch/Search History
- SponsorBlock
- DeArrow
- ReturnYouTubeDislike
- Downloads
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.
Donations can be made at:
Contributions in any form are welcome!
With NewPipe, the extraction is done locally on your phone, and all the requests sent towards YouTube/Google are done directly from the network you’re connected to, which doesn’t use a middleman server in between. Therefore, Google can still access information such as the user’s IP address. Aside from that, subscriptions can only be stored locally.
LibreTube takes this one step further and proxies all requests via Piped (which uses the NewPipeExtractor). This prevents Google servers from accessing your IP address or any other personal data.
Apart from that, Piped allows syncing your subscriptions between LibreTube and Piped, which can be used on desktop too.
If the NewPipeExtractor breaks, it only requires an update of Piped and not LibreTube itself. Therefore, fixes usually arrive faster than in NewPipe.
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.
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.
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.
New features
- feat: audio player support for no internet activity by @Bnyro in #6641
- feat: downloads fragment rework, playing queue and audio player support by @Bnyro in #6596
- feat: ask user to play downloaded version if video already downloaded by @angolo and @Bnyro in #6599
- feat: support for importing watch history from YouTube by @Bnyro in #6543
- feat: support for shuffling downloaded audio content by @Bnyro in #6623
- feat: RYD support for local stream extraction by @janisslsm in #6483
Quality of Life changes
- feat: hide crash dialogs when developing by @FineFindus in #6719
- feat(VideosAdapter): clearly indicate future videos as upcoming by @FineFindus in #6716
- feat: delete indicator when dismissing videos/items by @Bnyro in #6673
- feat: highlight current selection in player options sheets by @Bnyro in #6482
- feat: support for selecting audio codec by @Bnyro in #6578
- feat: allow dash without piped proxy by @janisslsm in #6485
- feat: allow user to set custom preloading amount by @Bnyro in #6504
Bug fixes
- fix: autoplay countdown showing even if autoplay disabled by @Bnyro in #6481
- fix: back gesture handling in no internet activity by @Bnyro in #6646
- fix: background service stops when using add to queue/playlist/downlo… by @Bnyro in #6577
- fix: can’t open audio player via notification in downloads by @Bnyro in #6626
- fix: can’t paste channel/playlist urls to search bar by @Bnyro in #6575
- fix: click on video playlist won’t load if autoplay is off by @Relwi in #6588
- fix: click on video playlist won’t load if autoplay is off on background mode by @Relwi in #6589
- fix: crash in add to playlist dialog upon api error by @Bnyro in #6663
- fix: crash viewing live video in playlist by @Bnyro in #6689
- fix: crash when adding/removing channel to group by @Bnyro in #6529
- fix: crash when importing private videos in watch history by @Bnyro in #6571
- fix: display comments count (again) by @Bnyro in #6501
- fix: don’t allow empty input in EditNumberPreference by @Bnyro in #6669
- fix: double click gesture inaccurate in landscape player by @Bnyro in #6480
- fix: hide download buttons when current video is live by @Bnyro in #6694
- fix: hide go to video action when in no internet mode by @Bnyro in #6611
- fix: import and export of FreeTube newline format by @Bnyro in #6674
- fix: import of new FreeTube playlist format by @Bnyro in #6639
- fix: incorrect FreeTube playlist export by @Bnyro in #6664
- fix: live videos shown as uploaded in 1970 in watch history by @Bnyro in #6695
- fix: missing separator in video info text by @Bnyro in #6621
- fix: missing top bar padding in portrait for downloaded video playback by @Bnyro in #6534
- fix: no chapters button shown if video highlight is the only chapter by @Bnyro in #6530
- fix: no horizontal padding in fullscreen player by @Bnyro in #6572
- fix: pip controls don’t work if auto-PiP is disabled by @Bnyro in #6542
- fix: pip-to-audio action does not close pip window by @janisslsm in #6476
- fix: queue refill jobs don’t finish when video session ended by @Bnyro in #6533
- fix: scroll position not remembered when closing comments sheet by @Bnyro in #6687
- fix: shuffle button crash when playlist is empty by @Relwi in #6561
- fix: uncaught local streams extractor exceptions by @Bnyro in #6532
- fix: unexpected behavior in offline audio player fragment by @Bnyro in #6645
- fix: video fails to play when shared to app with zero navbar tabs by @Bnyro in #6573
- fix: work around that some livestreams are not declared as such by NPE by @Bnyro in #6711
- fix: wrong chapter name shown if following video has only SB highlight by @Bnyro in #6531
Refactor
- refactor: also respect codec preference in audio mode by @Bnyro in #6579
- refactor: cleanup DashHelper.kt by @Bnyro in #6489
- refactor: click on video playlist won’t load if autoplay is off by @Relwi in #6593
- refactor: error handling for stream extractor responses by @Bnyro in #6541
- refactor: improve performance when starting background shuffle mode by @Bnyro in #6627
- refactor: simplify swipe/drag listeners for recycler views by @Bnyro in #6672
- refactor: unify views string formatting logic to avoid bugs by @Bnyro in #6609
Chore
- chore: cleanup and update dependencies by @Bnyro in #6576
- chore: correct typos detected by typos-cli by @Bnyro in #6602
- chore: fix failing download for NewPipe Extractor dependency by @Bnyro in #6471
- chore: fix missing string resource by @Bnyro in #6671
- chore: fix unescaped escape sequence in username_email string by @Bnyro in #6472
New Contributors
Full Changelog: v0.25.2...v0.26.0