因为我想看就写了一个影视 TV 应用:AMUTV 下载与更新指南

AI 摘要

AMUTV 是什么

AMUTV 是我自己写的一个「影视 TV」应用:界面与交互对标电视盒子上的 TVBox / 影视仓,但底层是纯 Web 技术——整个项目 零 npm 依赖,node server.js 一条命令就能跑起来。它同时提供三种形态:

形态 说明
📱 安卓 App amutv.apk(约 3.4MB,从 Releases 下载),网页资源全内嵌 + 内置 MiniServer,装上电视/盒子后完全独立运行,不依赖电脑
🖥️ 桌面 App Electron 壳,软解防闪退、崩溃自愈、错误落盘
🌐 浏览器 / PWA 任何设备的浏览器打开即用,支持安装到桌面/主屏幕,UI 骨架离线可用

项目开源在 GitHub:915964222/AMUTV。

功能一览

  • 大屏交互:纯黑海报墙主题(Apple TV 风格),胶囊导航、横向海报行、白色焦点环;方向键在卡片间移动焦点、Enter 确认、Esc 返回,遥控器和鼠标双操作都顺手。
  • 内容源:支持 URL 订阅或粘贴 TVBox 配置 JSON(单仓 / 多仓),clan:// 按仓库基址解析,源连通性测试(🟢🔴);多源全网搜索支持拼音首字母(dxt → 大雄兔)。
  • 聚合搜索:大搜索框 + 拼音模式标识;搜索历史与热搜榜(奖牌位);输入联想词;多源并发搜索时源状态条实时测速(可点击屏蔽某源);结果跨源同名自动合并为「N源可播」,带 4K/1080P 画质角标与最快源测速;综合 / 速度 / 清晰度三种排序,分类过滤,分页加载。
  • 自动换源:播放失败或卡顿超 15 秒自动换源(最多 3 次,可关),播放页也能手动挑其他源的同名影片。
  • IPTV 直播:m3u / txt 双格式解析,同名频道多线路合并容灾;EPG 节目单(正在播 / 接下来);45 秒未出画自动切下一线路的看门狗。
  • 播放器:HLS 多码率画质锁档(顶栏实时显示当前档位)/ MP4 直连;信息徽章 OSD(来源 / 画质 / 解码方式 / 续播位置);倍速 0.5~3x、画面比例、画面缩放、音轨、内嵌与在线字幕(SubHD 自动下载);B 站 XML 弹幕 + 弹弹play 接口;片头片尾标记后在进度条上显示定位点并自动跳过、断点续播;m3u8 广告切片三层过滤(URL 规则 / CUE 区间 / 结构少数派目录),过滤数量会 toast 报一声
  • 语音搜索与控制(1.4 新增):说「看庆余年」直接搜片,「下一集」「快进 30 秒」「声音大一点」「1.5 倍速」「打开设置」直接执行;搜索框 🎤、播放器控制条、遥控器搜索键 / 语音键、长按 MENU 都能唤出;设备没有识别服务时不是报「未知错误」,而是说清原因并直接展开键盘输入,面板里「诊断」可查设备语音能力
  • 右侧四 Tab 抽屉:选集(含片头片尾标记)、换源(测速列表 + 自动换源开关)、字幕(轨道 / 外挂 / 在线搜索 / 时间轴微调)、弹幕(开关 / 透明度 / 字号 / 文件加载)一站式操作
  • 网盘与 NAS:Alist(302 原画直链)、WebDAV、SMB、阿里云盘、夸克直连;网盘视频自动刮削豆瓣海报/评分/简介;蓝光原盘 .m2ts/.ts 流式播放,4K 文件蓝徽章识别。
  • 手机遥控:播放器出二维码,手机扫码进入 /remote 遥控页,seek、切集、调音量;还能扫码推送配置直接导入源。
  • 网络与蓝牙(安卓端):设置页直接扫描 / 连接 WiFi(信号格、加密类型、频率,连接走系统「添加网络」确认框)、扫描 / 配对 / 连接蓝牙设备(BLE / 经典 / 双模,显示 MAC 与 RSSI,连接优先 A2DP 给音箱耳机)。

