REX Player v5.5.0 is here! 🎉
This release adds pinning folders and media to the top of your browser, manual bookmarks alongside chapters, Dynamic Ambient Mode, instant player controls, a faster Shorts feed, file dates in Media Info, and fixes for offline playback, navigation crashes, and update checks.
🔥 Pin Folders and Media
Pin any folder, video, or audio file and it stays at the top of the browser, right where you need it. Pinned items keep their own order, wear a pin badge on the thumbnail, and follow renames and deletions on their own (#466).
🔥 Dynamic Ambient Mode
Ambient mode now creates a live glow around your video that follows zoom, pan, and aspect ratio changes, with smooth transitions between scenes and battery-efficient rendering (#267, #268).
✨ New Features
- Pin Folders and Media: Pin folders, videos, and audio files from the selection-mode overflow menu so they always surface at the top of the browser. Pinned items keep their pin order regardless of your active sort, and pins follow renames, are dropped on delete, and are cleaned up when the file goes missing (#466).
- Separate Pins Per View: Optionally keep folder pins isolated to the view you pinned them in. Media pins are always shared across the tree, video list, and media library (#466).
- Manual Bookmarks: Create your own bookmarks (pins) on any video. They merge with embedded chapters into a single timeline in the Chapters sheet and show up on the seek bar like chapter boundaries. Tap one to jump there exactly, double-tap skip lands on them too, and the Chapters/Bookmarks button is always available, so you can add a first bookmark to a file with no chapters at all (#469).
- Instant Controls: Player controls now appear the moment you touch the screen instead of after the double-tap window, and hide just as immediately. If you prefer the old wait so a double-tap seek never flashes the controls, turn off Settings > Gestures > Instant controls.
- Subtitle Pinch to Scale: Drag subtitles up or down and pinch with two fingers to scale their size. Pinch-to-resize can be toggled in Settings and the More sheet (#398, #434). (by @pigmaos)
- Redesigned Network Tab: A Material 3 Expressive layout with a streamlined stream URL field and combined Paste/Play button. Tap recent links to play them or long-press to copy. Connections are grouped into cards with prominent Connect/Browse actions. Long-press a connection to connect, edit, enable auto-connect, or delete it.
- Alternate Audio Languages: Multi-language yt-dlp videos list alternative audio tracks under "Other audio languages". Pick a language and it is fetched on demand, while the original audio stays selected and nothing extra is downloaded ahead of time.
- Network File Sorting & Hidden Files: Sort remote files naturally by name, modification date, or size, with folders always first. Optionally hide dotfiles and supported SMB/WebDAV hidden and system files (#440). (by @asim-sde)
- Bottom Bar Playback Controls: Option to move the playback controls row to the bottom of the player (#417).
- File Dates in Media Info: Media Info now lists the file's dates (#465). (by @quirkyfiesta-glitch)
- Subtitle Font Import: Import multiple TTF and OTF font files with validation and duplicate detection. Importing a single font applies it to subtitles immediately (#402). (by @pigmaos)
- Long-Press Speed Memory Modes: Long-press the speed button to access multi-speed controls and choose whether adjusted speed is remembered globally or per video (#460). (by @quirkyfiesta-glitch)
- Show Play in Header: Hide the floating Play button and show a Play icon in the top bar across supported browser views.
- Borderless Button Indicator: When player button backgrounds are hidden, active Speed, Zoom, Flip, and A-B Loop buttons display a colored indicator beneath the icon.
- Independent Sort Orders: Each sorting option remembers its own ascending or descending preference.
- More Sheet Memory: The More sheet reopens on the tab you last used, and the Sort dialog remembers whether its Filters section was expanded or collapsed.
- Preview Build Changelog: Preview builds show commits between your build and the newest one, with clickable commit and issue links and an "N more commits" note when more than 20 commits are available.
- REX-Ytdlp Update Checker: The About screen can check for companion add-on updates when the add-on is installed, with auto-check on startup and a manual check option on the yt-dlp settings page.
- Settings Cleanup: Preferences have been regrouped into clearer sections, with additional options available through settings search.
- Translations: Updated Arabic strings (by @maqu630).
⚡ Improvements & Optimizations
- NEW Label Repositioned: The NEW tag on media cards moved to the top-end corner so it no longer collides with the pin badge.
- Faster Shorts: The Shorts tab now opens without scanning your entire library first. Videos appear in the feed as they are found instead of waiting on a full probe of every file, and the feed no longer jumps back to the start when more videos load. An explicitly opened video is pinned to the front (#450).
- Faster Network Browsing: Network thumbnails are cached per connection and downloaded once per size, then reused across views to reduce bandwidth usage and waiting (#442). (by @asim-sde)
- Lighter Thumbnail Loading: Now Playing reuses thumbnails already indexed by the browser instead of extracting them again (#396, #455). (by @quirkyfiesta-glitch)
- Instant Shorts: The feed starts streaming results as soon as they are discovered, so the tab opens in seconds on large libraries (#450).
- Consistent Navigation: The bottom navigation bar now uses a uniform 64dp height with aligned items.
- Smoother Resume Animation: The resume and watched-progress indicator now glides smoothly (#456). (by @quirkyfiesta-glitch)
- Reduced yt-dlp Downloads: Alternative audio tracks are no longer downloaded all at once.
🐛 Stability & Bug Fixes
- Back Navigation Crash: Fixed a crash on an empty back stack. Every back and up action now keeps the root screen in place, and back on the root simply moves the app to the background (#459).
- Offline Playback Without Network Permission: Local files no longer crash the player when the Network permission is revoked, such as with the GrapheneOS Network toggle. Network-only features like SMB playlists, network subtitles, thumbnails, and the network browser now report themselves as unavailable instead of failing (#433).
- Seekbar Scrubbing: Fixed seekbar freezing, jitter, and unwanted pauses while scrubbing.
- Screen Rotation: Changing aspect ratio no longer resets screen orientation, and manual rotation is respected.
- Subtitle Gestures: Fixed subtitle tapping and swipe-to-seek gestures. (by @pigmaos)
- Duplicate Videos After Rename: Fixed duplicate video entries and stale browser index data appearing after renaming a video (#418). (by @pigmaos)
- External Subtitle Indicator: Fixed missing indicators for matching external subtitle files (#429). (by @pigmaos)
- Now Playing Thumbnails: Fixed thumbnail loading failures and cache collisions between videos (#396, #455). (by @quirkyfiesta-glitch)
- Recently Played: Fixed videos being incorrectly classified as audio in history.
- Double-Tap Chapter Skip: Restored as an optional preference under Gestures, keeping single taps instant by default (#426).
- Seek Release-to-Cancel: Fixed seek-release cancellation when dragging to the very beginning of a video.
- Floating Play Button: Now consistently clears the navigation bar and mini player.
- Player Layout: Fixed excessive spacing beneath bottom-bar controls, title bar sizing, and the three-dot menu position in portrait mode.
- Language Picker: Fixed untranslated languages appearing when the app language isn't English.
- Update Popup: Fixed incorrect asset sizes, and improved preview changelog readability, issue-link emphasis, and dialog sizing.
- RTL Icons: Fixed subtitle font menu icons following the wrong direction in right-to-left languages.
- Update Checks: Automatic update checks are now limited to once per hour, so restarting the app no longer burns through the GitHub API rate limit and silently stops update notices. Manual checks always run, and an already-known update now still shows if you reopen the app within the hour, while ignored versions stay ignored.
- Controls During Gestures: OSD pills stay clear of the controller during gestures (#470). (by @quirkyfiesta-glitch)
- Tap and Gesture Handling: Fixed several chrome glitches, including a triple tap on the centre leaving the controls in the wrong state, a slow second tap losing its double-tap seek, a tap on the other side right after a seek getting no feedback, and the controls inverting after a double-tap play/pause. Dragging or long-pressing no longer leaves the controls toggled.
- Pin Badges: Fixed pinned media showing no badge in the media library (#466).
- Accurate Tap Timing: Tap timing now uses a monotonic clock, so system clock changes can no longer break or fake a double tap.
👥 Contributors
Thanks to external contributors @asim-sde (#440, #442), @pigmaos (#398, #402, #418, #429, #434), @quirkyfiesta-glitch (#396, #455, #456, #460, #465, #470), and @maqu630 for their contributions to this release!
Note for yt-dlp users: Alternate audio languages require the updated REX-Ytdlp companion add-on. You can download or update it from the REX-Ytdlp Releases page.
Checksums
| Variant | SHA-256 |
|---|---|
| arm64-v8a | 429a56fc491bfc36b697158c1a1792b14cae4201fea50720f8018c138e81f3b3 |
| armeabi-v7a | 9df33858684cfdae75c599fa3a3268f7151ea550b5560d6cde40455b1da33dd7 |
| Universal | a60213a9bcdd0c993c6624ad75d055e670f2b21e55c7907505d4889274b5eb45 |
| x86 | 7aec1ff246686401c14b8f3540f3494c967cb18c4a2334cdcf28f9b09e44746c |
| x86_64 | 37b04fdffff6e90193cd2202e8e1314f0aa43731a6fee28c8bdcc31d752484a6 |