播放本地文件、直链地址,或从内置浏览器接管的视频。可以把正在播放的网络视频保存下来,需要的话加上密码加密,也可以接入你自己运行的服务生成实时字幕。只用 AVFoundation 和 WKWebView,没有别的。
macOS 15 或更高(Apple 芯片)· iOS 与 iPadOS 18 或更高。
版本 1.6.7(build 32)· 14 MB · Apple 芯片
macOS 直接下载版。包含 shhh-cli 命令行工具——App Store 版无法附带它,因为接受任意文件路径的终端工具无法沙盒化。
尚未公证:首次打开会被 macOS 拦截,在「系统设置 → 隐私与安全性」里放行一次即可。文档里有完整步骤。
SHA-256: cccb0e0a591c2cab28810ef2f265e323a9aa1408f2504ba49261d21b13b5a943
查看使用文档 →功能不多,每一项都做扎实。
除非你主动开启,播放历史、续播位置、最近文件列表和缩略图缓存都不会写入。一个开关控制全部,关回去时会清除期间产生的记录。
把任意本地视频转成加密的 .shhh 文件——分块 ChaCha20-Poly1305,密钥经 PBKDF2 与 HKDF 派生。播放时在内存中边解密边播,进度拖动正常,明文视频从不写回磁盘。
正在播放直链视频或从内置浏览器接管的视频?在控制条上点保存,选一个目录即可,勾选一个复选框就能边下载边加密。HLS 流会把全部分段拼成一个可直接播放的文件,每个请求都带着和播放一致的 Header,所以校验来源的站点也能正常保存。
很短的音频窗口会发给你自己配置的 Caption Service——你的服务端,你的模型。App 内不含任何语音模型,服务端只会收到音频和时间信息,拿不到媒体 URL、Cookie 或浏览器 Header。
在一个中立的浏览窗口里浏览(带广告与追踪拦截),然后把视频交给播放器。媒体候选是通过给页面暴露的内容打分通用识别的,App 不携带任何站点专用脚本。
播放用 AVFoundation 与 AVPlayer,浏览用 WKWebView。不含 libmpv、不含 FFmpeg、不含任何第三方 copyleft 引擎。Apple 芯片上硬件解码与 Retina 渲染。
三步,而且下载跟得上你正在看的内容
打开直链媒体地址,或从内置浏览器接管一个视频。只要来源是网络媒体,控制条上就会出现保存按钮。
决定存到哪里,需要加密就勾选「加密此次下载」。渐进式文件和 HLS 都支持;下载请求带的 Header 与播放完全一致。
写文件期间播放不受影响。鼠标停在按钮上能看到已下载多少、速率多少,存完后直接从本地文件继续播放。
第一天值得知道的五件事
把文件拖到窗口上,或使用「打开文件」。在 iPhone 和 iPad 上,「打开文件」从「文件」App 读取。Mac 上多个文件各自独立开窗——没有共享播放列表,也就不会泄露你排了哪些片子。
「打开 URL」接受直链媒体地址,例如 .mp4 或 .m3u8。全程不记录,播放结束后地址也不会保留。
打开「浏览网页」正常浏览,然后选择识别到的视频。ShhhPlay 会把页面的 Referer 与 User-Agent 一并带进播放——这正是校验请求头的源站能正常播放的原因。
网络视频播放时,点控制条上的「保存」,选择目录,勾选「加密此次下载」,设置一个至少 12 位的密码。得到的 .shhh 文件只有用该密码才能打开——而且是边下载边加密的,明文视频从不落盘。
字幕需要你自己提供 Caption Service——任何兼容 OpenAI 音频转写接口的服务都可以,包括跑在你自己机器上的。在「Caption Service」中填入地址,播放时开启字幕即可。
在终端里加密与还原
直接下载版附带一个命令行工具,读写与 App 相同的加密格式。它以无回显方式提示输入密码;自动化场景可用 --password-stdin 传入,且刻意不提供明文的 --password 参数。App Store 版无法包含它,因为接受任意路径的终端工具无法沙盒化。
shhh-cli encrypt video.mp4 shhh-cli play video.mp4.shhh shhh-cli decrypt video.mp4.shhh