Donations are now possible
I'm excited to announce that donations are now possible for LibreTube! Your support is very appreciated in helping us continue to develop and improve the project, and continuing to offer a privacy-focused alternative to YouTube.
As a small team of dedicated volunteers, we appreciate every contribution, no matter the size. Donations will help us cover the costs of an official website, the development, and future enhancements.
Please visit our donation page at https://github.com/libre-tube/LibreTube#donations to contribute today. Thank you for your support, and together, let's keep LibreTube thriving!
New features
- feat: support for submitting SponsorBlock segments by @Bnyro in #4590
- feat: add sponsorblock option to skip only once by @FineFindus in #4584
- feat: allow downloading audio tracks based on their language by @Bnyro in #4581
- feat: allow resuming playback after disconnect by @Bnyro in #4746
- feat(channelGroups): allow re-ordering of groups by @FineFindus in #4551
- feat: disable video track loading while screen off by @Bnyro in #4719
- feat: play all videos by group when long pressing group name by @Bnyro in #4573
- feat: show placeholders for all images by @Bnyro in #4723
- feat: support for selecting auto-generated captions by @Bnyro in #4510
Minor new features
- BREAKING CHANGE: persist playback speed and remove playback speed option by @FineFindus in #4661
- feat: add tooltips to various icon buttons for better accessibility by @FineFindus in #4472
- feat: use elevated accent color for playlist videos count by @Bnyro in #4545
- feat: Show stream count under summary notification by @Isira-Seneviratne in #4652
- feat(stats): use bottom sheet by @FineFindus in #4482
- feat: show controls on STATE_ENDED by @FineFindus in #4560
- feat: show if instance registration disabled in welcome page by @Bnyro in #4546
- feat(settings/sponsorblock): allow changing sb user id by @FineFindus in #4749
- feat(player): play music videos at 1x speed by @FineFindus in #4634
- feat(player): show if quality is auto or limited by @Bnyro in #4517
- feat(playlist): navigate to uploader on click by @Bnyro in #4515
- feat: allow interacting with player while viewing chapters by @Bnyro in #4563
- feat(audio player): show app icon as thumbnail in data saver mode by @Bnyro in #4622
- feat: preference to disable sponsorblock submit button by @Bnyro in #4726
- feat(player): allow pausing when loading by @FineFindus in #4498
- feat: elevate miniplayer background color for better distinguishability by @Bnyro in #4722
- feat: hide mark as watched when video is watched by @FineFindus in #4651
- feat: highlight current chapter by @Bnyro in #4609
- feat: infinite playing queue when auto-insert related streams enabled by @Bnyro in #4564
- feat(settings): move proxy settings to instance page by @FineFindus in #4559
- feat(channelGroups): disable confirm button if creation is not possible by @FineFindus in #4550
Bug fixes
- fix: add pagination to subscriptions list by @Bnyro in #4725
- fix: Avoid accidental link clicking by @Isira-Seneviratne in #4712
- fix: Avoid settings crash in release builds by @Isira-Seneviratne in #4777
- fix: can't download new video while other download in progress by @Bnyro in #4715
- fix: captions can't be disabled by @Bnyro in #4540
- fix: chapter layout UI and UX issues by @Bnyro in #4619
- fix: crash when an other media session with the same name exists by @Bnyro in #4714
- fix: crash when deleting playlist, playlist description not shown by @Bnyro in #4752
- fix: crash when downloaded filename too long by @Bnyro in #4737
- fix: crash when long pressing search result by @Bnyro in #4755
- fix: crash when long pressing watch history item by @Bnyro in #4757
- fix: crash when opening instance settings without internet by @Bnyro in #4597
- fix: crash when opening library due to unmigrated playlists sort order pref by @Bnyro in #4509
- fix: crash when scrubbing timebar on certain videos by @Bnyro in #4717
- fix(deps): update lifecycle to v2.6.2 by @renovate in #4704
- fix(deps): update media3 to v1.1.1 by @renovate in #4507
- fix(deps): update navigation to v2.7.1 by @renovate in #4602
- fix(deps): update navigation to v2.7.2 by @renovate in #4705
- fix: dismiss button in queue sheet by @IndusAryan in #4532
- fix: don't show the highlight as chapter for the whole remaining video by @Bnyro in #4610
- fix: don't update instance preference while dialog visible to user by @Bnyro in #4601
- fix: editing already existing channel groups by @Bnyro in #4582
- fix: elevation of subscriptions toggle in subscriptions fragment by @Bnyro in #4571
- fix: exit fullscreen gesture by @Bnyro in #4607
- fix: Free view bindings in dialogs by @Isira-Seneviratne in #4616
- fix: importing playlists without a header containing its name by @Bnyro in #4740
- fix: issues with fragment result listener by @Bnyro in #4742
- fix: limit chapter bottom sheet to one instance by @Bnyro in #4611
- fix: long pressing plays wrong channel group by @Bnyro in #4720
- fix: npe when opening dialog to submit sb segments by @Bnyro in #4625
- fix: properly kill offline player notification by @Bnyro in #4718
- fix: remove fragment constructors from video and channel options bott… by @Bnyro in #4743
- fix: remove useless buttons to reset pitch and playback speed by @Bnyro in #4544
- fix: restore pause on quit functionality by @Bnyro in #4562
- fix(settings/sponsorblock): allow toggling of contribute setting by @FineFindus in #4748
- fix: show okay button for multi selection dialogs instead of cancel by @Bnyro in #4716
- fix: unexpected crashes from seekbar preview bitmap parsing by @Bnyro in #4745
- fix: update video progress by @FineFindus in #4574
- fix: videos played with background player not added to watch history by @Bnyro in #4736
- fix: video upload date not saved to watch history by @Bnyro in #4735
- fix: Avoid settings crash in release builds by @Isira-Seneviratne in #4777
- fix: respect sort order and filters when playing channel group by @Bnyro in #4613
Code refactor
- refactor: Combine Bundle extensions to one file by @Isira-Seneviratne in #4690
- refactor: Improve fragment transaction in CommentsSheet by @Isira-Seneviratne in #4604
- refactor: Improve UpdateInfo by @Isira-Seneviratne in #4721
- refactor: migrate gradle from groovy to kotlin dsl (buildscripts) by @IndusAryan in #4758
- refactor: move constants into the files they're actually used in by @Bnyro in #4738
- refactor: Organize preferences using XML by @Isira-Seneviratne in #4688
- refactor: remove arguments from dialog fragment constructors by @anshtya in #4684
- refactor: remove constructors from IntentChooserSheet and PlaybackOptionsSheet by @Bnyro in #4756
- refactor: remove fragment constructors from channel groups sheets by @Bnyro in #4770
- refactor: remove fragment constructors from various bottom sheets by @Bnyro in #4769
- refactor: Reuse ImageHelper.getImage() by @Isira-Seneviratne in #4657
- refactor: save possible stream types to constant values by @Bnyro in #4614
- refactor: Simplify player event handling by @Isira-Seneviratne in #4556
- refactor: Simplify router URL resolution by @Isira-Seneviratne in #4698
- refactor: Use allViews extension by @Isira-Seneviratne in #4732
- refactor: Use edit extension by @Isira-Seneviratne in #4615
- refactor: Use Path extensions by @Isira-Seneviratne in #4617
- refactor: Use replace extension by @Isira-Seneviratne in #4689
Chore
- chore: automatically merge weblate PRs by @Bnyro in #4670
- chore(ci): add checksums for nightly uploads by @FineFindus in #4766
- chore: complete Spanish (latin) translation by @luckkmaxx in #4548
- chore(deps): update actions/checkout action to v4 by @renovate in #4692
- chore: fix formatting by @Bnyro in #4516
- chore: grant write permissions to weblate action by @Bnyro in #4675
- chore: Migrate to KSP by @Isira-Seneviratne in #4555
- chore: move kotlin, kgp and serialization to version catalog (libs) by @IndusAryan in #4767
- chore: simplify and remove unused code by @Bnyro in #4608
- chore: Update androidx core by @Isira-Seneviratne in #4707
- chore: upgrade kotlin version and deprecated code and remove unused code by @IndusAryan in #4763
- style: fix formatting by @Bnyro in #4747
- style: move StatsSheet to sheets package by @Bnyro in #4626
- style: run ktlint by @Bnyro in #4771
- style: simplify ThemeHelper#getThemeColor by @Bnyro in #4623
New Contributors
- @luckkmaxx made their first contribution in #4548
- @anshtya made their first contribution in #4684
Full Changelog: v0.17.1...v0.18.0