界面速览

以下截图截自 1.4 版安卓端,是实际运行的画面,不是设计稿。

首页:纯黑海报墙 + 「精选推荐」Hero 轮播(模糊背景 + 右侧清晰海报,Apple TV 式双层显示):

AMUTV 首页

播放器:左上角片名与线路、右上角画质 / 网速 / 时间徽章,底部进度条与「上一集 / 15 秒 / 播放 / 下一集 / 语音」控制行,再下面是选集、换源、倍速、字幕、弹幕、更多设置:

AMUTV 播放器

播放器右侧「选集」抽屉:选集 / 换源 / 字幕 / 弹幕四个 Tab,集数缩略图网格、片头片尾标记(标记后进度条上出现定位点并自动跳过):

AMUTV 选集抽屉

搜索页:大搜索框、搜索历史与热搜榜、多源实时测速状态条(每源延迟一目了然)、跨源合并的统一海报墙与「N 源可播」角标:

AMUTV 搜索页

设置页「网络与蓝牙」:WiFi 已连接状态与信号、一键扫描;蓝牙扫描出的设备带 MAC 与 RSSI,直接配对:

AMUTV 设置页网络与蓝牙

语音搜索与控制

电视上打字是真的烦:遥控器上一个拼音要上下左右点四下。1.4 版加了语音,说一句就行。

想做什么 可以这么说 实际动作
搜片 看庆余年 / 我想看繁花 / 帮我搜一下狂飙 跳搜索页并聚合搜索
播放控制 暂停 / 继续 / 下一集 / 跳到第 5 集 播放、切集
进度 快进 30 秒 / 后退十秒 / 从头播放 相对拖动 / 归零
音量 声音大一点 / 音量调到 50 / 百分之八十 / 静音 ±10% 或指定值
倍速 1.5 倍速 / 两倍 / 正常速度 设定或 ±0.25x
页面 首页 / 打开设置 / 直播 / 我的收藏 / 观看记录 / 退出播放 切页、退出

说法不用逐字背:「我要看」「麻烦播放」「给我找」这类前缀会被剥掉,「吧 / 呢 / 啊 / 可以吗」后缀忽略,中文数字和阿拉伯数字等价(第5集 = 第五集)。面板里还有个「能做什么」按钮,直接把这张表展开在电视上。

怎么唤出:搜索框右侧的 🎤、播放器控制条上的「语音」、遥控器搜索键、遥控器语音键,以及长按 MENU 约半秒。面板开着时再按一次就是重新说。按键是在 Activity 层拦下来的——WebView 会先把按键吃掉,所以在页面里监听根本收不到。

部分盒子的 ROM 会把遥控器语音键先交给系统助手,应用收不到属正常,这也是留长按 MENU 当兜底入口的原因。

设备没有识别服务怎么办

国产盒子五花八门,很多压根没装语音识别服务(纯 AOSP 的模拟器一定没有)。这种情况不给用户甩一句「未知错误」,而是按顺序往下退:

  1. 先用应用内识别(SpeechRecognizer),边说边出字、不弹系统界面,TV 上视觉统一;
  2. 不行就拉起厂商语音 App 的识别界面(装过讯飞、搜狗之类的一般能走通);
  3. 都不行才降级——明确说清原因(缺识别服务 / 缺中文语言包 / 没给录音权限 / 连不上 / 麦克风不可用),并直接展开输入框。键盘输入的指令走同一套理解与执行,所以「看庆余年」打字和说话效果一样。

AMUTV 语音面板

上图是模拟器上的真实状态:设备没有识别服务,面板直接把键盘输入框摆出来,下面还附了说法速查表。

面板第 4 个按钮「诊断」会把设备能力一次性列出来,用来判断是设备问题还是代码问题:

AMUTV 语音诊断

