我做了个播放器:115 / PikPak + JavBus 脚本提交 + 本地双语字幕
最近在做一个播放器,叫 M1Player。
我想把几个操作串起来:电脑上找内容,选好版本提交到网盘,然后拿起手机就能看。遇到没字幕的,再让手机识别对白、翻译成中文。
现在 App 能直接连接自己的 115、PikPak 和局域网 SMB。我还配了一个油猴脚本,在 JavBus 等支持的页面上可以搜索磁力、比较版本,点一下提交给手机连接的网盘。
字幕这块,我做了本地和云端两种方式。本地识别和翻译就在手机上跑,不扣云端字幕时长,后面展开说。
目前我在官网放了 Android 0.1.2,Android 8.0 及以上的 64 位 ARM 手机可以安装。iOS 版也在做,公共下载入口会随发布进度更新到官网。
我目前做了哪些功能
- 网盘和 SMB 播放:手机直接连,不用另外开着一台 Mac 做中转。
- 媒体库整理:扫描文件、识别文件名里的作品编号、查询资料和封面。可以按文件名、编号或演员搜索,也能收藏。
- 续播和播放操作:记住上次看到哪里,支持横竖屏,调节进度、亮度和音量。
- 双语字幕:原文、中文、双语都能选,字幕可以在本地生成,也可以用云端。
- 浏览器提交任务:电脑上选磁力,手机接收后提交到 115 / PikPak,最近任务里能看结果。
收费范围也提前说一下:基础版可以浏览和播放单个来源,多来源聚合这些进阶功能放在 Pro 里。本地字幕不扣云端字幕时长,不用为了本地翻译买时长包。
怎么开始用
我把流程列一下,先从手机这边开始:
- 下载、安装 App,打开媒体库里的来源管理。
- 连上自己的网盘或 SMB。115 用官方 App 扫码登录;PikPak 播放走官方 WebDAV,需要相应会员和 WebDAV 凭据;SMB 填自己的共享地址和账号。
- 第一次先等它扫描完,就可以搜索、收藏、打开视频了。刚提交下载的内容,要等网盘下载完成,再被媒体库扫描到,才会出现在列表里。
如果只是播放自己的内容、用本地字幕,可以先不登录字幕账户。要用浏览器配对或者云端字幕,再登录 M1Player 账号:Android 用邮箱验证码,iOS 用 Apple 账号。这个账号和网盘账号是分开的。
JavBus 上的脚本怎么用
这部分我做的是「网页选磁力 → 手机接收 → 提交网盘」,安装、配对一次,后面就可以直接点按钮。
1. 先装油猴,再装脚本
电脑浏览器先装 Tampermonkey(油猴),然后打开这个链接,在油猴页面点安装:
我也把安装入口放在了官网配对页。装完刷新一下网页,确认脚本已启用。如果之前装过旧版 M1Player 改版脚本,先停用旧版,不然可能会出现两套按钮。
2. 扫个码,把浏览器和手机连起来
- 手机 App 登录 M1Player 账号,连好要用的网盘。
- 进账户页的「浏览器提交网盘」,开启对应网盘的本机接收。Android 上的按钮叫「启用 115 接收」或「启用 PikPak 接收」。
- 电脑打开支持的网页,在油猴菜单里点 「连接 M1Player 手机(显示二维码)」,也可以从官网配对页发起。
- 手机在「浏览器提交网盘」里打开扫码入口,扫电脑上的二维码,确认连接。
PikPak 这里多说一句:能播放,不等于已经有云下载权限。播放用 WebDAV;要提交下载,需要在 App 里连接一个带「云下载」权限的个人访问令牌(PAT),WebDAV 密码不能直接拿来用。
我把网盘登录凭据留在手机上,配对只是让这个浏览器有权限投递任务。
3. 回到 JavBus,选好版本点提交
刷新 JavBus 详情页,磁力列表旁边就能看到 「提交 115」和「提交 PikPak」。看一下大小、画质和字幕标记,选好版本,点对应的网盘。
这时候手机要让 App 保持在前台,它会接收任务,再提交给网盘。结果可以在 App 的最近任务里看,油猴菜单里也有对应网盘的最近任务入口。
这里有个容易混淆的地方:排进队列、网盘接收、下载完成,是几个不同的状态。脚本显示提交成功,说明网盘接收了任务,具体下到哪里了,还是要看网盘。App 切到后台或者关掉后,任务会等下次打开再处理。如果显示结果待确认,先去网盘看一眼,再决定要不要重试。
4. 我还给脚本加了几个小功能
- 多搜几个站:支持 BTDig、Sukebei、Bitsearch,搜到的结果会和页面原来的磁力合并、去重。
- 帮忙排一下版本:按完整编号、画质标注、大小和中文版本信息排序,比较起来方便一点。
- 少翻几次页:滚动加载后续页面,过滤 VR 和重复卡片,打开过的详情页也会做标记。
- 提醒库里已经有了:在 App 开启「同步库中番号」,配对的浏览器就能标记已有作品。这个功能需要同步作品编号,要不要开可以自己选。
再聊聊本地翻译
这块也是我比较想让大家试试的功能。
没有现成字幕时,我会让 App 提取播放位置附近的音频,先识别出原文,再翻译成中文,按时间显示到播放器里。选本地模式的话,识别和翻译都在手机上跑。
Android
Android 上我把入口放在了 「账户 → 字幕生成」:
- 选「本地」,再选影片的原声语言,目前有日语、英语、韩语和普通话。
- 点「下载或检查本地模型」。第一次要下载约 57 MB 的离线语音模型,再加上对应的翻译模型。
- 等模型准备好,开启「播放时自动生成」,然后打开影片。
这个模式不用登录字幕账户,也不扣云端余额。不过速度得看手机性能,取音、识别、翻译都需要一点时间,不能做到对白一出口就立刻逐字显示。
iOS
iOS 这边我接的是 Apple 的本地识别和翻译。在 「账户 → 字幕设置」 里选 「Apple 本地」,选好原声语言,按提示下载语言包就行。需要 iOS 26 或更新版本,具体还要看设备和系统对该语言的支持情况。
我也做了「自动(优先本地)」:语言包准备好了就先用本地。本地用不了时,只有你开了云端字幕权限、账户也可用,才会走云端。
本地、云端和字幕贡献,分别怎么算
单纯用本地识别和翻译,不扣云端时长,音频也不需要发给字幕服务。
另外,我在 iOS 上做了一个可选的 「贡献本地翻译字幕,赚取时长」 开关。主动打开后,会上传生成的字幕和短音频,审核采纳后供其他用户共用,同时奖励云端字幕时长。不开这个开关,就不会因为字幕贡献上传这些内容。
云端模式则需要登录、主动开启,会上传播放附近的短音频,扣账户里的字幕时长。同账号已有缓存可以复用,生成失败会退回预扣。我给首次登录留了 60 分钟体验,正式购买有没有开放,可以看服务状态和 App 里的提示。
效果这块我也不想说满:本地和云端都会有识别、翻译错误,背景音乐、几个人一起说话、声音太小都会影响结果。还有,本地字幕可以在设备上处理,但网盘视频本身还是要联网播放。
想试试的话,入口在这里
官网:M1Player
Android 当前版本:下载 0.1.2 APK
我还在继续改,想找一些有 115 / PikPak 或 SMB 片库的朋友试试。
尤其想听听:网盘连接顺不顺、脚本提交方不方便、哪些格式播放有问题,以及本地字幕在你手机上跑得怎么样。Android 这块还需要更多真机和真实对白的反馈,iOS 和 Android 目前也还没做到每个功能都一样。
有问题可以在文章下留言,或者用官网的反馈入口。带上设备型号、系统和 App 版本、复现步骤、错误提示,我会比较好排查。
最后补一句:我做的是播放器和整理工具,内容需要用自己有权访问的来源,网盘会员和第三方服务费用另算。
聊两句
评论使用 GitHub 账号,点击后加载。