13 KiB
qEmby
A modern desktop client for Emby & Jellyfin media servers
Emby & Jellyfin 媒体服务器的现代桌面客户端
📸 应用截图
📥 下载
最新版本:v0.0.5
| 安装包 | 说明 |
|---|---|
| qEmby-v0.0.5-Win-x64-Setup.exe | Windows 10/11 x64 安装包 |
| qEmby-v0.0.5-Win-x64.zip | Windows 10/11 x64 绿色便携版 |
| qemby-0.0.5-macos-arm64.dmg | macOS 26+ (Apple 芯片) |
旧版 Windows、Linux 和 macOS 构建可以在 Releases 页面下载。
🚀 v0.0.5 更新内容
- 优化了剧集详情页展示,支持版本切换。
- 支持播放状态展示和切换。
- 增加了详情页的缓存,加快下一次载入速度。
- 优化了播放界面 OSD,支持上一集和下一集,支持连续播放。
- 优化了媒体库等上下滑动的流畅度,优化了加载图片的逻辑。
- 新增播放完成画廊,默认关闭,可以在设置中打开。
✨ 功能特性
- 🎬 浏览和管理你的 Emby / Jellyfin 媒体库
- ▶️ 内置 libmpv 驱动的视频播放器
- 💬 弹幕播放,支持搜索、匹配、缓存和原生覆盖层渲染
- 🧩 支持元数据编辑、媒体识别、图片更新和播放列表管理
- 📥 下载管理器
- 🌗 深色 / 浅色主题切换
- 🌐 国际化支持(中文 / 英文 / 法语)
- 🔍 支持搜索历史的媒体搜索
- 📺 当前支持电视剧、电影媒体类型
- 📦 提供 Windows 安装包 / 绿色版,以及 Linux AppImage / deb 包
- ⚡ 基于 C++20 协程的异步操作(QCoro)
- 🪟 原生风格的自定义窗口边框(QWindowKit)
💻 平台支持
| 平台 | 状态 |
|---|---|
| Windows 10/11 x64 | ✅ 已适配 |
| Linux x64 (AppImage / deb) | ✅ 已适配 |
| macOS 26+ (Apple Silicon) | ✅ 已适配 |
📋 开发路线图
- Emby / Jellyfin 媒体库浏览
- 内置视频播放器(libmpv)
- 深色 / 浅色主题
- 国际化支持(中文 / 英文)
- 媒体搜索与搜索历史
- 电视剧、电影支持
- 服务器管理仪表盘
- 支持添加到播放列表和从播放列表中移除
- 支持识别来更新元数据
- 支持修改元数据和图片
- 弹幕系统(搜索、匹配、设置、渲染)
- 下载管理器
- AI 字幕生成
- Linux 平台适配
- macOS 平台适配
本项目为个人兴趣开发,欢迎贡献和反馈!
🛠️ 技术栈
| 组件 | 技术 |
|---|---|
| 框架 | Qt 6.x (Widgets) |
| 语言 | C++20 |
| 视频播放 | libmpv |
| 异步 | QCoro (Qt C++20 协程) |
| 日志 | spdlog |
| 窗口框架 | QWindowKit |
| 构建系统 | CMake |
📦 环境要求
- Qt 6.x(包含 Widgets、Core、Network、Concurrent、OpenGLWidgets、LinguistTools、WebSockets 模块)
- CMake ≥ 3.16
- 支持 C++20 的编译器(推荐 MSVC 2022)
- libmpv 开发文件(见下方说明)
- Git(用于克隆子模块)
🚀 构建指南
1. 克隆仓库
git clone --recursive https://github.com/AlanHJ/qEmby.git
cd qEmby
2. 获取 libmpv
下载 libmpv 开发包,并放置到 libs/libmpv/ 目录下,结构如下:
libs/libmpv/
├── bin/
│ └── libmpv-2.dll
├── include/
│ └── mpv/
│ ├── client.h
│ └── render.h (等)
└── lib/
└── libmpv.dll.a
libmpv 获取方式:
- shinchiro/mpv-winbuild-cmake(Windows 预编译版本)
- mpv-player/mpv(从源码编译)
3. 配置和构建
cmake -B build -DCMAKE_PREFIX_PATH="/path/to/Qt6/lib/cmake"
cmake --build build --config Release
提示: 在 Windows 上使用 MSVC 时,也可以直接在 Qt Creator 或 Visual Studio 中打开 CMake 项目。
📁 项目结构
qEmby/
├── CMakeLists.txt # 根 CMake 配置
├── libs/
│ ├── libmpv/ # libmpv SDK(未纳入版本控制,见构建指南)
│ └── qwindowkit/ # QWindowKit(git 子模块)
└── src/
├── qEmbyCore/ # 核心库(API、模型、服务)
│ ├── api/ # Emby/Jellyfin API 客户端
│ ├── config/ # 配置管理
│ ├── models/ # 数据模型
│ └── services/ # 业务逻辑服务
└── qEmbyApp/ # 桌面应用
├── components/ # 可复用 UI 组件
├── managers/ # 应用管理器
├── resources/ # 图标、主题、翻译
├── utils/ # 工具类
└── views/ # 应用视图
💬 交流社区
加入 Telegram 交流群:https://t.me/+qXQ-zU56z9gxOWNl
注意: 本项目是为爱发电项目,测试覆盖不全,敬请谅解。如有问题请通过 GitHub Issues 反馈。
📄 许可证
本项目基于 MIT 许可证 开源。
🙏 致谢
- Qt — 应用框架 (LGPL v3)
- mpv — 媒体播放引擎 (LGPL v2.1+)
- QWindowKit — 自定义窗口框架 (Apache-2.0)
- QCoro — Qt C++20 协程库 (MIT)
- spdlog — 高性能日志库 (MIT)
📸 Screenshots
📥 Download
Latest release: v0.0.5
| Package | Description |
|---|---|
| qEmby-v0.0.5-Win-x64-Setup.exe | Windows 10/11 x64 installer |
| qEmby-v0.0.5-Win-x64.zip | Windows 10/11 x64 portable package |
| qemby-0.0.5-macos-arm64.dmg | macOS 26+ (Apple Silicon) |
Older Windows, Linux and macOS builds are available on the Releases page.
🚀 What's New in v0.0.5
- Optimized episode detail page display with version switching support.
- Added playback status display and switching.
- Added detail page caching for faster subsequent loading.
- Enhanced player OSD with previous/next episode and continuous playback.
- Improved scrolling smoothness in media library views and optimized image loading logic.
- Added post-playback gallery (disabled by default, configurable in settings).
✨ Features
- 🎬 Browse and manage your Emby / Jellyfin media library
- ▶️ Built-in video player powered by libmpv
- 💬 Danmaku playback with search, matching, cache and native overlay rendering
- 🧩 Metadata editing, media identification, image updates and playlist tools
- 📥 Download manager
- 🌗 Dark and Light theme support
- 🌐 Internationalization support (Chinese / English)
- 🔍 Media search with history
- 📺 TV series and movies media types
- 📦 Windows installer / portable packages and Linux AppImage / deb packages
- ⚡ Asynchronous operations with C++20 coroutines (QCoro)
- 🪟 Custom window frame with native look (QWindowKit)
💻 Platform Support
| Platform | Status |
|---|---|
| Windows 10/11 x64 | ✅ Supported |
| Linux x64 (AppImage / deb) | ✅ Supported |
| macOS 26+ (Apple Silicon) | ✅ Supported |
📋 Roadmap
- Emby / Jellyfin media library browsing
- Built-in video player (libmpv)
- Dark / Light theme
- Internationalization (Chinese / English)
- Media search with history
- TV series & movies support
- Server administration dashboard
- Playlist support (add/remove items)
- Media identification & metadata refresh
- Metadata and image editing
- Danmaku (bullet comments) system
- Download manager
- AI-powered subtitle generation
- Linux platform support
- macOS platform support
This is a personal hobby project, developed out of interest. Contributions and feedback are welcome!
🛠️ Tech Stack
| Component | Technology |
|---|---|
| Framework | Qt 6.x (Widgets) |
| Language | C++20 |
| Video Player | libmpv |
| Async | QCoro (C++20 Coroutines for Qt) |
| Logging | spdlog |
| Window Kit | QWindowKit |
| Build System | CMake |
📦 Prerequisites
- Qt 6.x (with Widgets, Core, Network, Concurrent, OpenGLWidgets, LinguistTools, WebSockets)
- CMake ≥ 3.16
- C++20 compatible compiler (MSVC 2022 recommended)
- libmpv development files (see below)
- Git (for cloning submodules)
🚀 Build
1. Clone the repository
git clone --recursive https://github.com/AlanHJ/qEmby.git
cd qEmby
2. Get libmpv
Download the libmpv development package and place it in libs/libmpv/ with the following structure:
libs/libmpv/
├── bin/
│ └── libmpv-2.dll
├── include/
│ └── mpv/
│ ├── client.h
│ └── render.h (etc.)
└── lib/
└── libmpv.dll.a
You can get libmpv from:
- shinchiro/mpv-winbuild-cmake (Windows builds)
- mpv-player/mpv (build from source)
3. Configure and build
cmake -B build -DCMAKE_PREFIX_PATH="/path/to/Qt6/lib/cmake"
cmake --build build --config Release
Tip: On Windows with MSVC, you can also open the project in Qt Creator or Visual Studio with CMake support.
📁 Project Structure
qEmby/
├── CMakeLists.txt # Root CMake configuration
├── libs/
│ ├── libmpv/ # libmpv SDK (not tracked, see Build section)
│ └── qwindowkit/ # QWindowKit (git submodule)
└── src/
├── qEmbyCore/ # Core library (API, models, services)
│ ├── api/ # Emby/Jellyfin API client
│ ├── config/ # Configuration management
│ ├── models/ # Data models
│ └── services/ # Business logic services
└── qEmbyApp/ # Desktop application
├── components/ # Reusable UI components
├── managers/ # Application managers
├── resources/ # Icons, themes, translations
├── utils/ # Utility classes
└── views/ # Application views
💬 Community
Join our Telegram group: https://t.me/+qXQ-zU56z9gxOWNl
Note: This is a passion project with limited testing. Your understanding is appreciated. Please report any issues via GitHub Issues.
📄 License
This project is licensed under the MIT License.
🙏 Acknowledgements
- Qt — Application framework (LGPL v3)
- mpv — Media player engine (LGPL v2.1+)
- QWindowKit — Custom window frame (Apache-2.0)
- QCoro — C++20 Coroutines for Qt (MIT)
- spdlog — Fast logging library (MIT)