识别服务 没有 + 服务包名 无 = 设备真的没识别服务,去装个识别类 App 再点「重新说」;权限 未授权 = 补录音权限;麦克风 没有 = 盒子没麦,只能键盘输入。

老实交代一句:这套东西我只在模拟器上把全链路跑通了(按钮 → 原生调用 → 回调 → 回退/提示、按键唤出、诊断、键盘输入),麦克风实际拾音出字还得在真机 / 盒子上确认。真机上说了没字,先点「诊断」看 hasRec。

几个「说错」的坑(都已修)

  • 1.5 倍速 被听成 5 倍速:归一化删标点时把小数点当成句号吃掉了;
  • 百分之八十 变成 100%:数字正则先把「百」吃掉了;
  • 声音大一点 被当成「音量 1」:中文数字得带设定语义才算数值;
  • 识别器失效后点麦克风毫无反应:ERROR_CLIENT 时释放重建再重试一次;
  • 只认 zh 的盒子识别不了中文:语言按 zh-CN → zh → cmn-Hans-CN → 系统默认 依次回退。

更多实现细节(三层回退、按键码、调试方法、已知限制)写在 docs/voice-control.md。

广告过滤:源头剔源 + 切片级三层判定

采集站的贴片广告主要有两种塞法:切片里混插几个,或者用 HLS 的 CUE 标记包一段。AMUTV 从两头治:

源头——内置的 1080P 精选只留实测没有贴片的源(非凡 / 电影天堂 / 天涯 / 豪华),带插片的暴风、量子、360、极速进黑名单,任何路径都进不了列表。

播放时——切片级过滤,三层判定:

层 判据
URL 关键词 17 条正则,覆盖通用广告目录、博彩赌博贴片、诈骗引流页面;相对路径会先转成绝对地址再判(否则 gg/promo.ts 这种会漏)
HLS 标记 #EXT-X-CUE-OUT ~ #EXT-X-CUE-IN 区间整段丢弃;#EXT-X-DISCONTINUITY 包住的广告块整块剔除
结构检测 同一播放列表里只有少数切片来自「少数派目录」时判为插片(阈值 MIN_SEG=20、OUTLIER_SHARE=0.08),合法多 CDN 轮转不会被误杀

过滤生效时会 toast 报一声「已过滤 N 个广告切片」,同一次播放只报一次;剩下 34/48 个切片导致进度条略短,属于滤镜生效的正常表现。规则表、阈值和「不能过滤的情况」(比如烧在画面像素里的跑马灯水印、广告与正片同目录同名)见 docs/ad-filter-rules.md。

下载与安装

三种方式按需选一种即可:

安卓电视 / 盒子(推荐)

  1. 到 Releases 下载 amutv.apk(约 3.4MB,3,501,279 字节,1.4 版 / versionCode 5;仓库已不再提交安装包,只从这里发布);
  2. U 盘拷贝 APK 插到电视上,用文件管理器安装(电视需先在设置里允许「未知来源」安装);
  3. 打开即用,独立运行不依赖电脑。局域网内其他设备的浏览器访问 http://<电视IP>:9978 也能直接用。

想校验下载完整性的话,1.4 版 APK 的 SHA256 是:

1
fb8c7e0c10bb749812f6b9a5490b3e7d2ba58da31e5885a70a8dfd4891d265c5

桌面电脑

git clone 仓库后双击 启动影视TV.bat,Electron 壳会自动拉起内嵌服务器。

浏览器

1
2
node server.js
# 打开 http://localhost:9978

局域网内电视、手机浏览器访问 http://<电脑IP>:9978 即可当电视应用用。

添加采集源

