Summary
This release of FreeTube represents an incredible amount of hard work and persistence from the project and its contributors. It brings major improvements across playback, performance, and platform support, with the most significant changes detailed in the FreeTube, YouTube, and Electron sections below.
We’d like to extend a special thank you to @LuanRT, maintainer of YouTube.js and @absidue, for repeatedly helping us resolve that various issues that have impacted playback over time. Your expertise has been invaluable in keeping FreeTube functional through YouTube’s ongoing changes.
A special thank you as well to @PikachuEXE and @absidue for their work on implementing SABR support, a challenging but essential step in adapting FreeTube to YouTube’s evolving streaming methods.
We also want to give a big thank you to the Shaka Player team (@avelad, @joeyparrish, @matvp91, @tykus160, @TAhub, @mariocynicys) for their responsiveness and collaboration. They’ve been quick to fix bugs we’ve reported and their willingness to implement requested functionality have been invaluable to FreeTube.
Lastly, we would like to thank all the translators that make FreeTube more accessible to all of our users!
FreeTube
- Implemented SABR playback support via the local API, restoring audio track selection in the player. Watch pages now load faster, but may show timers for pre-roll ads and SABR backoff. The displayed timer values are provided by YouTube and we have no control over them. If playback fails, it will automatically retry or reload. For more details on SABR, see #7119 (comment).
- Updated the player to a newer version of Shaka Player with a modernization of the UI. The interface is now cleaner and closely aligned with YouTube’s look and feel.
- Removed the Restart window keyboard shortcut. It is known to be unstable and frequently causes allot of issues when used, despite prior guidance to avoid it. As an alternative, use the keyboard shortcuts for navigating back and forward to achieve the same result.
- The built-in download feature has been removed. This functionality was already partially broken and became completely unusable following the introduction of SABR. In its existing state, it lacked many features users typically expect from a YouTube downloader, and restoring it would have required a significant rewrite just to bring it back to a minimal, maintenance-level condition. Given the scope of work required and the availability of more robust, dedicated tools such as yt-dlp and various online download services, we determined that removing the built-in downloader was the most practical decision.
YouTube
- YouTube has removed its Trending page, but FreeTube’s Trending page remains available by sourcing data from the trending sections of the Gaming, Sports, and Podcasts channels.
- YouTube has updated its search filters, and FreeTube has been updated to match these changes.
Electron
Updating from Electron v34 to Electron v41 introduces the following notable changes:
- macOS 11 is no longer supported, as Electron v38.0.0 does not support this OS version. macOS 12 (Monterey) or later is required to run FreeTube going forward.
- Wayland is supported out of the box in Electron v38.2.0 and newer (if you were previously launching your Electron apps with very long commands like
CONFUSING_OZONE_VARIABLE --ozone-platform=wayland, you no longer need to do that).
Known issues
- Sorting on channel pages isnt working
- Daily YouTube RSS outages affects the Subscription page
- Auto video quality isnt working with SABR so it will be patched out for this release
Features
- Clickable playlist progress bar by @PikachuEXE and @NishPatel101 in #7782
- Add Everforest color themes by @DontBlameMe99 in #6468
- Add support for channel's
Coursestab by @ChunkyProgrammer in #6641 - Add playlist duration to playlist view by @MarmadileManteater in #7007
- Add watch progress saving setting with multiple different modes by @PikachuEXE in #6754
- Add support for upcoming livestream trailers by @ChunkyProgrammer in #6375
- Add "New Windows" item to the Windows taskbar and macOS dock menu by @rugabunda in #7049
- Add more YouTube keyboard shortcuts to the player by @efb4f5ff-1298-471a-8973-3d47447115dc in #7487
- Implement a "search X in new window" context menu item by @PikachuEXE in #7477
- Add a reset button to the search filters by @ozrendev in #7531
- Add sort by date on history page by @anurag2787 in #7157
- Handle more YouTube URLs by @absidue in #7654
- Add support for transcript voice replies with the local API by @ChunkyProgrammer in #7573
- Add support for viewing posts with the Local API by @ChunkyProgrammer in #7728
- Add keyboard shortcuts to go to the next or previous item while viewing playlists on the watch page by @im-jking in #7593
- Add an option to the Parental Control settings to hide the video uploader on the watch page by @DontBlameMe99 in #7514
- Show a popup in the player when rewinding or fast forwarding by @caetano-dev in #7729
- Add an option to minimise to the system tray on Windows and Linux by @Devenor in #6915
- Show liked by uploader on nested comments by @ozrendev in #7926
- Transform in-app URLs into YouTube URLs when dragging them by @absidue in #7970
- Support exporting single playlists as a list of video URLs by @absidue in #8054
- Show player controls on keyboard interaction by @caetano-dev in #7757
- Add username and password fields for proxies support by @Vaipex in #7996
- Add a "New Window" button to the tray menu by @Devenor in #7995
- Add Catpuccin Latte Theme by @ozrendev in #7943
- Add support for importing and exporting YouTube and FreeTube search history by @absidue in #8237
- Add a share button to posts by @aditya0155 in #8317
- Add support for exporting watch history in YouTube's JSON format by @absidue in #8323
- Support exporting single playlists in YouTube's CSV format by @absidue in #8430
- Add a "Show All Windows" button to the tray menu by @absidue in #8494
- Implement YouTube's SABR by @PikachuEXE in #8047
- Add button to open live YouTube's live chat popup in the browser by @ozrendev in #8278
- Add support for showing premier videos in the Up Next section by @absidue in #7848
Fixes
- Prevent scrolling inside a prompt from scrolling the page behind it by @antoniosarro in #6698
- Fix video pausing when saving a screenshot to the default folder by @absidue in #6721
- Fix layout issues caused by videos with very long titles in the Up Next section by @ozrendev in #6731
- Fix incorrect 'Enter' behaviour when using IME input by @j-nava in #6799
- Fix search history texts overflowing for long search terms by @ozrendev in #6728
- Fix Matrix URLs by @efb4f5ff-1298-471a-8973-3d47447115dc in #6891
- Fix loading the community tab on channels with the Invidious API by @ChunkyProgrammer in #6933
- Fix CTRL+click to reset playback rate not working by @absidue in #6943
- Fix search suggestions erroring with long search queries by @absidue in #6955
- Fix layout issues on the About page on smaller screens by @NeonMan5311 in #7012
- Fix being able to have duplicate keyword search history due to spaces by @PikachuEXE in #7110
- Fix images not showing up occasionally because of YouTube ratelimits by @absidue in #7151
- Fix playback rate handling while loading/buffering by @absidue in #7178
- Fix live streams not working on the local API by @absidue in #7233
- Fix the channel name not showing up on the channel home tab by @absidue in #7232
- Fix shorts not being imported from FreeTube playlist exports by @absidue in #7083
- Ensure there is at most one power save blocker per open window by @absidue in #7247
- Pause player when opening recommended video in external player by @absidue in #7387
- Fix opening links in new windows not working correctly by @absidue in #7417
- Fix channel about tab not showing any information with the Local API by @absidue in #7446
- Fix translations with broken placeholders by @absidue in #7474
- Fix parsing related channels without a subscriber count on the channel home page by @absidue in #7486
- Fix the FreeTube logo now showing up on the taskbar on Linux by @absidue in #7392
- Fix playlist videos disappearing when sorted differently by @absidue in #7490
- Fix the profile selector not closing when selecting a profile in the profile selector by @PikachuEXE in #7419
- Fix Alt+D not focusing the main search field on macOS by @PikachuEXE in #7448
- Fix opening URL in a new window restores main window on Windows by @PikachuEXE in #7489
- Fix livestreams not being labelled as live on the channel home tab by @ozrendev in #7595
- Fix some search suggestions being treated as search history by @caetano-dev in #7721
- Fix Change Media Formats being cut off when the Hide Sharing Actions setting is enabled by @caetano-dev in #7726
- Fix layout issues with the watched progress bar for videos that are only 1 second long by @caetano-dev in #7727
- Fix scroll to seek/change volume/playback rate changing too fast on touchpads by @PikachuEXE in #6666
- Fix the Region for Trending setting showing the wrong value when the Settings page is set as the Default Landing Page is set to the Settings page by @caetano-dev in #7704
- Fix search suggestions being cut off when selected with keyboard keys by @caetano-dev in #7734
- Fix the extended navigation menu not closing on smaller screens by @caetano-dev in #7725
- Fix selecting a new quick bookmark playlist by @absidue in #7803
- Respect watch history setting when opening in a video in an external player by @absidue in #7853
- Fix "Show Added Items" not working for "Hide Videos from Channels" by @absidue in #7854
- Fix the playback rate being reset when video ends by @caetano-dev in #7718
- Fix the full screen button not showing up for live streams in the player by @absidue in #8065
- Handle videos without a view count in the Up Next section by @absidue in #8066
- Fix not being able to add videos to playlists by @PikachuEXE in #8082
- Fix the icon colors for SponsorBlock categories by @efb4f5ff-1298-471a-8973-3d47447115dc in #8108
- Fix importing and exporting data after the Electron 38.2.0 update by @absidue in #8106
- Fix URL deciphering on Windows in development mode by @PikachuEXE in #8134
- Handle videos in the Up Next section that are missing the published text and view count by @efb4f5ff-1298-471a-8973-3d47447115dc in #8170
- Fix toasts with a timeout of 0 being displayed for the three second default by @PikachuEXE in #8168
- Fix the behavior of the skip frame keyboard shortcuts by @efb4f5ff-1298-471a-8973-3d47447115dc in #8200
- Clean up corrupted database data automatically instead of crashing by @absidue in #8202
- Fix not being able to hide custom external player arguments by @ozrendev in #8232
- Fix rounding issues in the fast forward/rewind popup in the player by @ozrendev in #8236
- Fix the chapter view on the watch page not scrolling to the current chapter when it is opened by @PikachuEXE in #8242
- Fix the view comment replies text being squashed together after the Vue 3 upgrade by @PikachuEXE in #8210
- Fix the playlist view on the watch page not scrolling to the current video when it loads by @PikachuEXE in #8239
- Fix playlist progress bar preview not working with the Invidious API by @PikachuEXE in #8245
- Fix the published dates on Up Next videos with the Invidious API by @absidue in #8251
- Fix not being able to open a search in a new window from the main search bar by @PikachuEXE in #8254
- Fix incorrect window sizing and positions on Linux wayland by @absidue in #8238
- Fix the uploader subscription count not showing up on watch page with the Invidious API by @PikachuEXE in #8255
- Fix layout issues with long playlist names on the channel home tab by @ozrendev in #8275
- Fix video view counts not showing up on the playlist page with the local API by @absidue in #8290
- Fix layout issues on the Settings page after the Vue 3 migration by @absidue in #8292
- Fix windows not showing up on Linux wayland by @absidue in #8294
- Fix the spacing between playlist metadata on the playlist page by @absidue in #8311
- Fix number of videos to be added to playlist by @ozrendev in #8262
- Fix playlist page width & long playlist name handling by @PikachuEXE in #8313
- Fix view count with RSS feeds by @absidue in #8328
- Fix watch page locking up on live streams by @absidue in #8331
- Fix channel thumbnail on hearted community post comments by @absidue in #8356
- Work around the back button not updating the window title by @absidue in #8357
- Fix Allow Adding Duplicate Videos toggle when adding videos to playlist by @caetano-dev in #8388
- Add , and dir="auto" to text that may not match the display language by @absidue in #8365
- Fix DeArrow thumbnails for shorts getting stretched by @absidue in #8434
- Fix refresh button to handle
ctrl+rshortcut on subscription, trending and most popular pages by @efb4f5ff-1298-471a-8973-3d47447115dc in #8475 - fix: video player playback rate by @lukasstorck in #8407
- Fix channel collaboration video links by @PikachuEXE in #8276
- Decipher the live HLS manifest URL by @absidue in #8582
- Support partial parsing for broken video links by @absidue in #8611
- Prompt for default screenshot folder when it is unset by @absidue in #8581
- Fix player full screen causing the app to start in full screen by @absidue in #5138
- Reuse a single PO-token session with data cleanup by @absidue in #8669
- Fix playing wrong item after deleting first item in playlist by @PikachuEXE in #8612
- Fix switching from legacy to audio format doesn't select correct audio track by default by @PikachuEXE in #8674
- Fix the proxy test by stripping the request headers by @absidue in #8704
- Fix using Shift on watch page by @efb4f5ff-1298-471a-8973-3d47447115dc in #8491
- Trim video titles with the local API to avoid breaking the databases by @absidue in #8354
- Workaround for electron/electron#49253 by @Devenor in #8714
- Fix Up Next section missing upload date by @TaranT1 in #8773
- Fix age-restricted videos breaking the watch page by @absidue in #8831
- Respect Hide Sharing Actions setting for community posts by @aditya0155 in #8891
- Fix menus on small player sizes by @absidue in #8860
- Ensure linguistic alphabetical order for profile names by @caetano-dev in #8869
- Fix broken URLs not being treated as search queries by @absidue in #8900
Changes
- add skip to previous/next video buttons in media player by @lukasstorck in #8285
- Enable Breton Language by @efb4f5ff-1298-471a-8973-3d47447115dc in #7608
- Add icons to page headers + subscription tabs by @ChunkyProgrammer in #6669
- Hide Search Bar and Filter when less than two content in Add Video to Playlists , History, Channels by @anurag2787 in #7134
- Update side-nav-colors of black and dracula theme by @efb4f5ff-1298-471a-8973-3d47447115dc in #6673
- Local API: Improve audio quality by sorting streams, highest bitrate first by @AlyoshaVasilieva in #6807
- Replace icns Mac icon with HQ one by @efb4f5ff-1298-471a-8973-3d47447115dc in #7212
- Change Close button color to white in the Search Filters modal by @efb4f5ff-1298-471a-8973-3d47447115dc in #7752
- Do not use title color as accent color by @DontBlameMe99 in #7141
- Change Player icons by @efb4f5ff-1298-471a-8973-3d47447115dc in #8057
- Hide Proxy password by @efb4f5ff-1298-471a-8973-3d47447115dc in #8102
- Use shadow color for light themes by @DontBlameMe99 in #7142
- Use
maxVideoPlaybackRatefor the max value of Default Playback Rate by @efb4f5ff-1298-471a-8973-3d47447115dc in #7184 - Remember playlist sort by @anurag2787 in #7139
- Adjust default playback rate to the maximum value when it is too large by @absidue in #7221
- IV RSS Subscriptions: properly detect
error channelsby @ChunkyProgrammer in #4407 - Rename Community to Posts by @efb4f5ff-1298-471a-8973-3d47447115dc in #7349
- Hide member only videos (Local API) by @PikachuEXE in #7208
- By default disable Check for Latest Blog Posts by @efb4f5ff-1298-471a-8973-3d47447115dc in #7840
- By default disable Fallback to Non-Preferred Backend on Failure by @efb4f5ff-1298-471a-8973-3d47447115dc in #7903
- Update Sort by strings by @efb4f5ff-1298-471a-8973-3d47447115dc in #8109
- Hiding Watched Videos on Channel View by @palharesf in #7366
- [Enhancement] Hide home channel tab when no content is available. by @caetano-dev in #7730
- Change Settings order by @efb4f5ff-1298-471a-8973-3d47447115dc in #7722
- Move General section within the Distraction Free Settings to top by @efb4f5ff-1298-471a-8973-3d47447115dc in #7719
- Mark video as watched when opening external player from the watch view by @Hoverth in #7707
- Show more information on long playlists. by @caetano-dev in #7804
- Hide more Invidious specific functionality when backend fallback is disabled by @absidue in #7964
- [Feature]: Hide videos immediately when marking as watched by @palharesf in #7866
- Move Loop to Overflow menu by @efb4f5ff-1298-471a-8973-3d47447115dc in #8049
- Update next video countdown toast to be refreshed per second instead of using workaround by @PikachuEXE in #8103
- Hide active subscriptions wrapper on mobile display and center bottom SideNav items by @Adr1GR in #8133
- Remove Hide Channel from the kebab menu on the Subscriptions page by @ozrendev in #8175
- Embed update information in x64 AppImage by @TheAssassin in #8153
- Change containing text input limit by @efb4f5ff-1298-471a-8973-3d47447115dc in #8174
- Remove broken restart window keyboard shortcut by @absidue in #7281
- Add Hide channels based on text by @ozrendev in #7948
- Change clear filter button from text to icon by @ozrendev in #8205
- Change profile icon to include lowercase letters by @efb4f5ff-1298-471a-8973-3d47447115dc in #8253
- Change Freetube Logo App text color for dark and black themes by @ozrendev in #8288
- Replace broken trending with a local API only equivalent by @absidue in #8289
- Always use SABR, remove experimental setting by @absidue in #8542
- Remove broken download functionality by @absidue in #8543
- Update to Vue 3 by @absidue in #8094
- Update about us page translation to make them translable with non-English grammar by @PikachuEXE in #8615
- Show more detailed error when decipher script throws an error by @MarmadileManteater in #8789
- Use the native
<details>and<summary>elements for the chapters by @absidue in #7959 - Wrap interactive FontAwesomeIcons in actual buttons by @absidue in #8206
- Wrap interactive FontAwesomeIcons in FtInput in actual buttons by @absidue in #8324
- Pass button icon and label through props in FtShareButton by @absidue in #8346
- Improve the accessibility of the component by @absidue in #8383
- Update search filters in line with YouTube changes by @absidue in #8812
- Re-order search filters to match YouTube.com by @absidue in #8879
- Temporarily patch out the broken auto quality selection by @absidue in #8908
- Remove blog functionality as it no longer exists by @absidue in #8907
- Ensure popup does not obstruct video title in full screen by @caetano-dev in #8870
- Dozens of PRs with assorted performance improvements by @absidue
- Dozens of PRs with assorted security improvements by @absidue
- Dozens of PRs with assorted code refactors by @absidue
- Dozens of PRs with assorted component migrations to the composition API by @absidue, @MarmadileManteater and @ChunkyProgrammer
Miscellaneous
- Dependencies updated to their latest versions on March 27, 2026
- Translations updated via Weblate on March 31, 2026
- Dozens of PRs with assorted code cleanups by @absidue @PikachuEXE @efb4f5ff-1298-471a-8973-3d47447115dc
New Contributors
- @antoniosarro made their first contribution in #6698
- @ozrendev made their first contribution in #6731
- @jn64 made their first contribution in #6810
- @AlyoshaVasilieva made their first contribution in #6807
- @j-nava made their first contribution in #6799
- @NeonMan5311 made their first contribution in #7012
- @anurag2787 made their first contribution in #7134
- @rugabunda made their first contribution in #7049
- @palharesf made their first contribution in #7366
- @caetano-dev made their first contribution in #7730
- @im-jking made their first contribution in #7593
- @Devenor made their first contribution in #6915
- @kokomo123 made their first contribution in #8041
- @Vaipex made their first contribution in #7996
- @Adr1GR made their first contribution in #8133
- @TheAssassin made their first contribution in #8153
- @aditya0155 made their first contribution in #8317
- @lukasstorck made their first contribution in #8285
- @saxc made their first contribution in #8529
- @radmorecameron made their first contribution in #8652
- @TaranT1 made their first contribution in #8773
Full Changelog: v0.23.15-beta...v0.24.0-beta