Skip to content

AreChen/OpenPlayer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenPlayer desktop media player

🎬 OpenPlayer

A beautiful, extensible, high-performance desktop media player powered by Tauri v2, Rust, React, and libmpv

English Chinese

Release Windows Linux macOS Tauri Rust License

Download · Release Notes · License


✨ Overview

OpenPlayer is a lightweight, visually refined desktop media player built with Tauri v2, Rust, React, and libmpv. It keeps playback close to the native mpv surface while using a transparent React overlay for polished controls, menus, shortcuts, and settings.

The default playback path is mpv-embed: the main Tauri window hosts the native libmpv video surface, while the overlay window hosts the interactive UI. This split gives OpenPlayer native-level playback behavior without giving up a modern, customizable desktop experience.

OpenPlayer playback controls

🚀 Highlights

  • Native mpv playback: Embedded libmpv backend with broad media compatibility and high-performance decoding.
  • 🪟 Video host + transparent overlay: Native rendering and React controls are separated for stability, responsiveness, and UI flexibility.
  • 🌐 Bilingual interface: English and Simplified Chinese are supported, with automatic language matching based on the operating system.
  • 🎨 Studio Dark theme: Built-in dark visual system with configurable accent colors and synchronized appearance across windows.
  • ⌨️ Reliable shortcuts: Configurable shortcuts plus a native Windows shortcut bridge for cases where the video surface owns focus.
  • 🎞️ Precise playback control: Fullscreen restore, smooth progress, frame stepping, loop modes, playback speed, track selection, and subtitle controls.
  • 🧭 Smart chrome hiding: Controls and the title bar hide during playback inactivity and when the mouse leaves the window.
  • 🗂️ Playback memory: Recent media and resume progress are persisted with a lightweight redb store, with clear-history and private playback options.
  • 🧩 Desktop integration: Optional Windows media association and Explorer preview registration for selected formats.

OpenPlayer playback, themes, shortcuts, and format settings

📦 Download

The latest release is available from GitHub Releases:

Download OpenPlayer

Current release:

  • 🏷️ v1.3.1
  • 🪟 Windows: OpenPlayer_1.3.1_x64-setup.exe
  • 🐧 Linux: OpenPlayer_1.3.1_amd64.deb and OpenPlayer_1.3.1_amd64.AppImage
  • 🍎 macOS: OpenPlayer_1.3.1_arm64.dmg and OpenPlayer_1.3.1_x64.dmg
  • 🔐 Checksums: release assets include .sha256 files

Windows packages are not code-signed yet, so SmartScreen may show a warning on first install. Linux packages are an initial distribution target and still rely on the host desktop media stack, including system libmpv.

⌨️ Default Shortcuts

Action Shortcut
Open media Ctrl + O
Play / Pause Space
Seek backward 5 seconds Left
Seek forward 5 seconds Right
Previous frame D
Next frame F
Fullscreen / Restore Enter
Volume Mouse wheel / Up / Down

🛠️ Development

Prerequisites:

  • Rust stable toolchain
  • Node.js 20+
  • npm 10+
  • Tauri v2 system dependencies for your platform
  • Windows builds use the local mpv runtime under vendor/native/mpv/windows-x64

Install dependencies:

Set-Location apps/desktop
npm install

Run the desktop app:

Set-Location apps/desktop
npm run tauri:dev

Verify the project:

npm run verify:shell
npm run build
cargo test -p openplayer-desktop

Build the Windows installer:

Set-Location apps/desktop
npm run tauri:build -- --config src-tauri/tauri.windows.conf.json

The installer is emitted under:

target/release/bundle/nsis/

🤝 Built With

OpenPlayer stands on the work of excellent open source projects:

  • Tauri - secure, lightweight desktop app shell.
  • Rust - native backend, shell integration, and persistence.
  • mpv / libmpv - high-quality media playback engine.
  • React - overlay controls and settings UI.
  • Vite and TypeScript - frontend tooling.
  • redb - embedded persistence for history, settings, and playback state.

⚖️ Licensing Notes

OpenPlayer's application source code is released under MIT. Release packages also include or link to upstream components under their own licenses.

  • Tauri, Rust ecosystem crates, React, Vite, TypeScript, and redb are MIT, Apache-2.0, or similarly permissive according to their package metadata.
  • Windows release automation uses the mpv-dev-lgpl libmpv artifact from zhongfly/mpv-winbuild to keep the bundled media runtime aligned with OpenPlayer's permissive application license.
  • Linux packages depend on the distribution's libmpv2; macOS packages bundle Homebrew libmpv dylibs. Their notices and source obligations remain governed by the upstream packages used for each platform.

📄 License

OpenPlayer is released under the MIT License.