Note
This release adds support for local feed extraction in order to circumvent the current subscription feed issues at Piped, where the feed not properly updated. To enable it, navigate to Settings
-> Instance
and set the preference accordingly. Please note that this might take a lot of time if you have a lot of subscriptions, and apart from that directly connects you to YouTube for fetching information about new videos.
Additionally this release updates the NewPipeExtractor to v0.24.4 in order to fix the iOS Player response not valid
errors when attempting to play a video.
For everyone who didn't notice yet: If you don't have access to a private Piped instance that's not IP-banned by YouTube, you should likely enable Local streams extraction
in the settings if facing Sign in to confirm you're not a bot
errors. As the Local feed extraction
option, please keep in mind that when enabled, LibreTube directly fetches playback information from YouTube.
Major new features
- feat: support for predictive back gestures by @Bnyro in #6863
- feat: support for local feed extraction by @Bnyro in #6938
- feat: support for exporting single playlists by @Bnyro in #6855
- feat: support for importing playlist as list of video ids / urls by @Bnyro in #6845
- feat: display full video sponsorblock categories by @FineFindus in #6725
Smaller new features
- feat: add badge for downloaded videos by @Bnyro in #6935
- feat: add update info dialog to inform users about current Piped situation by @Bnyro in #6987
- feat: disable autoplay countdown while screen off by @Bnyro in #6800
- feat: dismiss chapters sheet when minimizing video by @Bnyro in #6844
- feat(LocalFeedExtraction): check if there are any new streams before refreshing channel by @Bnyro in #6945
- feat(LocalFeedRepository): don't fetch ChannelInfo if latest channel video is already known by @Bnyro in #6951
- feat(LocalFeedRepository): fetch only enabled channel tabs by @FineFindus in #6941
- feat(LocalFeedRepository): throttle feed extraction by @FineFindus in #6949
- feat: option to only delete watched videos by @Bnyro in #6742
- feat(Playlist): display views and upload date by @FineFindus in #6920
- feat: reuse existing player when selecting other video while playing by @Bnyro in #6821
- feat: show button to view crash log in settings for debug builds by @Bnyro in #6798
- feat: show full upload date if description expanded by @Bnyro in #6885
- feat: show toast message after version text copied by @Bnyro in #6966
- feat: support for media button events (next, previous, rewind, forward, stop) by @Bnyro in #6817
- feat: support for predictive back gesture in (audio) player fragment by @Bnyro in #6864
- feat: watch progress support for downloads by @Bnyro in #6741
Bug fixes
- fix: auto-delete feed videos when unsubscribing from channel when using local feed extraction by @Bnyro in #6944
- fix: auto fullscreen for shorts by @Bnyro in #6768
- fix: autoplay countdown continues although other video selected by @Bnyro in #6841
- fix: back navigation from comment replies by @Pittvandewitt in #6954
- fix: backstack when opening search fragment by @Pittvandewitt in #7010
- fix: backup file names contain (for some file systems) invalid char ':' by @Bnyro in #6952
- fix: check if streams is initialized by @FineFindus in #6802
- fix: crash if player view is not attached to lifecycle by @Bnyro in #6797
- fix: crash when all caught up view appearing in subscriptions by @Bnyro in #6940
- fix: crash when closing player before video started by @Bnyro in #6785
- fix: crash when instances refreshed during instance selection (out of bounds) by @Bnyro in #6929
- fix: crash when opening video in landscape with autofullscreen enabled by @Bnyro in #6818
- fix: crash when rotating phone while player session not yet started by @Bnyro in #6981
- fix: crash when starting audio player by @Bnyro in #6756
- fix: crash when starting next video before current started by @Bnyro in #6843
- fix: crash when starting other video by @Bnyro in #6784
- fix: crash when switching to audio player by @Bnyro in #6968
- fix: crash when trying to play downloaded video offline by @Bnyro in #6842
- fix: crash when trying to start audio before playback started by @Bnyro in #6853
- fix: crash when two media sessions coexist by @Bnyro in #6753
- fix: crash when videoId is unitialized by @Bnyro in #6763
- fix: don't recreate player on orientation change by @Bnyro in #6819
- fix: don't show audio player when tapping video player notification by @Bnyro in #6740
- fix: error toasts when switching between audio/video playback by @Bnyro in #6790
- fix: exported playlists in urlsorids format use invalid url format by @Bnyro in #6861
- fix: ignore youtube import entries with missing title url by @Bnyro in #6744
- fix: mark as (un)watched button by @Bnyro in #7002
- fix: maximise player when playing new video by @FineFindus in #6829
- fix: MediaCodecRendererException when rotating screen by @Bnyro in #7003
- fix: missing horizontal padding in play offline dialog by @Bnyro in #6928
- fix: missing indicator for current selected resolution by @Bnyro in #6755
- fix: missing predictive back support in search fragments by @Bnyro in #7000
- fix: missing title and chapters in downloads video player by @Bnyro in #6820
- fix: navigating back home by @Pittvandewitt in #6976
- fix: offline audio player hidden behind content fragment by @Bnyro in #6980
- fix: only display playlist video count if ge zero by @Bnyro in #6900
- fix: only show/hide scroll to top button at end of scrolling by @Bnyro in #6965
- fix: overflowing downloads layout on some devices by @Bnyro in #6754
- fix: play local video version dialog hidden if autofullscreen enabled by @Bnyro in #6936
- fix: play/pause icon at start of video by @Bnyro in #6772
- fix: preference to only store watch positions for video doesn't work by @Bnyro in #6997
- fix: pressing video notification when playing offline by @Bnyro in #6762
- fix: properly kill playback service and notification on player close by @Bnyro in #6773
- fix: queue buttons dont work by @Bnyro in #6769
- fix: recent player UI regressions by @Bnyro in #6781
- fix: search action view not properly collapsed when pressing navbar item by @Bnyro in #7014
- fix: shorts are not properly categorized using local feed extraction by @Bnyro in #6939
- fix: sleep timer doesn't work if playing downloads offline by @Bnyro in #6764
- fix: starting video from queue when autoplay countdown enabled by @Bnyro in #6783
- fix(SubscriptionsFragment): skip all-caught-up check for upcoming videos by @FineFindus in #7008
- fix: unable to create new channel groups by @Bnyro in #6999
- fix: update miniplayer play pause button on screen rotation by @Bnyro in #7005
- fix: update play pause button on screen rotation by @Bnyro in #7004
- fix: video aspect ratio ignored when playing videos offline by @Bnyro in #6757
- fix: watch history imports from other languages by @Bnyro in #6881
- fix: wrong back order when new fragment opened from audio/video player by @Bnyro in #6931
- fix: wrong predictive back order in offline downloads by @Bnyro in #6930
- fix: preserve platform navigation implementation by @Pittvandewitt in #6956
Refactor
- refactor: directly add loaded videos to playlist to improve UX by @Bnyro in #6865
- refactor: don't use Cronet directly for downloading by @Bnyro in #6887
- refactor: improve proxy url rewriting, store only unproxied URLs in database by @Bnyro in #6947
- refactor: improve SponsorBlock segments handling logic by @Bnyro in #6771
- refactor: improve watch position handling by @Bnyro in #6998
- refactor: merge VideoOnlinePlayerService with OnlinePlayerService by @Bnyro in #6761
- refactor: Migrate to MediaLibraryService by @Bnyro in #6732
- refactor: move local playlists logic to LocalPlaylistsRepository by @Bnyro in #6932
- refactor: reimplement stats for nerds by @Bnyro in #6739
- refactor: re-use StreamInfoItem#toStreamItem from StreamsExtractor by @Bnyro in #6946
- refactor: simplify ImportHelper#importPlaylists by @Bnyro in #6846
- refactor: simplify playing queue listener handling by @Bnyro in #6789
- refactor: use MediaController instead of ServiceBinder in AudioPlayer… by @Bnyro in #6743
- refactor: use skip/previous buttons from DefaultMediaNotificationProvider by @Bnyro in #6857
- refactor: Migrate to FragmentContainerView by @Pittvandewitt in #6957
- refactor: clean up all binding references by @Pittvandewitt in #6962
- refactor: observe comment count outside of lifecycle aware block by @Pittvandewitt in #6961
- refactor: observe livedata once in HomeFragment by @Pittvandewitt in #6955
- refactor: rework view binding by @Pittvandewitt in #6975
Chore
- chore: bump NewPipeExtractor to stable v0.24.3 by @Bnyro in #6834
- chore: change freetube file extension to db by @Bnyro in #6879
- chore: fix some deprecation warning messages by @Bnyro in #7016
- chore: remove unused case in onCustomCommand by @Bnyro in #6858
- chore: use TextUtils#isDigitsOnly by @Bnyro in #6933
- chore: drop cronet by @Bnyro in #7015
Credits
Special thanks to @FineFindus and @Pittvandewitt for their contributions to this release!
Full Changelog: v0.26.0...v0.27.0