Warning
This nightly build is intended for testing only and may be unstable. Regular users should use the latest non-prerelease.
Automated development build from commit 63f8898.
Changelog since the latest release
Highlights
- The app takes on Material 3 Expressive: rounder and more consistent corners, buttons and controls that change shape when pressed, springier motion, bolder titles, and a redesigned Tab Organizer and Sync activity and device lists. Custom themes keep working. (#2662, #2691)
More improvements
- Desktop: Videos in the watch page playlist have a one-tap Remove from playlist button on their thumbnails again. Add to playlist moved into each video's menu. (#2603, #2620)
- macOS, Windows: Middle-clicking a link to a website no longer brings an open browser to the front, so you can keep using OpenTubeX. (#2601, #2617)
- The shortcut buttons at the top of the mobile video menu now show labels under their icons. (#2623)
- A new layout setting hides in-app notifications that only confirm an action or report a status. Errors, warnings, reminders, and notifications with an action like Undo still appear, and background progress shows in the progress bar. (#2606, #2618)
- With the Local API, Up Next now shows when a video is a collaboration between several channels. Middle-clicking a collaboration's channel names now lists the collaborators instead of doing nothing. (#2605, #2616)
- The video description's Show more and Show less controls are now a full-width button at the bottom of the card instead of underlined text. (#2625)
- Long video and playlist titles in lists and grids now stop after two lines with an ellipsis, so cards line up more evenly. Hover over a title to see all of it, or turn off Limit titles to two lines in Appearance settings. (#2602, #2622)
- In the grid layout of the player menu, entries that open more choices now have a folded corner, so you can tell them apart from entries that act right away. (#2631)
- The RSS feed manager can now browse RSSHub, so picking an instance, a service and a username fills in the feed address. Feeds from sites that ask for a browser check now say so. (#2635)
- Linux: 32-bit ARM (armv7l) Linux builds are no longer available, because Electron no longer supports them. 64-bit ARM (arm64) builds are still available. (#2621)
- macOS: OpenTubeX now requires macOS 13 or later, because its Electron runtime no longer supports macOS 12. (#2621)
- Desktop: The Material accent color picker now offers your system accent color, and the app follows it when you change it. (#2626)
- Videos from other sites now open and close their side panels with the same animation as the watch page, offer a transcript when they have captions, and use sheets for the chat and description on phones. (#2639)
- The quick bookmark, save, and video file icons, and the bookmark icons in the command palette and profile settings, are now outlined to match the other icons. (#2549, #2629)
- Items on the RSS tab now have a context menu to mark them as watched or fully watched, download them, and copy their link. (#2630)
- Playlists in list view now show each video's number on its thumbnail, as the playlist beside the player does, and the reorder handle is centered. (#2610)
- The fullscreen actions customizer now marks actions that other settings turn off and leaves them out of the preview. The player customizer previews the player in fullscreen while playing and paused. (#2627)
- The buttons to view, hide, and load more comments now look like buttons instead of underlined text. (#2619, #2624)
- Watch progress of media opened by link, such as videos from other websites, now syncs between your devices along with your history. (#2637)
- Delete Old History on the History page can now delete your entire watch history with the new "All time" option. (#2545, #2650)
- The new Video descriptions setting in Distraction Free settings and Quick Settings hides descriptions, keeps them collapsed, or opens them expanded. (#2502, #2651)
- RSS feeds can now refresh automatically on an interval, with progress and cancellation like subscription refreshes. New items get a new content dot and show in the New feed, where you can mark them as seen or unseen from their menus or the RSS tabs, and the marks sync with history. (#2653, #2659, #2671)
- Posts now say why their attached video is hidden: because it is members-only or because its title contains hidden text. (#2656)
- Large watch histories and playlists are faster to edit: removing videos, adding videos to big playlists, marking many videos as watched, syncing history, and the hourly history cleanup all do much less work. (#2642)
- OpenTubeX no longer contacts api.invidious.io at startup unless it uses a random Invidious instance. (#2642)
- Checking for updates downloads far less data, about 0.4 MB instead of 5 MB when you're up to date. (#2642)
- Android: Search suggestions and other requests that are no longer needed now stop downloading right away instead of continuing in the background. (#2643)
- Exporting and importing large backups no longer freezes the app while the archive is created or read. (#2643)
- Linux: Restoring a minimized window on KDE Plasma Wayland now ends automatic picture-in-picture almost instantly instead of up to a second later. (#2643)
- The player's options menu, and its full-screen sheet on phones, now fade in and out, and opening a submenu, and going back, zooms the new view into place. (#2660, #2671, #2684)
- Downloading many history changes with encrypted sync no longer slows the app down. (#2644)
- OpenTubeX starts faster and stays responsive while loading a large watch history. (#2644)
- Long YouTube playlists open and play without first downloading every page. Later pages load when playback, the playlist panel, or the progress bar reaches them. (#2644)
- The watch queue and transcripts of long videos open and scroll smoothly even with hundreds of queued videos or thousands of transcript lines. (#2644)
- Twitch live chat uses less CPU in busy channels. (#2644)
- macOS, Windows: OpenTubeX is now available through Scoop, and nightly builds through Scoop and Homebrew. The update prompt shows the matching update command for these installs.
- In the phone layout, the description now opens from a button like Comments, with a two-line excerpt and chips for its music, games, tags, and content labels. (#2667)
- Playlist total time now uses the same timestamp format as videos, including days for totals of 24 hours or more. (#2673, #2675)
- The RSS tab now reports feeds that could not be refreshed in a banner that you can close. It stays closed until the set of failed feeds changes. (#2670)
- Video descriptions that only hold a little metadata, such as an auto-dubbing notice, a license, or a few tags, now show in full without a Show more button and without extra space above them. (#2668)
- The Ocean themes are now Signal Light and Signal Dark, matching the website's new look. Their accent color defaults to red and can be changed to a preset, a custom color, or your system's accent color. (#2678)
- A bell in the top bar keeps your live stream reminders, new uploads, and automatic downloads, which appear in the app instead of as system notifications while you use OpenTubeX. A new setting in General switches notifications to system only or off. (#2587, #2646)
- Desktop: The chapters panel next to the video now has a resize handle like the playlist panel, so you can drag it taller to see more chapters at once. It remembers the size you choose. (#2680, #2686)
- The cast menu lists the devices of every casting protocol together and, while casting, becomes a remote with seek and volume sliders, playback buttons, and subtitle choices. (#2682)
- More menus open as bottom sheets on phones, including the channel setting, cast, subscription settings, comment filter, and "More options" menus. (#2682)
- A channel's subscription settings use chips you can toggle, keep the notification choices visible while the bell is off, and set the daily video limit with a stepper. (#2682)
- Dialogs, the command palette and the Tab Organizer now fade away when they close instead of disappearing at once, and the Tab Organizer also animates in when it opens. (#2688, #2689)
Fixed bugs
- Android, iOS: Tapping Next or Previous in the player controls switches to the next or previous video in a playlist or queue again. (#2608, #2614)
- The find bar's search field shows a focus border. (#2612)
- Android: A faint gray strip no longer flashes along the bottom of the screen while scrolling. (#2607, #2615)
- The update prompt shows the screenshots in the release notes again, in the version that matches your theme. (#2609)
- Captions grow and shrink with the player, so they cover the same share of the video in a window, in fullscreen, and in the mini player. Secondary captions keep the same distance from the edge as the main captions. (#2628, #2632)
- Android: Turning on Always show scrollbars right after scrolling no longer leaves the page scrollbar hidden. (#2640)
- Desktop: With tabs on the side, the Shorts player no longer leaves an empty strip below it. (#2640)
- Desktop: Pressing Escape now closes the live chat and transcript sheets in narrow windows, even when a button in their header has focus. (#2639)
- Switching theater mode again while its animation is still running no longer makes the player and side panels jump. (#2639)
- Super Chats in the live chat now fade out fully at the top and bottom edges instead of keeping a sharp strip on one side. (#2633)
- New upload notifications and scheduled video reminders now show original video titles when untranslated video text is preferred in the entire app. (#2611)
- Grayscale mode now also covers the video player in fullscreen, dialogs, and tooltips. (#2647, #2648)
- Links without a video, such as Instagram photo posts, now explain why they can't play instead of reporting that no playable formats were found. (#2652)
- SponsorBlock labels on watch page playlist and queue thumbnails no longer cover the video length. They show only their icon, which names the category when you hover over it and in a dialog when you click or tap it. (#2655, #2671)
- The share, pin, and subscribe buttons on channel pages sit closer together and no longer leave a large gap above the channel search. (#2658)
- Desktop: Renaming or playing a playlist that was just deleted in another window no longer brings it back as a broken playlist that stops playlists from loading. (#2642)
- Hashtag pages load the hashtag you opened when they fall back to the other API, and switching quickly between hashtags no longer shows videos from the previous one. (#2642)
- Invidious instances with special characters such as @, spaces, or % in the username or password of their URL now sign in correctly. (#2642)
- Videos added to or removed from a playlist while you drag its videos into a new order are no longer lost or restored. (#2642)
- Importing a playlist when several of your playlists share its name now adds the videos to the playlist with the matching ID instead of the first one with that name. (#2642)
- A failed search history import no longer erases your existing search history. (#2642)
- Desktop: If saving synced tabs fails, your saved tab sessions are kept and the sync reports the error instead of claiming success. (#2642)
- Android, Desktop: Downloaded videos now start playing within a few seconds when YouTube can't be reached, even while the rest of the internet works. Their details fill in once YouTube responds again. (#2657)
- Android: Playback no longer crashes the app when the video server answers with a redirect or a not-modified response. (#2643)
- Desktop: Older completed, queued, and paused downloads no longer disappear from Downloads after a restart, and a download whose files can't all be removed stays listed with an error message. (#2643)
- Desktop: A missing or wrong external player now shows a message that it couldn't be started instead of crashing OpenTubeX with an error dialog. (#2643)
- Android, iOS: Live stream reminders set at the same moment are all kept instead of only the last one, and reminders for streams that already started are no longer scheduled. (#2643)
- Desktop: After a window reloads or recovers from a crash, refreshing subscriptions no longer stays stuck in progress for the rest of the session. (#2643)
- When the active profile is deleted in another window or by sync, OpenTubeX switches to All Channels instead of breaking the sidebar and top bar. (#2644)
- If profiles fail to load, your cached subscription feed is kept, and backups with an unnamed profile are rejected on import instead of stopping profiles from loading. (#2644)
- Pausing a video with Skip Silence on no longer keeps analyzing its audio in the background. (#2644)
- Subscribing or unsubscribing while a sync is running is no longer undone by that sync. (#2644)
- An open Comments sheet on narrow screens no longer closes when the transcript closes, for example when a video has no transcript available.
- Videos keep loading at their selected quality on slow or high-latency connections, instead of dropping to 360p and reloading over and over. (#2604, #2664)
- RSS feeds that loaded before no longer reload after a restart when Fetch Feed on Startup is off, and show their saved items instead. (#2665)
- Linux, Windows: The app no longer crashes when you press a menu shortcut, such as Ctrl+, to open the settings, after watching a video. (#2669)
- Android, iOS: Holding a tab to open its menu no longer leaves the action under your finger highlighted. (#2666)
- Pressing Space on the Comments, Queue, Playlist, or Description button in the phone layout opens its sheet instead of pausing or resuming the video. (#2667)
- Menus that open from icon buttons, such as Save to, open above the button when there is no room below, instead of scrolling the page. (#2679)
- Video descriptions now offer Show more when a narrower window makes them too long to show in full, and show in full again once they fit. (#2671)
- Options in the comment filter menu now highlight when you point at them or move to them with the keyboard. (#2682)
- Side panels such as comments in fullscreen now move the audio-only player aside instead of covering it. (#2690)
- Android: Opening the keyboard, for example with the channel search button, no longer scrolls the page so that the text field ends up behind the top bar. (#2694)