qEmby Logo

qEmby

面向 Arch Linux 的 Emby / Jellyfin 桌面客户端

License: MIT Platform: Arch Linux Qt 6 C++20

qEmby 是一个使用 Qt 6 / C++20 编写的 Emby、Jellyfin 桌面客户端,内置基于 libmpv 的播放器,并针对 Arch Linux 桌面环境维护。 当前项目只维护 Arch Linux 版本。Windows 专属逻辑已经移除,macOS 和 Windows 不作为发布目标。 ## 截图

首页 影片详情

设置 管理仪表盘

## 功能 - 浏览 Emby / Jellyfin 媒体库,支持电影和剧集视图。 - 内置 libmpv 播放器,支持 VAAPI、VDPAU、CUDA 和软件解码选项。 - 支持外部播放器:MPV、VLC、MPC-Qt。 - 支持播放进度同步、连续播放、上一集 / 下一集和播放完成画廊。 - 支持弹幕搜索、手动匹配、缓存、ASS 管线和原生弹幕渲染。 - 支持媒体详情、元数据编辑、媒体识别、图片更新和播放列表管理。 - 支持下载管理器、全局搜索、搜索历史、深色 / 浅色主题。 - 支持服务器管理仪表盘和 WebDAV 配置同步。 - 支持中文、英文、法语界面。 ## 平台支持 | 平台 | 状态 | | --- | --- | | Arch Linux x86_64 | 维护中 | | 其他 Linux 发行版 | 可自行编译,未作为发布目标 | | Windows / macOS | 不维护 | ## 安装 从 Gitea Releases 下载普通发布包: ```bash sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst ``` 启动: ```bash qemby ``` 卸载: ```bash sudo pacman -R qemby ``` 如果原生 Wayland 下遇到窗口或 OpenGL 兼容性问题,可以临时使用 XCB 后端: ```bash QEMBY_FORCE_XCB=1 qemby ``` 发布给普通用户时,应先按下文重新构建安装包,然后上传生成的普通包: ```text packaging/arch/qemby-0.0.6-1-x86_64.pkg.tar.zst ``` 不要把 `qemby-debug-*.pkg.tar.zst` 当作普通安装包分发;它体积更大,主要用于调试符号。 ## 从源码构建 安装构建依赖: ```bash sudo pacman -S --needed \ base-devel git cmake ninja pkgconf \ qt6-base qt6-tools qt6-svg qt6-websockets \ mpv qcoro spdlog fmt hicolor-icon-theme ``` 克隆仓库: ```bash git clone --recursive <你的 Gitea 仓库地址> qEmby cd qEmby ``` 配置并构建: ```bash cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DQEMBY_USE_SYSTEM_DEPS=ON \ -DQEMBY_FETCHCONTENT_FALLBACK=OFF cmake --build build ``` 直接运行开发构建: ```bash ./build/bin/qEmbyApp ``` ## 构建 Arch 安装包 本仓库包含本地发布用的 PKGBUILD: ```bash git archive --format=tar.gz --prefix=qEmby-0.0.6/ \ -o packaging/arch/qemby-0.0.6.tar.gz HEAD cd packaging/arch makepkg -f ``` 安装刚生成的包: ```bash sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst ``` 如果希望一边构建一边安装: ```bash makepkg -fi ``` ## 发布流程 1. 确认版本号:`CMakeLists.txt` 和 `packaging/arch/PKGBUILD` 中的版本应一致。 2. 从当前提交生成源码包并构建 Arch 安装包: ```bash git archive --format=tar.gz --prefix=qEmby-0.0.6/ \ -o packaging/arch/qemby-0.0.6.tar.gz HEAD cd packaging/arch makepkg -f ``` 3. 本地安装并启动测试: ```bash sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst qemby ``` 也可以直接测试开发构建: ```bash cd ../.. cmake --build build ./build/bin/qEmbyApp ``` 4. 在 Gitea 创建版本标签,例如 `v0.0.6`。 5. 上传 `qemby-0.0.6-1-x86_64.pkg.tar.zst` 作为 Release 附件。 6. 在 Release 说明中写清楚安装命令: ```bash sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst ``` ## 项目结构 ```text qEmby/ ├── CMakeLists.txt ├── cmake/ ├── libs/ │ └── qwindowkit/ ├── packaging/ │ └── arch/ │ ├── PKGBUILD │ └── README.md ├── screenshots/ └── src/ ├── qEmbyCore/ # API、模型、服务、配置 └── qEmbyApp/ # Qt Widgets 桌面应用 ``` ## 技术栈 | 组件 | 说明 | | --- | --- | | UI 框架 | Qt 6 Widgets | | 语言 | C++20 | | 播放器 | libmpv | | 异步 | QCoro | | 日志 | spdlog | | 窗口框架 | QWindowKit | | 构建系统 | CMake + Ninja | | 打包 | Arch PKGBUILD | ## 反馈 请通过 Gitea Issues 反馈问题。提交问题时建议附上: - qEmby 版本。 - 桌面环境和会话类型,例如 KDE Wayland、GNOME Wayland、X11。 - 复现步骤。 - 终端启动日志。 ## 许可证 本项目基于 [MIT License](LICENSE) 开源。 ## 致谢 - [Qt](https://www.qt.io/) - [mpv](https://mpv.io/) - [QWindowKit](https://github.com/stdware/qwindowkit) - [QCoro](https://github.com/danvratil/qcoro) - [spdlog](https://github.com/gabime/spdlog)