MovieBox-Tui

mesamirhApache-2.0活跃维护

在终端里搜索、下载并串流电影、剧集和直播电视,调用本地播放器(如 mpv)直接播放,适合喜欢命令行操作的用户。

Terminal interface to find, download, and stream movies, TV shows, and live TV using local media players.

v0.1.29发布于 2026-11-05 13:19 UTC2,815star +29 / 7 天347fork同步于 2026-11-10 17:44 UTC

怎么上手

由 README 提炼,执行前请确认
brew tap mesamirh/moviebox-tui https://github.com/mesamirh/MovieBox-Tui
brew install moviebox-tui
moviebox-tui
硬件要求按 README 说明

README 未说明显存或 GPU 要求;需本地安装 mpv、VLC 或 IINA 等外部播放器,封面图需终端支持 Kitty、Sixel 或 iTerm2 协议。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

终端里搜片、下载、播放的 TUI 工具,调用本地播放器看影视和直播

在终端里搜索、下载并串流电影、剧集和直播电视,调用本地播放器(如 mpv)直接播放,适合喜欢命令行操作的用户。

核心能力

  • 多源聚合搜索电影、剧集、动漫和 Stremio 插件
  • 支持 M3U 直播源导入、频道分类与 EPG
  • 播放前可选 4K/1080p/720p 等清晰度
  • 一键调用 mpv、VLC 或 IINA 播放并转发认证头
  • 多段并发下载,支持 HTTP Range 断点续传

容易踩的坑

