关于 Unflick
Unflick 是一款提供 GUI、CLI 和内置 MCP 服务的视频播放器,面向处理本地视频和流媒体链接的用户与 Agent。各界面共用同一播放器实例,可控制播放、转录、剪辑和媒体搜索。
主要功能
- 01GUI、CLI 与内置 MCP 服务
- 02控制同一播放实例
- 03播放本地文件和流媒体链接
- 04本地生成 Whisper 字幕
- 05搜索字幕文本和媒体库
- 06剪辑视频并跳过 SponsorBlock 片段
适用场景
- 01通过 MCP 客户端控制屏幕上的播放
- 02查找字幕中的语句并跳转定位
- 03为视频本地生成字幕
- 04剪辑视频或搜索媒体库
MCP 相关
Unflick 通过 `unflick --mcp` 在 stdio 上启动 MCP 服务,提供播放、字幕、剪辑、字幕文本搜索等工具及实时资源。MCP 服务、CLI 和 GUI 操作同一播放器实例。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
unflick
一款免费、无广告的视频播放器,适合人类和 AI 使用。
unflick.app · MIT · 跨平台 · CLI + MCP 优先
unflick 可以播放你的视频文件,以及 YouTube / Bilibili / Twitch / Vimeo / 其他 26 个流媒体网站的网址,并在精美的原生窗口中呈现。它会通过 SponsorBlock 自动跳过 YouTube 赞助片段。它还能在 OpenSubtitles 上查找字幕;如果没有字幕,则使用 whisper.cpp 在本地生成。
它的与众不同之处在于:**MCP 是内置的控制界面,而不是第三方封装。**其他播放器可以从外部编写脚本进行控制;而在 unflick 中,CLI、MCP 服务和窗口共用同一个播放器实例。让 Claude 跳到下一章节,你正在观看的视频就会跳转——同一个 mpv,同一段播放,不会启动另一个隐藏进程。每项功能都会先以无界面方式推出,再配上按钮。
安装
一行安装:
# macOS — Homebrew
brew install --cask zhitongblog/tap/unflick
# macOS / Linux
curl -fsSL https://unflick.app/install.sh | bash
# Windows (PowerShell)
irm https://unflick.app/install.ps1 | iex
或者从最新版本中选择适合你平台的安装程序:
| 平台 | 文件 | 大小 |
|---|---|---|
| Windows 10/11(x64) | unflick_<ver>_x64-setup-standard.exe(或 .msi) | ~80 MB |
| Windows 10/11(x64),捆绑 Whisper 的 AI 版本 | unflick-ai_<ver>_x64-setup.exe | ~150 MB |
| macOS 11+(Apple Silicon + Intel,已签名并公证) | unflick_<ver>_universal.dmg | ~15 MB |
| Linux x86_64(Debian / Ubuntu) | unflick_<ver>_amd64.deb | ~10 MB |
| Linux x86_64(Fedora / RHEL / openSUSE) | unflick-<ver>-1.x86_64.rpm | ~10 MB |
| Linux x86_64(与发行版无关) | unflick_<ver>_amd64.AppImage | ~80 MB |
三种界面,一个核心
unflick 通过三个界面提供相同的播放引擎:
- GUI — 现代播放器窗口,具备 libmpv 级别的播放质量、键盘快捷键、拖放、画中画、真正的全屏模式、章节、书签、A-B 循环、逐帧播放、字幕时间调整和样式设置。
- CLI — 每项功能也都有对应的命令。
unflick play <file-or-url>、unflick chapter next、unflick bookmark add --name "the good bit"、unflick loop a、unflick subtitle auto、unflick subtitle bilingual on、unflick audio eq preset speech、unflick clip 0 5、unflick library scan。输出为 JSON;可通过管道传给jq,实现自动化。使用--allow-dev启动后,unflick dev snapshot/click/eval可控制并读取播放器自身的窗口;unflick 在所有三个平台上的测试方式就是如此。 - MCP 服务 —
unflick --mcp会通过 stdio 启动 Model Context Protocol 服务。将它添加到 Claude Desktop / Cursor / Codex CLI 的 MCP 配置中,你的 AI Agent 就能使用 101 个工具(play、seek、chapter_seek、bookmark_goto、ab_loop、subtitle_delay、subtitle_bilingual、screenshot、clip、sponsor_segments、get_subtitles、equalizer_preset、generate_subtitles、library_search 等)以及实时资源。
Claude Code 用户可以一步安装这些技能和 MCP 服务:
/plugin marketplace add zhitongblog/unflick
/plugin install unflick
这样会安装七种技能(播放、根据所说内容导航、剪辑/GIF、字幕、媒体库、截图、SponsorBlock)以及 MCP 服务——详见 marketplace/。
这三种界面都驱动同一个播放器。窗口打开时,它会承载控制端口,因此在终端中运行 unflick pause,或由 Agent 通过 MCP 调用 pause,暂停的都是屏幕上的视频,而不是某个看不见的第二实例。没有运行中的窗口时,CLI 和 MCP 会回退到无界面守护进程,所有功能仍然可用。
Agent 能做到而封装做不到的事
由于 MCP 与播放器交互,而不是对播放器发出指令,Agent 能使用需要读取播放器自身状态的工具:
search_transcript/seek_to_text— “跳到她讲解退款政策的地方”。搜索当前打开的字幕:已加载的文件、同名.srt字幕文件、内嵌字幕轨,或刚用 whisper 生成的字幕。generate_chapters/set_chapters— 为没有附带章节的文件创建一份真正的章节列表。这不只是返回数据:章节会显示在进度条上,并能响应chapter_seek和 PgUp/PgDn。describe_frame— 将当前屏幕上的画面作为图像交给模型。由于使用的是同一个播放器,它看到的画面和你看到的一样。
依章程免费、无广告、本地运行
unflick 绝不会:
- 投放横幅广告、片头广告或“赞助”广告
- 收集任何形式的遥测数据
- 要求注册账户、登录或连接云端
- 将功能限制在付费层级之后,或设置试用倒计时
- 在安装时捆绑广告软件、浏览器劫持程序或“推荐”软件
所有重要操作都在你的设备上运行。媒体库扫描、字幕转录、AI 改写——全部在本地完成。你的文件始终留在本地文件系统中。
YouTube 的 SponsorBlock 自动跳过功能是“无广告”的主动体现:主动跳过 unflick 播放内容中的广告,而不只是拒绝展示自己的广告。
许可证
unflick 依据 MIT License 发布,详见 LICENSE。
unflick 在运行时会捆绑、动态加载或调用以下第三方软件。每个上游许可证均列于 THIRD-PARTY-LICENSES.md,而采用 LGPL/GPL/MPL 许可的组件,其规范许可证文本随每个安装包一同分发,位于 licenses/ 目录中:
- libmpv — LGPL-2.1-or-later — 在运行时动态加载(源代码)
- ffmpeg(Windows 捆绑版)— GPL-3.0-or-later — 仅作为子进程调用(源代码)
- yt-dlp — Unlicense(公共领域)— 作为子进程调用(源代码)
- whisper.cpp(AI 版)— MIT — 作为子进程调用(源代码)
- Tauri + wry + mpv-player/mpv + glutin + objc2 + 590 多个 Rust crate — 均采用 MIT、Apache-2.0、ISC、BSD、MPL-2.0 或 Unicode-3.0 许可证(完整明细)
- React 18、Zustand、Framer Motion、Tailwind、Vite — MIT
完整的署名和合规说明(子进程调用与动态链接、GPL 聚合、MPL 文件级适用范围等)请参阅 THIRD-PARTY-LICENSES.md。
从源代码构建
git clone https://github.com/zhitongblog/unflick.git
cd unflick
pnpm install
pnpm tauri build
# Windows: ./scripts/fetch-windows-deps.sh fetches libmpv / ffmpeg / yt-dlp / whisper
# bash build-both.sh builds both Standard and AI editions
需要 Rust stable + Node 22 + pnpm 10 + Tauri 2 的平台先决条件(Windows 上的 WebView2、macOS 上的 WKWebView、Linux 上的 webkit2gtk-4.1)。Linux 使用系统 libmpv,因此请先运行 apt install libmpv-dev。macOS 会随附自己的通用 libmpv(这是在 macOS 上播放 DVD 的唯一方式,因为 Homebrew 的 mpv 未启用 libdvdnav):./scripts/build-mac-libmpv.sh 会构建一次,而 brew install mpv 仍可作为播放光盘以外所有内容的后备方案。
发行版使用 ./scripts/release.sh <version> 打包;三个平台的构建方式,以及为何只有 macOS 不在 CI 中构建,请参阅 scripts/README.md。
致谢
unflick 的建立离不开 mpv、ffmpeg、yt-dlp、whisper.cpp、Tauri,以及一长串采用 MIT/Apache 许可证的 Rust 和 JavaScript 库。没有这些项目,就不会有这一切。
unflick.app 网站和其姊妹项目 SoloMD 同样由同一位作者开发。它们也免费、也采用 MIT 许可证,也捆绑 MCP。如果你喜欢这里的设计,那正是它的来源。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。