「设置」→ 填名称 + 苹果CMS接口地址(如 https://example.com/api.php/provide/vod/)→ 添加后顶栏「播放源」切换。站点不开跨域头时保持代理模式开启即可。直播页同理可添加 m3u / txt 直播源。

更新方法

安卓端

APK 是全量包,更新就是重新下载最新 amutv.apk 覆盖安装,数据(收藏、历史、源配置)保留。用的是同一张签名证书,覆盖安装不需要卸载;万一装完闪退,先卸载再装新版。历史版本都在 Releases 里。

版本记录

版本 日期 要点
1.4 2026-10-27 语音搜索与控制、设置页「网络与蓝牙」、语音识别的一批坑修复
1.3 2026-10-27 m3u8 广告切片三层过滤、源头剔除带片源、嗅探直链带画质
1.2 2026-10-25 播放器与搜索页重构、首页 Hero 双层轮播、外挂字幕解析修复

1.4 · 语音搜索与控制:说「看庆余年」直接搜片,「下一集」「快进 30 秒」「音量调到 50」「1.5 倍速」「打开设置」直接执行(详见上文「语音搜索与控制」);遥控器搜索键 / 语音键 / 长按 MENU 唤出;设备没有识别服务时按原因提示,并降级成键盘输入,面板里「诊断」可查设备能力。顺带把设置页补上了「网络与蓝牙」:WiFi 扫描与密码连接、蓝牙扫描 / 配对 / 连接,权限缺失按需申请,系统不允许程序化操作时跳到系统设置页兜底。

1.3 · 广告治理:源头把带插片的源拉黑(暴风 / 量子 / 360 / 极速),播放时切片级三层判定(17 条 URL 规则、CUE 区间与 DISCONTINUITY、结构少数派目录),过滤数量 toast 提示;嗅探出的直链现在带 1080P / 720P 画质标注;遥控与网盘请求改走 localhost,避免长轮询占满连接池导致换源卡死;安卓壳开放 WebView 调试,配合 adb 脚本做电视端实测。

1.2 · 2026-10-25 更新:播放器界面全面重构——顶部信息徽章 OSD、进度条片头片尾标记点与缓冲显示、三集群控制行(音量条 / 画质锁档 / 倍速快捷键)、右侧「选集 / 换源 / 字幕 / 弹幕」四 Tab 抽屉;搜索页全面重构——大搜索框、搜索历史与热搜榜、联想词、多源实时测速状态条、跨源合并的统一海报墙与综合排序;首页 Hero 轮播改为「模糊背景 + 右侧清晰海报」双层显示;同时修复了外挂 SRT/VTT 字幕无法解析的问题。

浏览器 / 桌面端

1
2
git pull        # 拉取最新代码
node server.js # 重启服务即可

用 git pull 更新代码的用户:拉取后重启服务即可(数据在浏览器 localStorage / Electron 用户目录里,不受影响)。

PWA 客户端刷新页面后会自动拿到新资源。

常见问题

现象 排查思路
安装时提示「解析包错误」 APK 下载不完整,重新下载
覆盖安装后闪退 卸载旧版后重新安装
搜索无结果 检查采集源是否可用,用顶栏测源按钮确认🟢
播放卡顿 保持自动换源开启,或在播放页手动换源
局域网设备访问不了 9978 检查电脑/电视防火墙是否放行 9978 端口
点语音没反应 / 说了不出字 先点面板里「诊断」看 识别服务:显示「没有」就装个识别类 App(讯飞语记等)再点「重新说」,或直接用键盘输入;权限 未授权就去给录音权限
遥控器语音键唤不出 部分 ROM 把语音键给了系统助手,改用搜索键或长按 MENU 约半秒
广告没过滤干净 烧在画面里的跑马灯水印、与正片同目录同名的切片滤不掉,换一个源即可;过滤过几个切片会 toast 报数
网络与蓝牙连不上 Android 10+ 系统不允许应用直接开关 WiFi,连接会走系统「添加网络」弹窗;个别盒子蓝牙只允许手动配对,会引导去系统设置

⚠️ 免责声明:本软件只提供聚合展示功能,所有资源均来自互联网公开内容,软件不参与任何资源的制作、上传、储存与下载等内容。仅供个人学习交流参考,请于安装后 24 小时内自行删除。


因为我想看就写了一个影视 TV 应用:AMUTV 下载与更新指南
https://www.amubk.cn/2026/10/25/amutv/
作者
阿木
发布于
2026年10月25日
许可协议