github mesamirh/MovieBox-Tui v0.1.15

latest releases: v0.1.26, v0.1.25, v0.1.24...
one month ago

Added

  • MovieBox MPEG-DASH Stream Playback:
    • Implemented visitor login authentication with JWT session tracking and atomic disk persistence (~/.cache/moviebox-tui/moviebox_session.bin).
    • Added CloudFront DASH manifest resolution (index.mpd) labeled with [Multi] badge in stream listings for multi-resolution playback (1080p, 720p, 480p).
    • Forwarded authentication headers and mobile User-Agent to mpv, IINA, and VLC for authenticated CloudFront DASH demuxing.
  • Seekable 4KHDHub Stream Resolution:
    • Prioritized seekable Cloudflare R2, S3, and FSL stream mirrors (HTTP 206 Partial Content) over attachment downloads.
    • Added automatic unwrapping of base64 watch-online redirect URLs and expanded HubCloud button selectors.
    • Concurrently probe resolver mirror candidates in chunks of 3 with a 4-second timeout, filtering expired or broken links.
  • Interactive Settings Hub (/settings):
    • Added a unified 4-tab modal (General, Content Modes, Appearance, Maintenance) for media player selection, download directory configuration, live theme palette preview, and provider toggles.
  • TUI Layout & Ergonomics:
    • Added /exit slash command (with /quit and /q aliases) to exit and restore the terminal directly from the search prompt.
    • Added direct watch history resume on Space / P for the recorded season and episode.
    • In-place provider switching (Ctrl+P) on the Details screen to re-query titles without returning to the landing screen.
    • Multi-Esc navigation: first Esc returns focus to the search bar; second Esc clears the query and returns to the home landing.
    • Added fluid 10-frame Unicode Braille loading spinners (⠋⠙⠹...) with ASCII fallbacks.
    • Grapheme-cluster-safe text input (TextInputBuffer) across search, TV playlist, and addon inputs with Ctrl+W, Ctrl+U, Delete, and Home/End support.
    • Added 4-tier responsive stream table layout and dynamic single-column fallback for narrow terminals (<85 cols).
    • Added Kitty keyboard protocol support (DISAMBIGUATE_ESCAPE_CODES, REPORT_EVENT_TYPES) for lower latency input on supported terminals.
    • Added terminal theme autodetection using OSC 11 background luminance queries, with NO_COLOR override support.

Changed

  • Unified Favorite Keybinding: Standardized favorite toggling across all screens exclusively on f / F.
  • Search & Landing UX:
    • Anchored search bar at row 0 across empty, loading, and zero-results states to eliminate layout shifting.
    • Structured zero-results and query error screens with actionable guidance shortcuts ([Ctrl+P] Switch Provider, [r] Retry, [Esc] Back).
    • Enclosed landing favorites list in an aligned bordered card.
  • Streams Table Display:
    • Replaced non-existent stream duration column with source and uploader columns, expanding room for codec and media tags.
    • Grouped secondary stream audio/video codec tags (DV, ATMOS, HEVC) with subtle separator points.
    • Isolated stream row selection highlight so background styling applies exclusively to the active stream row rather than table headers.
  • MovieBox Client Spoofing: Updated client identity headers to APK v4.0.01 to ensure backend compatibility and avoid upgrade notice videos.
  • Search Prefetching: Bounded initial search prefetching to visible viewport bounds to reduce initial network requests.

Fixed

  • Stream Playback & Resolver State:
    • Fixed an issue where timed-out or failed stream resolutions left the playback state locked, preventing subsequent playback attempts.
    • Fixed empty stream panel click focusing the pane without inadvertently triggering playback of index 0.
    • Prevented transient "No stream sources found" flash while metadata or streams are loading.
  • Metadata & UI Isolation:
    • Guarded search preview metadata and details merging with strict provider and item ID checks, preventing stale metadata leakage when navigating quickly.
    • Suppressed Sixel, Kitty, and iTerm2 poster graphics while modal dialogs or search dropdowns are open to prevent graphic bleed-through.
    • Fixed poster placeholder widget incorrectly drawing over loaded images on the results screen.
    • Fixed text wrapping panic on multibyte / CJK characters during title year extraction.
  • Cross-Platform & Installation:
    • Windows: Fixed self-update batch script losing staged binary on process exit, preserved leading backslashes on UNC paths, and sanitized NTFS forbidden characters in tracker state filenames.
    • Android (Termux): Added fallback directory resolution for config, cache, and data paths, and added architecture guard preventing incompatible glibc Linux ARM64 binaries from overwriting Termux installations.
    • DNS: Replaced hardcoded /etc/resolv.conf requirement with custom resolver querying OS DNS first and falling back to public DNS (Cloudflare, Google, Quad9) on zero-config platforms.
    • Installers: Hardened path quoting, signal handling, and TLS 1.2 negotiation in install.sh and install.ps1.

Performance

  • MessagePack Binary Disk Cache (src/cache.rs): Replaced raw JSON disk caching with binary MessagePack serialization (rmp-serde) with magic signature MBC1, versioned envelopes, and automatic migration from legacy JSON caches.
  • Zero-Copy IPTV M3U Parser (src/providers/tv/parser.rs): Converted playlist attribute parsing to single-pass slice scanning, eliminating bulk heap allocations on large playlists.
  • Scraper Efficiency (src/providers/fourkhdhub/): Precompiled static CSS selectors using LazyLock<Selector> across scraping paths.
  • Connection Pooling & DNS (src/net.rs): Shared static DNS resolver cache and tuned HTTP connection pool settings (tcp_nodelay, keepalive, idle timeouts).

Removed

  • Removed deprecated JSON conversion adapters and untyped serde_json::Value service endpoints in favor of strongly typed domain structs.
  • Removed redundant [o] Open With and [s] Subtitles Details shortcuts in favor of /settings media player selection and automatic subtitle loading.
  • Removed obsolete * favorite shortcut in favor of f / F.

Don't miss a new MovieBox-Tui release

NewReleases is sending notifications on new releases.