DASH 下载需额外安装 yt-dlp 和 ffmpeg;封面图依赖终端图形协议,不支持时自动降级为文本;Homebrew 首次安装可能需执行 brew trust mesamirh/moviebox-tui。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.1.29
  1. v0.1.29最新正式版2026-11-05 · 2026-11-05 13:19 UTC

    Fixed

    • Providers & Stream Resolution:
      • Restored MovieBox TV series streaming by generating and attaching the official X-Client-Build APK certificate stamp with signed requests.
      • Preserved multi colon and namespaced media identifiers (such as Kitsu anime IDs) in Stremio addon stream aggregation.
      • Replaced hard assertions on HTTP client builders with safe fallbacks in MovieBox, CircleFTP, and DhakaFlix clients.
    • Networking & DNS:
      • Added runtime fallback to public DNS (Cloudflare, Google, Quad9) in FallbackResolver when primary system DNS lookup fails or is blocked by an ISP.
    • Media Playback & Sidecar Proxy:
      • Handled poisoned watchdog activity locks gracefully in the stream proxy sidecar loop to prevent unwrap crashes.
      • Standardized cross-platform temporary subtitle cleanup path joins to eliminate forward-slash path issues on Windows.
    • Test Infrastructure:
      • Synchronized environment dependent player tests with ENV_MUTEX and probed Android intent openers dynamically to eliminate parallel test race conditions.

    Changed

    • Dependencies & Build Infrastructure:
      • Upgraded unicode-width to 0.2.3, log to 0.4.35, and zip to 9.2.1 (#234).
  2. v0.1.282026-10-29 · 2026-10-29 08:32 UTC
    查看更新说明

    Fixed

    • Providers & Stream Resolution:
      • Extracted signed CDN MP4 streams from MovieBox subject detector links (/subject-api/get), restoring movie streaming and multi-resolution playback after upstream restricted play-info with deprecation clips.
      • Reported explicit error causes when MovieBox serves placeholder clips instead of generic "no streams available", and surfaced upstream HTTP failure statuses directly to the user.
    • Download Engine & Batch Queue:
      • Recorded only flushed bytes to .part.json segment progress during downloads, preventing aborted or paused workers from leaving zero-byte gaps and file corruption on resume.

    Changed

    • Dependencies & Build Infrastructure:
      • Upgraded tokio to 1.54.1, scraper to 0.29.0, lru to 0.19.0, zip to 9.1.0, sha2 to 0.11.1, open to 5.4.5, libc to 0.2.191, and serde_json to 1.0.154.
  3. v0.1.272026-10-23 · 2026-10-23 08:34 UTC
    查看更新说明

    Fixed

    • Media Playback & Subtitle Engine:
      • Removed --play-and-exit from VLC player invocations so the player stays active across adaptive and HLS chunk transitions.
      • Reset legacy Android player defaults in graphical X11 and Wayland sessions so native Linux players take precedence over external Android intent dialogs.
      • Prioritized native Linux media player paths over foreign container fallbacks on Linux systems and preserved dynamic auto-player resolution for unconfigured sessions.
    • Providers & Stream Resolution:
      • Recovered playable signed MP4 streams via /resource-position/v2 when MovieBox returns deprecation notice clips, querying exact seasons and episodes and reporting accurate file sizes.
      • Stripped the DASH Referer header on direct MP4 streams to prevent CDN HTTP 429 throttling.
      • Bumped the MovieBox stream cache schema to v2_ to discard stale cached deprecation notices.
      • Filtered out unhosted MovieBox /hls/ signed cookie targets in manifest resolution, which stops unplayable H.264 stream entries from failing with HTTP 404 during downloads or media playback.
    • Download Engine & Batch Queue:
      • Fixed season batch downloads by arming is_waiting_for_download_stream during queue steps, eliminating immediate empty-list download calls that aborted multi-episode queues.
      • Reset the download resolution state lock on 4KHDHub resolver timeouts and errors so failed mirror resolutions do not block subsequent download attempts.
      • Added sequential single-connection fallback to the internal HTTP downloader when multi-worker segmented range requests receive HTTP 403, 429, or network disconnects.

    Added

    • In-App Updater Lifecycle:
      • Tracked target executable path before staging updates and resolved deleted inode suffixes ( (deleted)) on Linux to restart the new binary automatically after popup self-update.
      • Scoped Snap package detection to SNAP_NAME matching moviebox-tui to prevent false positive Snap environment detection when launched inside unrelated host sandboxes.

    Changed

    • Dependencies & Build Infrastructure:
      • Upgraded zip to 9.0.5, rustls to 0.23.46, quinn-proto to 0.11.19, rustls-webpki to 0.103.16, and webpki-roots to 1.0.10, resolving RustSec security advisories.
      • Upgraded sha2 to 0.11 with chunked streaming hash updates, preserving non-blocking checksum verification for release archives.
      • Upgraded dirs to 7.0, futures to 0.3.34, and zip to 8.6 across platform config paths, async tasks, and updater archive extraction.
  4. v0.1.262026-10-01 · 2026-10-01 05:42 UTC
    查看更新说明

    Fixed

    • Media Playback & Subtitle Engine:
      • Preserved native Windows \ path separators for --sub-file in VLC (C:\...) and passed --no-one-instance on Windows and Linux so running VLC windows keep subtitle, header, and resume flags.
      • Stripped query strings and fragments before parsing subtitle extensions (.srt, .vtt, .ass, .ssa, .sub) so signed CloudFront and OSS URLs keep their true format and DASH MIME type.
      • Pre-downloaded subtitles locally for mpv with remote URL fallback, parallelized subtitle downloads with StreamRelay sidecar startup, appended an 8-char URL hash to subtitle filenames, and sanitized commas in --script-opts.
      • Mounted xdg-cache/moviebox-tui:ro, xdg-data/moviebox-tui, and /tmp:ro in flatpak run while keeping custom user Flatpak flags so sandboxed mpv and VLC can read subtitles and write watch progress.
      • Served Termux private-storage subtitles over the local StreamRelay /sub/ loopback endpoint when Android shared storage is unavailable, and restricted startup subtitle cleanup to internal cache and temp folders.
      • Parsed player stderr and exit codes to report specific failure reasons (HTTP 403, HTTP 404, HTTP 410, timeout, connection refused), and added deterministic cross-platform contract integration tests (tests/player_contract.rs) asserting VLC Win32/UNC paths, IINA CLI option schemas, and header support across OSes.
      • Unified IINA command construction with standard --mpv-* argument schemas across platforms, and restricted macOS IINA header disqualification to GUI app fallbacks missing command line tools.
      • Standardized player display labels to uppercase acronyms (MPV, IINA, VLC) across player selection popups, settings, and notifications.
    • StreamRelay Proxy & Downloader:
      • Forwarded User-Agent and Referer while isolating stream cookies (Cookie: Edge-Cache-Cookie=...) to same-host requests across StreamRelay, subtitle pre-downloads, and media downloads.
      • Capped .m4s segment chunk fetching in StreamRelay to batches of 16 concurrent Range requests, registered in-flight segment wait futures under lock, and required http:// or https:// schemes on /proxy?url= routes.
      • Increased MovieBox DASH yt-dlp --concurrent-fragments from 8 to 32 (3.77 MiB/s -> 11.13 MiB/s, +195% live CDN throughput) and scaled the direct HTTP multi-segment engine to 4 to 16 workers with Range: bytes=0-0 size discovery, 1 MiB write buffers, and a single end-of-file sync_data flush.
      • Reported specific subtitle and DASH download errors (HTTP status, timeout, missing yt-dlp vs ffmpeg) and matched "at" after "of" in yt-dlp progress lines.
    • Providers & Disk Cache:
      • Removed the broad "notice" substring filter in MovieBox stream adaptation while keeping /notice.mp4 and known deprecation hashes, which restores streams for titles like Red Notice and Burn Notice.
      • Advanced the active MovieBox host index immediately on connection or HTTP retry errors, removed the duplicate /subject-api/resource preflight round-trip in InitStreamPool, and removed the 120ms delay on cached episode switches.
      • Streamed 4KHDHub mirror resolution directly into preflight probes via FuturesUnordered without waiting for slow mirrors, cached fetched detail pages across details and releases in 4KHDHub, Dramachi, and CircleFTP, and bounded CircleFTP HEAD size probes to 1.2 seconds.
      • Required a leading 'S' prefix in 4KHDHub season count parsing so release years after "Score" do not parse as season counts, and cached static HTML selectors in 4KHDHub parsers.
      • Matched Dramachi episode numbers across Unicode boundaries and quality suffixes, parallelized Stremio addon movie/series catalog searches and M3U playlist loads, and inserted /manifest.json before query parameters in addon URLs.
      • Evicted cached poster images only when file age exceeds the 30-day TTL so valid cache files survive minor cloc
  5. v0.1.252026-09-27 · 2026-09-27 15:07 UTC
    查看更新说明

    Fixed

    • Search Navigation & Pagination Engine:
      • Gated background search pagination in src/tui/app/navigation.rs so arrow navigation on result sets smaller than the visible viewport never triggers background page fetches.
      • Added search_exhausted tracking in src/tui/state.rs and src/tui/app/requests.rs, stopping pagination crawls when provider search returns fewer than 15 items or zero query-matching results.
      • Preserved stable card slot positions during search pagination in src/tui/app/requests.rs by appending subsequent page items to the list rather than re-sorting the entire array out from under the cursor.
      • Removed redundant "Provider: {name}" status message override from the search bar on provider switch in src/tui/app/navigation.rs, preserving the clean search placeholder while the active provider pill displays on the right.
    • Media Playback & Buffering Engine:
      • Prioritized native desktop media players (mpv, VLC) over Android intent openers in src/player.rs when an active X11/Wayland display server ($DISPLAY, $WAYLAND_DISPLAY) is detected, preventing Ubuntu Xfce (udroid/PRoot) and Termux:X11 desktop sessions from dispatching playback to external Android app choosers.
      • Routed DASH .mpd streams through the local StreamRelay proxy (src/proxy.rs, src/tui/app/playback.rs) across all media players (mpv, IINA, VLC, AndroidIntent), caching rewritten .mpd manifests in RAM, warm-prefetching initialization and opening segments on sidecar startup, fetching .m4s segments via concurrent 95 KB HTTP Range sub-requests (0.286s per segment vs 3.120s), and prefetching both the next 3 video segments (N+1..N+3) and synchronized audio segments (chunk-stream3-N..N+1).
      • Tuned mpv and IINA playback flags (--hwdec=auto-safe, --stream-buffer-size=4M, --cache-secs=120, --cache-pause-wait=3, --cache-pause-initial=no, and --ytdl=no on non-DASH direct streams) in src/player.rs, reducing 1080p cold-seek latency at 01:00:00 from 11.96s to 3.87s and boosting read-ahead buffer fill rate from 1 MB (9.3s) to 7 MB (53s).
      • Replaced aggressive VLC buffering flags (--network-caching=10000, --adaptive-logic=nearoptimal) with --network-caching=3000, --file-caching=3000, --http-reconnect, and --adaptive-logic=predictive in src/player.rs to stop demuxer stream restarts and reconnect cleanly on dropped HTTP streams.
      • Enforced max_height resolution limits in the loopback stream proxy manifest rewriter (src/proxy.rs, src/main.rs, src/tui/app/playback.rs), pruning representations exceeding the chosen ceiling so Android players and VLC respect 480p and 720p selections.
      • Parsed signed expiration timestamps (:t=) from MovieBox Edge-Cache-Cookie headers in src/cache.rs alongside CloudFront policies, automatically invalidating stale stream cache entries within 60 seconds of expiration to prevent HTTP 403 playback crashes.
      • Persisted selected stream filenames (stream_filename) in watch history (src/history.rs, src/player/tracker.rs, src/tui/app/playback.rs) and auto-focused matching stream rows on load (src/tui/app/requests.rs, src/tui/app/system.rs), restoring the user's previously chosen quality mirror when resuming multi-stream releases.
      • Enabled TCP nodelay (stream.set_nodelay(true)) and per-chunk immediate flushes on the local StreamRelay proxy in src/proxy.rs, eliminating 100–300ms time-to-first-frame buffering delays on loopback sockets.
      • Implemented negative caching (Option<Option<String>>) for media player detection (MPV_CACHED, VLC_CACHED, IINA_CACHED) in src/player.rs, eliminating redundant filesystem scans and registry lookups when players are absent.
      • Throttled Lua tracker periodic disk sync in src/player/tracker.rs when playback is paused or positional change is sub-second, cutting SSD writes by up to 90% during playback pauses.
      • Removed duplicate redundant `history

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    MovieBox-TUI

    Terminal interface to find, download, and stream movies, TV shows, and live TV using local media players.

    English • বাংলা • हिन्दी • Español

    CI crates.io License Telegram Support

    moviebox-tui-walkthrough.webm

    Features

    • Streaming: Movies, TV series, anime, Asian dramas, and community Stremio addons across multiple native providers.
    • Live TV: M3U playlist import with channel categories, EPG support, and search.
    • Resolution Picker: Direct stream quality selection (4K, 1080p, 720p, 480p, Auto) before playback.
    • Hardware Players: Direct launch in mpv, VLC, or IINA with custom auth header and cookie forwarding.
    • Batch Downloader: Multi-segment concurrent downloader with HTTP range pause and resume for episodes and full seasons.
    • Subtitle Picker: Multi-language subtitle tracks extracted and selectable via an interactive picker before playback or download.
    • Terminal UI: Vim navigation, mouse interaction, slash command palette (/help, /settings), and 9 built-in themes.
    • Cover Art: Native Kitty, Sixel, and iTerm2 poster rendering with automatic text fallback.
    • Resume & Library: Home deck with continue-watching timestamps, watch history, and favorites stored strictly on local disk. Zero telemetry.

    Prerequisites

    • Media Player: mpv, VLC, or IINA (macOS) / any external video player (Android).
    • Posters: Terminal with Sixel, Kitty, or iTerm2 support (Ghostty, Kitty, WezTerm, iTerm2, foot, Windows Terminal v1.22+).
    • DASH Downloads: yt-dlp and ffmpeg (required only for MovieBox DASH downloads).

    Installation

    macOS & Linux

    If you have Homebrew on macOS:

    brew tap mesamirh/moviebox-tui https://github.com/mesamirh/MovieBox-Tui
    brew install moviebox-tui
    

    Note: If Homebrew prompts for tap verification on initial install, run brew trust mesamirh/moviebox-tui.

    Direct install via Terminal (macOS & Linux, no package manager needed):

    curl -fsSL https://raw.githubusercontent.com/mesamirh/MovieBox-Tui/main/install.sh | bash
    

    Windows

    If you have Scoop (recommended):

    scoop bucket add moviebox https://github.com/mesamirh/MovieBox-Tui
    scoop install moviebox-tui
    

    Direct install via PowerShell (no package manager needed):

    irm https://raw.githubusercontent.com/mesamirh/MovieBox-Tui/main/install.ps1 | iex
    

    SmartScreen prompt: If Windows displays "Windows protected your PC", click More info → Run anyway.

    Android (Termux)

    pkg update && pkg install -y curl tar termux-tools termux-am
    curl -fsSL https://raw.githubusercontent.com/mesamirh/MovieBox-Tui/main/install.sh | bash
    termux-setup-storage
    
    cargo install moviebox-tui --locked
    

    From source:

    git clone https://github.com/mesamirh/MovieBox-Tui.git
    cd MovieBox-Tui
    cargo build --release --locked
    
    sha256sum -c SHA256SUMS --ignore-missing
    gh attestation verify <archive-file> -R mesamirh/MovieBox-Tui
    

    Re-run install command (curl ... | bash or irm ... | iex) and select 2) Uninstall.

    Or via package manager:

    brew uninstall moviebox-tui     # Homebrew
    scoop uninstall moviebox-tui    # Scoop
    cargo uninstall moviebox-tui    # Cargo
    

    Quick Start

    moviebox-tui
    
    • Type to search, press Enter to play.
    • Press ? for shortcuts, or type /settings for preferences.

    Documentation

    Full documentation at mesamirh.github.io/MovieBox-Tui or docs/:

    GuideDescription
    Keyboard & ControlsKeybindings, vim navigation, and shortcuts
    ConfigurationSettings, themes, and environment variables
    Content ProvidersNative scrapers (MovieBox, 4KHDHub, Dramachi, BDIX)
    Stremio AddonsCommunity addon configuration and streaming
    Hardware PlayersPlayer detection, launch options, and flags
    Live TV & IPTVM3U playlist import and channel streaming
    Batch DownloadsHTTP range engine, pause, and resume

    Contributing

    Review CONTRIBUTING.md before submitting pull requests. Report bugs via GitHub Issues.

    AssetAddress
    USDT (TRC20)TL4yW73qmbKZpBWwbEFgjBpwVkPDFTkJgV
    Bitcoin (BTC)3MEAtqtRWrQBhnaMi3Zuf5nt2efNUS2LUQ
    Ethereum (EVM)0x7ea20d5fa29d87f33195f5a3b211ff94038d794c
    Solana (SOL)6ctm5WFv73MNywoCKAz3xK72yizSspHa72rFNygooU6

    Privacy

    Zero telemetry, analytics, or user tracking. History, favorites, and config remain local.

    License

    Dual-licensed under MIT or Apache-2.0.

    Disclaimer

    MovieBox-TUI does not host or store media. It plays publicly available streams. Users must comply with local laws.