myBox

myBox

一个兼容 TVBox 配置协议的影视聚合播放器,同时接入 Emby / Jellyfin、SMB 共享与 WebDAV 网盘。这份设计稿画出了它在手机、平板、电视、折叠屏和双屏设备上的每一个界面。

征求意见稿 v0.3,2026 年 11 月 13 日。依据《TVBox 协议与实现规范》v1.3,界面元素均可在规范中找到对应字段。

palette点一张海报,整份设计稿会用它的颜色重新上色

21:36
长夜将尽
play_arrow继续播放 第 7 集 info详情 bookmark_add
继续观看
电视首页,960 × 540 dp主题色来自当前影片的封面。换一张海报,按钮、进度条和背景的色调会一起变。
1

设计原则与信息架构

myBox 是一个空壳:它不带任何内容,所有片单都来自用户填入的配置地址。所以界面要做两件事——让封面和视频成为画面的主角,并让「换一个源」这件高频操作随手可做。

海报是主角,界面是幕布

默认深色,像放映厅一样把光留给画面。每一屏的主题色从当前封面中提取,按钮、进度条和容器都染上影片自己的颜色;没有封面的页面才使用品牌色「丝绒红」。

切源永远一步之遥

浏览类页面的左上角始终是「源胶囊」:显示当前仓库和站点,点一下打开切源面板,左右滑动在最近用过的站点间切换。播放失败时,界面直接给出同名影片在其他站点的结果。

玻璃只给浮在内容上的层

顶栏、底栏、播放控件、面板这些悬浮层用 Haze 模糊材质,让下层的封面色透上来;内容本身保持不透明。没有实时模糊能力的设备(Android 6.0–11、低端电视盒)自动换成不透明着色层,版式不变。

一套组件,五种姿态

按窗口宽度而不是设备类型来排版:紧凑宽度用底部导航,中等宽度换成侧导航轨和双栏,电视使用以焦点为中心的 10 英尺界面。折叠屏的半开与双屏的铰链都被当成布局的分界线。

信息架构

一级入口五个,电视与平板把它们放进侧导航,手机放在底部导航栏。「媒体库」把 Emby、Jellyfin、SMB、WebDAV、AList 和本地文件收在一起;它们在切源面板里与 TVBox 站点并列,统称为「源」。

info
术语约定。本稿中「仓库」指一个配置地址(规范 §1.2 的「配置」,含多仓订阅 urls);「线路」指多仓订阅里的一条 urls[];「站点」指 sites[] 中的一项;「源」是用户口语,泛指以上任意一层以及媒体服务器。界面文案统一使用这几个词。
2

设计系统

以 Material 3 Expressive 为骨架:更大胆的形状与弹簧动效、强调型字号、按钮组与悬浮工具栏。在此之上加两层 myBox 自己的东西:Haze 模糊材质,以及从封面中提取的动态配色。

2.1 封面取色

取色统一交给 MaterialKolor 6.0:封面经过下面四步得到一个种子色,再由种子色生成整套 Material 配色角色。这一节的取色是在你的浏览器里实时计算的,逐步照搬 MaterialKolor 的流程——kmpalette 量化、material-color-utilities 的 Score 评分、2025 版配色规范——所以这里看到的颜色就是 App 里会出现的颜色。

1
缩小封面

kmpalette 先把封面缩到面积不超过 112 × 112,本张为 92 × 138。取色在后台线程完成,首帧先用品牌色,算完再用弹簧动画过渡。

2
kmpalette 量化

与 AndroidX Palette 相同的中位切分:先滤掉近黑、近白和肤色附近的低饱和颜色,再切成最多 16 个色样。本张得到 0 个,下面按像素占比排列。

3
Score 评分

MaterialKolor 把色样交给 material-color-utilities 的 Score:按色相分布与彩度打分,过滤掉灰色和占比过低的颜色,第一名成为种子色。

4
生成配色方案

按 2025 版规范(SPEC_2025)生成。内容页用 Content,主色贴近海报原色;全局界面用更安静的 TonalSpot。按钮名就是 PaletteStyle 的取值。

21:36signal_cellular_altwifibattery_5_bar
arrow_backcastmore_vert
霓虹不眠
2025 / 中国台湾 / 犯罪
play_arrow播放 第 3 集expand_more
bookmark_add收藏swap_horiz换源download缓存
选集简介相关
光年影视 1080P长风资源猫影视
12345678910
实时预览详情页按所选方案上色
rule取色规则
  • 何时取色。详情页、播放器和首页 Hero 用当前影片的封面;列表页跟随所在页面;没有封面(设置、源中心)时使用品牌种子色 #9C2C2C。
  • 缓存。种子色按 vod_pic 的 URL 做键,内存 LRU 128 条,并随观看历史一起落库,下次进入详情页无需等待解码。
  • 过渡。种子色变化时整套颜色用低刚度弹簧(约 500 ms)插值过渡,不出现硬切。电视首页焦点快速移动时,等焦点停留 300 ms 后再换色,避免闪烁。
  • 可读性。封面上的文字一律压在渐变遮罩上;配色只取 Material 角色,保证正文对比度不低于 4.5 : 1。设置里提供「高对比度」选项(对应 contrastLevel 1.0)。
  • 失败兜底。封面过灰(例如黑白片)时 Score 会退回品牌色;用户也可以在设置里关闭动态取色,固定使用品牌色。系统壁纸取色只在 Android 12 及以上提供,6.0–11 的设备不显示这个选项。
code落地建议
环节建议实现
依赖com.materialkolor:material-kolor-material3 与 material-kolor-palette 6.0.0(库的 minSdk 为 21,满足 myBox 的 minSdk 23)
图片解码Coil 3 加载 vod_pic,取色用的那次请求设 allowHardware(false),否则读不到像素
量化与评分rememberThemeColor(painter 或 loader + input, fallback = 品牌色):内部是 kmpalette 量化 + Score,在 Dispatchers.Default 计算并按输入缓存
生成方案DynamicMaterialExpressiveTheme(seedColor, isDark, style = PaletteStyle.Content, contrastLevel, animate = true),specVersion 保持默认的 SPEC_2025
作用范围详情、播放器各自包一层主题;导航栏、源胶囊等全局元素用页面主题

2.2 Haze 模糊材质

模糊层使用 dev.chrisbanes.haze 的 HazeMaterials。五档材质的模糊半径相同(24 dp),区别在着色层的不透明度:越厚,越像一块实心的面板。着色层颜色取自当前配色的 surfaceContainer,所以玻璃本身也带着封面的色调。下面这面海报墙在缓慢滚动,可以看到每一档的透出程度。底部工具栏可以关掉模糊,看看低端设备上的退化效果。

ultraThin着色 45%
播放器控件、Hero 上的按钮
thin着色 65%
顶栏、底部导航、源胶囊
regular着色 78%
播放器侧面板、电视详情浮层
thick着色 88%
底部面板、切源面板
ultraThick着色 95%
对话框、菜单
layers用在哪里
界面层材质说明
首页顶栏渐进模糊HazeProgressive.verticalGradient,上沿最糊、向下淡出,Hero 图不被一刀切开
底部导航栏thin内容滚到下面时透出颜色
源胶囊ultraThin / thin压在 Hero 上时用 ultraThin,滚动吸顶后换 thin
播放器控件ultraThin只给按钮底座,进度条区域用黑色渐变,保证画面清楚
播放器侧面板regular,黑色着色选集、线路、字幕等面板,透出画面但不抢眼
切源面板、底部面板thick信息密度高,需要接近实心
对话框、菜单ultraThick阅读型内容,几乎不透
devices性能与退化
  • 实时模糊只在 Android 12(API 31)以上启用,依赖 RenderEffect。myBox 的 minSdk 是 23,Android 6.0–11 上 Haze 默认不模糊、只画一层半透明遮罩;我们把每种材质的 fallbackColorEffect 设成对应的着色层,效果就是本稿「模糊」开关关掉时的样子,所有界面在这种状态下仍然成立。
  • 旧版本的 RenderScript 模糊不开。Haze 可以在 API 23–30 上用 RenderScript 做模糊,但官方标注为实验性:比 Android 12 慢,在后台线程计算并会丢帧,模糊会跟不上内容变化。滚动列表上的顶栏和播放控件都不适合,见附录 Q11。
  • 电视默认关闭模糊。大量电视盒子停留在 Android 9 到 11,且 GPU 弱;电视界面从一开始就按「不透明着色层 + 渐变」设计,模糊只是锦上添花,可在设置中手动开启。
  • 同一屏最多三个模糊区域,并且模糊源(hazeSource)只挂在 Hero 图和列表容器上,不挂在每张卡片上。
  • 系统「减少透明度」或省电模式开启时,强制使用退化样式。
  • 着色层上叠一层 7% 的噪点纹理,避免大面积模糊出现色带。

2.3 形状与形变

M3 Expressive 引入了一整套可互相形变的形状。myBox 用它们表达「这是谁」:每个站点、仓库和媒体服务器都会被分配一个固定形状作为图标底座,比纯色圆点更好认。鼠标移到下面的形状上,可以看到它弹性地形变成另一个形状。

category形状分配
对象形状
采集站(type 0/1)曲奇 4(方正,像一个「盒子」)
爬虫站(JAR / JS / Python)曲奇 9
HTTP API(type 4)宝石
Emby / Jellyfin四叶
SMB / WebDAV / AList / 本地拱形(像文件夹)
直播源胶囊
用户头像圆,选中时变为晴日
animation形变用在哪里
  • 按下按钮:圆角从全圆收到 8 dp,松手弹回(按钮组、分体按钮同理)。
  • 选中项:当前集数、当前站点的底座从圆角矩形变成胶囊或曲奇,选中关系一眼可辨。
  • 加载指示器:七个形状循环形变并旋转,用于配置加载、搜索中、解析中等等待 1 秒以上的场景;更短的等待不显示任何指示。
  • 电视焦点:获得焦点的站点图标由圆变为晴日,配合放大与白色描边。
LoadingIndicator,普通 / 带容器

2.4 字体

片名用思源宋体 Heavy,取电影片头字幕的气质;其余所有文字用无衬线:拉丁字母与数字用 Roboto Flex(可变字宽,配合 M3 Expressive 的强调字号),中文跟随系统(PingFang、HarmonyOS Sans、MiSans、思源黑体)。宋体只出现在片名、Hero 标题和人物首字上。

片名 Display
宋体 900 / 57
山河故梦
片名 Headline
宋体 900 / 32
潮汐之城
Headline Small 强调
黑体 700 / 24
继续观看
Title Medium
黑体 500 / 16
光年影视,更新至 12 集
Body Medium
黑体 400 / 14
暴雨夜的连环失踪案,把退休刑警和他当年放走的嫌疑人重新拴在一起。天亮之前,两人必须找到第七个孩子。
Label Medium
黑体 500 / 12
4K HDR 杜比视界 1080P 更新至 28 集
数字
Roboto Flex 等宽数字
00:42:18 / 01:58:06 8.7 1080P 128 ms
tv
电视字号放大 1.25 倍。电视界面以 960 × 540 dp 为画布,正文不小于 16 dp,按 3 米观看距离计算;焦点项的标题使用强调字重(700),不依赖颜色区分。

2.5 动效

沿用 M3 Expressive 的物理弹簧:空间位移类(位置、尺寸、形状)可以轻微过冲,效果类(颜色、透明度)不过冲。下面的曲线是本稿 CSS 里使用的弹簧近似;把鼠标移到海报上,体会电视焦点的放大手感。

空间弹簧(标准)

阻尼比 0.9,刚度 700,用于焦点放大、卡片展开、按钮形变

令牌与用途

对应 Compose MotionScheme.expressive()

令牌用途
spatial fast按钮按压形变、开关、Chip 选中
spatial default电视焦点放大、面板滑入、Hero 切换
spatial slow海报到详情的共享元素过渡
effects default封面取色的颜色过渡、模糊强度变化
  • 共享元素:点海报进入详情,海报从卡片位置飞到详情页左上,背景同时淡入同一封面的大图。
  • 系统开启「移除动画」时,所有弹簧改为 150 ms 淡入淡出。

2.6 组件

下面是 myBox 在 M3 组件之上新增或改造的部分,颜色跟随当前选中的海报。

3

自适应:五种设备

布局按窗口尺寸类别切换,而不是按设备型号。折叠屏展开、平板分屏、双屏跨屏时,同一个界面会在几种布局之间平滑过渡;电视单独使用以焦点为中心的界面。

紧凑宽度 < 600 dp
手机竖屏、折叠屏外屏。底部导航栏,单栏。
中等600 – 839 dp
折叠屏展开竖握、小平板竖屏。导航轨,列表 + 详情双栏可选。
展开840 – 1199 dp
平板横屏、折叠屏展开横握。导航轨,双栏。
大 / 超大≥ 1200 dp
大平板、桌面窗口。展开式导航轨,三栏。
电视960 × 540 dp
以 D-pad 焦点驱动,侧边导航抽屉,留出 5% 安全边距。

平板横屏:展开式导航轨 + Hero 轮播

21:36wifibattery_5_bar
光星河仓 线路一光年影视unfold_more search搜索片名、演员,跨 23 个站点mic cast林
推荐电影剧集动漫综艺纪录片短剧体育

继续观看

全部chevron_right
长夜将尽 第 7 集还剩 18 分钟
霓虹不眠 第 3 集还剩 31 分钟
末班地铁 第 19 集还剩 6 分钟
星际邮差 第 9 集还剩 20 分钟
平板横屏,1280 × 800 dp,大尺寸类别展开式导航轨底部列出最近用过的源,平板上切源少一步。
push_pin标注
  1. 展开式导航轨(WideNavigationRail)。宽度 ≥ 1200 dp 时默认展开,840–1199 dp 收起为 96 dp 图标轨,点菜单按钮可临时展开。
  2. 源胶囊在平板上不压在 Hero 图上,而是放进顶栏,与搜索框并排。
  3. Hero 轮播用 M3 Carousel 的 hero 布局:一个大项、一个中项、一个露边小项,滑动时尺寸连续变化。数据来自站点 homeVideoContent 的前 8 条。
view_quilt各页面在不同宽度下的布局
页面紧凑中等 / 展开电视
首页单列,Hero 全宽Hero 轮播 + 多行沉浸式列表,背景跟随焦点
详情单列滚动左信息右选集,或与列表组成双栏左信息,下方选集行
播放横屏全屏全屏,侧面板 360 dp全屏,面板从右侧滑入
直播上视频下频道左频道、中视频、右节目单全屏,按 OK 呼出频道
搜索单列结果左按站点分组,右结果网格左键盘,右结果
设置单列列表列表 + 详情双栏两级列表

折叠屏展开:铰链即分栏线

21:36wifibattery_5_bar
光星河仓 线路一光年影视unfold_more
剧集电影动漫综艺
更新至 12 集
长夜将尽
更新至 28 集
山河故梦
全 16 集
雪落无声
独播
风过长安
全 24 集
末班地铁
全 12 集
午夜电台
霓虹不眠
半山听雨
星际邮差
山河故梦
4K2026中国大陆古装 / 历史8.9
王朝覆灭前的最后十年,一位修史官决定把不该写进史书的事,一件件写下来。
play_arrow播放 第 1 集expand_more
bookmark_add收藏swap_horiz换源cast投屏
光年 1080P长风资源4K 线路
12345678910
折叠屏展开(书本姿态),852 × 780 dp左半屏浏览,右半屏是详情。两栏分界与折痕对齐。
在一千米以下的黑暗里,生命用光彼此说话。
杜比视界4K
深海回声 第 2 集
光年影视,1080P
18:42 / 52:10
skip_previousreplay_10pauseforward_10skip_nextsubtitlesplaylist_play
1 光之语2 无光带3 鲸落4 热泉5 归途
折叠屏半开(桌面姿态)检测到水平折叠且处于半开时,视频移到上半屏,控件放在下半屏,像一台小电视。

双屏设备:跨屏时避开铰链

21:36wifibattery_5_bar
光星河仓 线路一光年影视unfold_moresearch
推荐电影剧集动漫纪录片
check科幻20264K评分最高
北纬零度
白昼流星
星际邮差
野火
破晓行动
第七号站台
灯塔守望者
无人区来信
signal_cellular_alt
北纬零度
4KHDR102025科幻 / 冒险8.2
赤道上空的轨道电梯在一夜之间停摆,最后一班轿厢里困着十二个人和一个不该存在的信号。
play_arrow播放open_in_full跨屏播放
导演与演员
陆陆川行导演江江屿周远苏苏蔓林晚何何一舟老陈
双屏设备,2 × 540 × 720 dp铰链被识别为「分隔型折叠特征」(FoldingFeature.isSeparating),任何内容都不跨过它。点「跨屏播放」时,视频只放在一块屏上,另一块屏显示选集与弹幕。
push_pin标注
  1. 选中态:左侧列表选中的海报加一圈主色描边,右侧显示它的详情。手机上同样的点击是跳转到新页面。
  2. 详情窗格:使用 ListDetailPaneScaffold。窗格宽度跟随铰链位置,双屏设备上严格等于一块屏的宽度。
devices_fold姿态规则
  • 书本姿态(竖直折痕、半开):列表与详情分到两侧;播放时视频居左,右侧为选集。
  • 桌面姿态(水平折痕、半开):仅在播放器、直播中生效,视频上半屏,控件下半屏。
  • 完全展开:折痕不分隔内容,按窗口宽度正常排版,但避免把按钮正好放在折痕上。
  • 外屏:按紧凑手机处理;从外屏切到内屏时保留当前页面与播放进度(Activity 不重建,靠 WindowInfoTracker 监听)。
4

界面

按用户的使用路径排列,从第一次打开到看完一部剧。每一屏都给出主要设备形态、标注说明,以及它与《TVBox 协议与实现规范》中字段的对应关系。黄色数字是标注,可以用底部工具栏隐藏。

S01

启动与配置加载

只有第一次打开、或者配置地址变了,才会看到这一屏。平时启动直接用上次成功的配置进入首页,新配置在后台下载、校验,准备好了再静默替换。加载过程把每一步摊开给用户看:卡在哪一步、为什么,一目了然。

21:30signal_cellular_altwifibattery_5_bar
alt_route线路一超时,已改用线路二
myBox
星河仓 线路二
正在准备站点41 / 64
check_circle下载配置186 KB / 0.4 s
check_circle解密;pk; 密钥,AES-ECB
check_circle解析跳过 12 处注释
check_circle爬虫包 jinenge.jarmd5 一致,用缓存
progress_activity准备站点41 / 64
radio_button_unchecked直播源与壁纸
history先看观看历史 站点准备好后会自动进入首页
手机:首次加载背景是配置里的 wallpaper,下载前用品牌渐变
21:31signal_cellular_altwifibattery_5_bar
data_alert
配置无法解析
「家用精选」返回的内容不是有效配置。第 37 行第 5 列附近缺少逗号或右花括号。
34 "api": "csp_AList", 35 "ext": "./json/alist.json" 36 } 37 {"key": "douban", "name":38 "豆瓣热榜", "type": 3, 39 // 热门推荐 40 "api": "./js/通用api数据.js",
已尝试的读取方式
close明文 JSONremoveBase64(无 ** 标记)remove2423 密文remove;pk; 密钥
link配置地址https://jiayong.example/tv.json
schedule上次成功昨天 22:41,58 个站点
restore用昨天的配置继续
refresh重试description查看原文swap_horiz换仓库
手机:解析失败给出出错的行列号与原文,旁边就是恢复办法
alt_route线路一超时(15 秒),已改用线路二
myBox
星河仓 线路二
正在准备站点41 / 64
check_circle下载配置0.4 s
check_circle解密与解析;pk; 密钥
check_circle爬虫包 jinenge.jar已缓存
progress_activity准备站点41 / 64
radio_button_unchecked直播源与壁纸
返回先看观看历史 菜单换仓库或线路
电视:首次加载信息靠左,留出 5% 安全边距;不依赖模糊,背景只做渐变压暗
push_pin标注
  1. 品牌标记:曲奇 4 形的「盒子」,下方是当前仓库与线路。加载超过 1 秒才出现形变加载指示器。
  2. 当前步骤:能算出进度的步骤(站点准备、jar 下载)用线性进度条和计数;算不出的只显示形变指示器。
  3. 步骤清单:每步写出结果而不是「成功」,例如「md5 一致,用缓存」「跳过 12 处注释」,方便用户和源作者排查。
  4. 线路回退:多仓订阅里某条线路超时,自动试下一条,并在顶部说明换到了哪条。
  5. 不必干等:任何时候都能先进入观看历史;站点准备好后首页自动接管。
  6. 错误定位:宽松解析仍失败时,标出行列号并显示前后几行原文,出错行加红色竖线。
  7. 恢复操作:首选「用上次成功的配置继续」,其次重试、查看完整原文、换仓库。
  8. 电视按键:返回键先看历史,菜单键直接打开 S04 的仓库列表。
data_object与规范的对应
步骤规范依据
下载配置scheme 处理:clan://、assets://、file://,无 scheme 补 http://(§3.1.1)
解密按顺序尝试:合法 JSON → ** 标记后 Base64 → 2423 开头的 AES-CBC → ;pk; 密钥 AES-ECB(§3.1.1)
解析Gson lenient:容忍 // 与 # 注释、单引号、尾逗号(§1.3、§9.3 第 1 条)
尾部多余内容只读第一个完整 JSON 值,丢弃尾部并在步骤清单里提示(§9.3 第 13 条)
爬虫包spider 的 路径;md5;摘要;md5 不一致不报错,只是重新下载;无 md5 的缓存超过一周视为过期(§3.2、§4.3.2.1)
多仓线路urls[] 按顺序取第一个可加载的,递归深度不超过 8(§3.1.1、§3.9)
部分失败单条 site 或 parse 解析失败只丢弃该条;sites 缺失视为无点播(§3.1 降级行为)
壁纸wallpaper 三种形态,缓存到 md5(url),失败进黑名单不重试(§3.7)
  • 冷启动不阻塞:有缓存配置时跳过本屏,后台刷新;刷新后站点有增减,在首页给一条可关闭的提示。
  • 超时:myBox 取配置下载 15 秒、jar 下载 30 秒;超时的线路标记为「超时」,在 S04 中排到后面。
S02

首次使用:添加源

myBox 本身不带任何内容,第一次打开就要让用户把自己的源装进来。五种方式按使用频率排列:手机上以输入地址为主,电视上以扫码推送为主,遥控器打字只作兜底。

21:28signal_cellular_altwifibattery_5_bar
myBox
把你的片源装进来
myBox 是播放器,本身不提供任何影视内容。添加你有权使用的配置地址或媒体服务器后就能开始看。
link输入配置地址TVBox 格式,支持多仓与加密配置chevron_right
qr_code_scanner扫码扫配置二维码,或扫电视上的推送码chevron_right
devices从电脑推送同一 Wi-Fi 下用浏览器粘贴地址chevron_right
dns连接 Emby / Jellyfin自动发现局域网里的服务器chevron_right
cloud添加 NAS 或网盘SMB 共享、WebDAV、AList,直接播放chevron_right
settings_backup_restore从备份恢复
手机:欢迎海报墙是自带示意图,不来自任何源
21:29signal_cellular_altwifibattery_5_bar
arrow_back添加仓库qr_code_scanner
配置地址xinghe.example/tv.json;pk;mb2026content_paste
key识别到 ;pk; 密钥,下载后自动用 AES 解密
名称星河仓来自配置
预检通过0.6 s
alt_route多仓订阅,3 条线路默认线路一
apps64 个站点,3 个直播源,6 个解析
extension需要爬虫包 jinenge.jar2.1 MB
最近用过清空
historyjiayong.example/tv.json家用精选,昨天close
historyclan://localhost/tvbox/my.json本机存储,上周close
historyfan.example/tv10 月 28 日close
download添加并加载
手机:输入配置地址边输入边预检,添加前就知道地址能不能用
21:33signal_cellular_altwifibattery_5_bar
arrow_back连接媒体服务器
Emby / JellyfinNAS 与网盘
在局域网里找到 2 台仍在搜索
J客厅 Jellyfin192.168.1.20:8096,10.10.3Jellyfin
E书房 Emby192.168.1.31:8096,4.8.10Emby
add_link手动输入地址外网或其他网段,例如公司 Emby
登录到 客厅 Jellyfinclose
bolt快速连接密码选用户
482917
在已登录的 Jellyfin 网页或 App 里打开「快速连接」,输入这 6 位码。授权后这里自动继续。
等待授权,剩余 4:41换一个码
手机:连接媒体服务器局域网自动发现,Jellyfin 优先用 6 位码登录
myBox
用手机扫码,把源推过来
myBox 不提供任何影视内容。手机和电视连同一个 Wi-Fi,扫下面的码,在打开的网页里粘贴配置地址。
或在浏览器打开192.168.1.8:9978
等待推送
dns连接 Emby / Jellyfin
没有手机?用遥控器输入
https://xinghe.example/tv
abcdefghij klmnopqrst uvwxyz0123 456789./:- https://.json.com;pk;backspace 历史大小写添加
确认输入 返回删除一个字符 菜单从历史地址选择
电视:扫码推送为主二维码常驻左侧;键盘带常用片段,按右键进入
21:35signal_cellular_altwifibattery_5_bar
closeflashlight_onimage
tv
客厅的 myBox192.168.1.8:9978,在等待推送
把这个手机上的源推给它
星河仓线路一,64 个站点
家用精选18 个站点
IPTV 组播直播源
打开网页版send_to_mobile推送
手机扫电视上的码认出是 myBox 设备,直接列出本机的源供推送
push_pin标注
  1. 内容声明:第一屏就说清楚 myBox 只是播放器。没有内置默认地址,DEFAULT_API_URL 留空。
  2. 五种添加方式:形状图标区分来源类别(与 S04 切源面板一致):仓库用曲奇形,媒体服务器用四叶形,网盘用拱形。
  3. 地址识别:边输入边识别 ;pk; 密钥、clan://、file:// 和缺 scheme 的地址;粘贴整段分享文本时只取出其中的网址。
  4. 最近用过:保存在 api_history,单条可删;点一条直接回填。
  5. 预检:停止输入 800 ms 后下载并试解析,报告线路数、站点数和是否需要爬虫包。预检失败时按钮仍可点,进入 S01 的错误页看细节。
  6. 局域网发现:进入页面就开始广播发现,同时列出手动输入入口;服务器版本号一起显示,方便判断兼容性。
  7. 快速连接:Jellyfin 默认用 6 位码;Emby 没有这个流程,默认切到「选用户」,再输密码。
  8. 电视二维码:编码的是本机管理页地址;收到推送后,左侧换成预检结果,按确认即添加。
  9. 遥控器键盘:一行常用片段(https://、.json、;pk;),减少逐字母移动;「历史」打开 api_history。
  10. 扫码推送:手机 myBox 识别到对方也是 myBox 管理页时,直接列出本机已添加的仓库与直播源,一键推过去。
data_object与规范的对应
界面规范依据
配置地址写入 api_url,历史在 api_history;直播单独地址 live_api_url(§5.8.0)
;pk; 识别按固定字面量 ;pk; 切分,第二段是 AES 密钥(§3.1.1)
预检中的线路顶层 urls 为多仓订阅,按顺序取第一个可加载的(§3.9)
电视二维码本地服务默认端口 9978,二维码内容 http://<局域网 IP>:9978/,被占用时端口递增(§8.2、§8.8)
推送POST /action,表单 do=api 换配置、do=push 推播放地址;对应 onApiReceived 与 onPushReceived(§8.2.1、§8.8)
服务器发现UDP 7359 广播 who is JellyfinServer?;GET /System/Info/Public 取名称与版本,无需认证(§10.2)
快速连接/QuickConnect/Initiate 取码,授权后 /Users/AuthenticateWithQuickConnect;选用户用 /Users/Public(§10.3.3)
WebDAV / AListwebdav_url、webdav_username、webdav_password;列目录用 PROPFIND 且 Depth: 1(§5.8.0、§4.9.1)
SMB局域网发现后登录并选择共享,流程见 S16;配置里的 csp_Samba 站点随配置一起加载(§4.7)
  • 添加之后:进入 S01 加载;成功后直接落到首页,并弹出一次源胶囊的用法提示。
  • 跳过:只添加了媒体服务器或网盘时,首页以「媒体库」为主,点播分类入口隐藏。
S03

首页

首页由当前站点的 homeContent 和 homeVideoContent 驱动,加上本地的观看记录。手机上是一张占半屏的 Hero 海报,电视上是背景跟随焦点变化的沉浸式列表。

21:36signal_cellular_altwifibattery_5_bar
长夜将尽
更新至 12 集2026/悬疑 剧情/8.7
暴雨夜的连环失踪案,把退休刑警和他当年放走的嫌疑人重新拴在一起。
play_arrow继续 第 7 集expand_more bookmark_add info
光星河仓 线路一光年影视unfold_more cast 林
推荐电影剧集动漫综艺纪录片

继续观看

全部chevron_right
霓虹不眠 第 3 集剩 31 分
末班地铁 第 19 集剩 6 分

光年影视 热播

更多chevron_right
8.5独播
风过长安
8.4全 16 集
雪落无声
7.9全 12 集
午夜电台
山河故梦
手机,412 × 892 dp顶栏使用渐进模糊,Hero 图不会被一条硬边切开
推荐电影剧集动漫综艺纪录片
21:36
霓虹不眠
全 10 集2025中国台湾犯罪 / 动作
夜班出租车司机在后座捡到一部还在通话的手机,电话那头报出了他的名字。
第 3 集,还剩 31 分钟
继续观看
霓虹不眠 第 3 集
光年影视 热播剧集
电视,焦点移到「继续观看」后背景、标题与主题色跟随焦点项变化;焦点停留 300 ms 才换图,快速划过时不闪。
push_pin标注
  1. 源胶囊:显示「仓库 + 线路」和「站点」两级。点按打开 S04 切源面板;左右滑动在最近 3 个站点间切换,下方圆点指示位置。
  2. 分类:来自 homeContent.class,前面固定一个「推荐」。点分类进入 S06;如果站点返回了 filters,分类页会带筛选。
  3. Hero:取 homeVideoContent.list 前 5 条,6 秒自动轮换,手指按住暂停。主题色随轮换切换。
  4. 分体按钮:主按钮按本地记录直接续播;右侧箭头展开「从头播放、选集、换线路」。没有记录时显示「播放」。
  5. 继续观看:本地 VodRecord,跨站点汇总。条目上记着它来自哪个站点,点开直接回到那个站点,不需要先切源。
  6. 站点推荐行:homeVideoContent 剩余条目,按 style 决定卡片形状;站点没有推荐时,这一行换成「豆瓣热榜」或历史(设置项 home_rec)。
  7. 底部导航:thin 材质,内容滚到下面时透出颜色。
  8. 电视焦点:放大 1.08 倍 + 白色描边 + 主色光晕。不依赖模糊,任何电视盒子都能清楚看出焦点在哪。
  9. 电视分类:顶部一行,按上键从内容区回到这里,左右切换分类。
  10. 电视切源:当前源放在侧栏最上面,是站点首字的曲奇形头像,右下角的圆点表示测速结果。焦点移上去按确认打开 S04 切源面板;侧栏展开时这里显示「站点 / 仓库 · 线路」。菜单键在任何页面都能直接呼出同一个面板,只在首次进入首页时提示一次。内容区右上角只留时钟,背景大图上不压任何控件。
data_object与规范的对应
界面数据来源
分类 TabhomeContent.class[].type_name,type_flag = "1" 的分类显示文件夹图标
Hero、推荐行homeVideoContent.list[]:vod_pic、vod_name、vod_remarks
角标vod_remarks 放左下,评分放右上(采集站常带在 remarks 里,需解析)
卡片形状站点或条目的 style:rect 2:3、oval 圆形、list 横排列表、ratio 自定义比例
继续观看本地历史:站点 key + vod_id + 线路 + 集数 + 进度
背景壁纸没有 Hero 数据时用配置的 wallpaper,叠 60% 的表面色遮罩
公告配置的 notice / msg 以一条可关闭的横幅出现在 Hero 下方,见 S20
  • 加载顺序:先渲染本地「继续观看」,再并发请求 homeContent 与 homeVideoContent。站点超时(默认 15 秒,范围 5–60)后 Hero 换成壁纸,不阻塞其余内容。
  • 下拉刷新:重新请求当前站点;长按源胶囊直接进入测速。
S04

切源面板

myBox 最常用的操作。一个面板里同时完成三层选择:哪个仓库(或媒体服务器)、哪条线路、哪个站点。默认按「最近使用」排序,并带上每个站点的实测延迟,选源时不用盲猜。

21:36signal_cellular_altwifibattery_5_bar
切换源
speed qr_code_scanner 管理
点播直播
星星河仓64 个站点
家家用精选18 个站点
J客厅 Jellyfin4 个媒体库
add
线路 线路一 86ms线路二 132ms线路三 超时
全部 64可搜索 41采集 18爬虫 39网盘 7
最近使用
光
光年影视采集searchtune86 ms
check_circle
网
网盘聚合JARsearch1.2 s
push_pin
长
长风资源采集 XMLsearch64 ms
全部站点
豆
豆瓣热榜JS仅浏览120 ms
猫
猫影视JAR超时 15 s
refresh
手机:底部面板,thick 材质点站点即切换,面板收起并在首页显示可撤销的提示
21:37signal_cellular_altwifibattery_5_bar
第七号站台
中字2024/悬疑 惊悚
play_arrow播放bookmark_add
长星河仓 线路一长风资源unfold_more cast林
chevron_left网盘聚合长风资源chevron_right

长风资源 最新

更多chevron_right
中字
第七号站台
中字
灯塔守望者
HDR10
野火
破晓行动
swap_horiz已切换到「长风资源」撤销
手机:在源胶囊上左右滑动不打开面板,直接在最近 3 个站点间切换,首页内容交叉淡入
仓库与服务器
星
星河仓3 条线路,64 站点
线路一86 ms 线路二 132 ms 线路三 超时
家
家用精选18 站点
J
客厅 Jellyfin192.168.1.20
N
NAS 影音WebDAV
add添加
星河仓
点播直播
speed全部测速
全部 64可搜索 41采集 18JAR 21JS 12Python 6网盘 7
光光年影视check_circle
采集86 ms
长长风资源
采集 XML64 ms
网网盘聚合push_pin
JAR1.2 s
豆豆瓣热榜
JS120 ms
剧Py 剧场
PY310 ms
云云端 API
API210 ms
短短剧速递
JS2.4 s
猫猫影视
JAR超时
海海外采集
采集290 ms
光
光年影视
key: guangnian
JSON 采集 type 1可搜索快速搜索可筛选
接口https://api.guangnian.example/api.php/provide/vod
分类电影、剧集、动漫、综艺、纪录片、短剧
最近 24 小时可用率 99%,中位延迟 86 ms
home设为默认swap_horiz切换
平板与折叠屏展开:三栏面板左栏仓库与线路,中栏站点,右栏是焦点站点的详情与健康度。电视上布局相同,见下方。
仓库
星
星河仓线路一 86 ms
家
家用精选
J
客厅 Jellyfin
N
NAS 影音
站点点播直播
光光年影视86 ms
长长风资源64 ms
网网盘聚合1.2 s
豆豆瓣热榜120 ms
剧Py 剧场310 ms
云云端 API210 ms
长风资源
XML 采集可搜索可筛选
分类:电影、剧集、动漫、综艺、纪录片
最近 24 小时可用率 100%
OK切换到此站点 ◀回到仓库列表 长按 OK置顶、测速、隐藏 菜单关闭
电视:菜单键呼出的全屏切源不使用模糊,背景压暗到 35%,信息靠左排列,焦点项反色并放大。
push_pin标注
  1. 点播 / 直播:在直播页打开同一个面板时默认选中「直播」,列出 lives[]。
  2. 仓库与服务器:每个配置地址是一个仓库;Emby、Jellyfin、SMB、WebDAV 与仓库并列。形状按类型分配(见 2.3)。
  3. 线路:仓库是多仓订阅(urls)时出现,显示各线路的实测延迟;超时线路标红但仍可选。
  4. 查找与筛选:按名称或 key 查找;类型 Chip 由 type 和 api 特征推断(csp_ 为 JAR,.js 为 JS,.py 为 Python)。
  5. 最近使用:最多 3 个,正好对应源胶囊的左右滑动顺序。
  6. 站点行:形状图标、名称、类型徽章、能力图标(搜索 = searchable,筛选 = filterable)、健康点与延迟。当前站点整行使用容器色并打勾。
  7. 不可用站点:最近一次测速失败的站点降低不透明度,右侧给出「重试」,排序沉底,但不隐藏。
  8. 源胶囊滑动:滑动中,胶囊下方短暂出现前后两个站点名,松手即切换,并加一圈主色描边提示已变化。
  9. 撤销:切换后 4 秒内可撤销,回到上一个站点及其滚动位置。
  10. 电视焦点:焦点站点图标从曲奇形变为晴日,卡片反色放大。
  11. 按键提示:电视面板底部常驻,告诉用户每个键能做什么。
data_object与规范的对应
界面字段 / 行为
仓库配置地址(含 ;pk; 密钥、clan:// 等 scheme),历史记录 api_history
线路多仓订阅 urls[{url, name}];默认取第一条可加载的(§3.9),用户手动选择后记住
站点列表sites[] 的 key / name / type / api,默认按 indexs 排序,用户置顶优先
能力图标searchable、quickSearch、filterable
测速并发调用各站点 homeContent,超时取站点 timeout(钳制到 5–60 秒,默认 15)
直播 Tablives[] 的 name;格式由内容嗅探(txt / m3u)决定,不看扩展名
设为默认写入 home_api,下次启动直接进入该站点
gesture四种切源入口
  • 点源胶囊:手机、平板打开本面板(底部面板 / 三栏);电视上对应的是侧栏最上面的源头像,按确认打开全屏面板。
  • 滑源胶囊:最近 3 个站点之间直接切换。
  • 遥控器:菜单键在任何页面打开面板,是电视上最快的入口,但不在界面上常驻提示;首页上按「频道 + / −」在最近站点间切换。
  • 被动切换:站点加载失败或片源失效时,页面给出「试试其他站点」,直接跳到 S09 同名换源。
S05

源中心

切源面板(S04)负责「选」,源中心负责「管」:添加、排序、隐藏站点,决定哪些站点参与搜索,查看爬虫包和解析的状态,必要时直接看解密后的原始配置。所有来源(仓库、媒体服务器、网盘、直播)在这里同级排列。

21:40signal_cellular_altwifibattery_5_bar
源中心speedmore_vert
全部 9仓库 2服务器 2网盘 2直播 3
星
星河仓默认
今天 20:14 更新,多仓订阅
more_vert
64站点
3直播
6解析
verified爬虫包
线路一 86ms线路二线路三
家
家用精选解析失败,正在用昨天的缓存
more_vert
18 站点,1 直播,2 解析查看原因重试
J
客厅 Jellyfin已登录 林,4 个媒体库
N
NAS 影音WebDAV,192.168.1.5
link配置地址 qr_code_scanner扫码 dnsEmby / Jellyfin lanSMB 共享 cloudWebDAV / AList live_tv直播源 close
手机:来源列表,展开添加菜单FAB 菜单的五项与 S02 的五种添加方式一一对应
21:41signal_cellular_altwifibattery_5_bar
arrow_back星河仓refreshmore_vert
站点 64解析 6直播 3原始配置
sort配置顺序arrow_drop_down 可搜索 41 speed测速
drag_indicator光光年影视采集 JSON86 mssearchvisibility
drag_indicator长长风资源采集 XML132 mssearchvisibility
drag_indicator豆豆瓣热榜JS drpy2210 mssearch_offvisibility
drag_indicator网网盘聚合JARcsp_AList95 mssearchvisibility
drag_indicator猫猫影视JAR340 mssearchvisibility
drag_indicatorPPy 剧场Python超时 15 ssearchvisibility
drag_indicator云云端 APIAPI156 mssearchvisibility
drag_indicator短短剧速递JS188 mssearchvisibility
drag_indicator海海外采集已隐藏,不出现在切源面板searchvisibility_off
拖动调整顺序;首页、切源面板和搜索结果都按这个顺序排列。
手机:仓库详情,站点页每行两个开关:参与搜索、在切源面板显示
21:43signal_cellular_altwifibattery_5_bar
arrow_back原始配置searchcontent_copyshare
lock_open
已用 ;pk; 密钥解密,以下是明文线路一,今天 20:14 下载,186 KB;跳过 12 处注释
spidersiteslivesparsesflagsrules
1// 星河仓 线路一 2026.11 2{ 3 "spider": "./jar/jinenge.jar;md5; 4 9cc29f6286b2fe7910628852929c4bdb", 5 "wallpaper": "./img/bg.jpg", 6 "sites": [ 7 // 采集 8 {"key": "guangnian", 9 "name": "光年影视", "type": 1, 10 "api": "https://gn.example/api.php 11 /provide/vod", 12 "searchable": 1, "filterable": 1}, 13 {"key": "changfeng", 14 "name": "长风资源", "type": 0, 15 "api": "https://cf.example/xml"}, 16 // 爬虫 17 {"key": "douban", "name": "豆瓣热榜", 18 "type": 3, "api": "./js/drpy2.min.js", 19 "ext": "./js/豆瓣.js", "searchable": 0}, 20 {"key": "wpjh", "name": "网盘聚合", 21 "type": 3, "api": "csp_AList", 22 "ext": "./json/alist.json"}, 23 {"key": "pyjc", "name": "Py 剧场", 24 "type": 3, "api": "./py/剧场.py", 25 "timeout": 15}, 26 …
download另存为文件bug_report发给源作者
手机:原始配置解密并补全路径后的文本,排查站点为何没出现
源中心speed
全部仓库服务器网盘
星星河仓64 站点,线路一默认
家家用精选解析失败,用缓存
J客厅 Jellyfin4 个媒体库
E公司 Emby登录已过期
NNAS 影音WebDAV
AAList 网盘AList v3
直播
组IPTV 组播txt,126 个频道
全全球频道m3u,2304 个频道
add添加
星
星河仓默认
xinghe.example/tv.json;pk;••••••,今天 20:14 更新
refresh刷新data_object原始配置more_vert
线路线路一 86ms线路二 132ms线路三 超时当前线路失败时按顺序回退
站点 64解析 6直播 3规则与广告
sort配置顺序speed全部测速
站点类型搜索筛选超时延迟显示
drag_indicator光年影视采集 JSON15 s86 msvisibility
drag_indicator长风资源采集 XML15 s132 msvisibility
drag_indicator豆瓣热榜JS drpy2不支持15 s210 msvisibility
drag_indicator网盘聚合JAR30 s95 msvisibility
drag_indicator猫影视JAR15 s340 msvisibility
drag_indicatorPy 剧场Python15 s超时visibility
drag_indicator云端 APIAPI20 s156 msvisibility
drag_indicator短剧速递JS15 s188 msvisibility
drag_indicator海外采集采集 JSON60 s—visibility_off
extension爬虫包全部重下
check_circlejinenge.jar2.1 MB
md5 一致:9cc29f62…4bdb
check_circle通用.jar(3 个站点)1.4 MB
猫影视.jar 无 md5缓存 5 天
满一周后自动重新下载
route解析默认:自动
自动按顺序逐个尝试
线路一解析JSON
夜幕JSON
虾米嗅探
VIP 标志:qq、qiyi、youku、mgtv
壁纸配置里的 1 张
平板:列表与详情并排左栏所有来源,右侧站点表格可多选批量操作;爬虫包、解析、壁纸的状态固定在侧栏
push_pin标注
  1. 来源分类:仓库、媒体服务器、网盘、直播源同级管理,数量写在 Chip 上。
  2. 仓库卡:状态点 + 更新时间 + 四个数字(站点、直播、解析、爬虫包)。长按卡片进入排序。
  3. 默认与线路:默认仓库决定冷启动加载哪一个;多仓订阅的线路就地切换,不必进详情。
  4. 失败也能用:刷新失败时保留上次成功的配置,卡片标红并给出原因和重试。
  5. FAB 菜单:Expressive 的 FAB 展开为五个胶囊,与首次添加的入口一致;底部压暗而不是整屏遮罩。
  6. 排序:默认按配置顺序,可改为「按延迟」或「按名称」;手动拖动后自动切到「自定义」。
  7. 两个开关:放大镜控制是否参与聚合搜索;眼睛控制是否在切源面板与首页出现。隐藏的站点沉到列表底部。
  8. 测速:并发请求每个站点的首页接口,结果写回切源面板的延迟与健康点。
  9. 原始配置:显示解密并补全相对路径后的文本,可按顶层键跳转、搜索、导出。
  10. 爬虫包:顶层 spider 与站点级 jar 分开列出,各自显示 md5 结果与缓存年龄。
  11. 解析:配置里有解析时,列表最前面总有一条「自动」;VIP 标志来自顶层 flags。
  12. 壁纸:可关掉配置壁纸,改用封面取色的渐变背景。
data_object与规范的对应
界面规范依据
站点类型徽章type 0 XML 采集、1 JSON 采集、3 爬虫、4 HTTP API;爬虫再按 api 形态分 csp_ JAR、.js、.py(§3.4、§4.1)
搜索开关站点 searchable(默认 1,为 0 时置灰);用户选择存于 checked_sources_for_search(§3.3、§5.8.0)
筛选、超时filterable;timeout 钳制到 5–60 秒,缺省 15 秒(§3.3)
排序配置顺序即 sites[] 顺序,indexs 作为首页权重参考;用户自定义顺序只存在本地(§3.3)
线路顶层 urls[] 多仓订阅(§3.9)
爬虫包路径;md5;摘要,md5 段可以是 URL;无 md5 的缓存超过一周重新下载;站点级 jar 单独加载(§3.2、§4.3.2.1)
解析parses[] 的 type:0 嗅探、1 JSON、2 JSON 扩展、3 聚合;非空时插入 name="自动"、type=4(§3.1、§3.5)
VIP 标志顶层 flags 是字符串数组,决定是否走解析(§3.5)
壁纸wallpaper 支持单个、逗号分隔、数组三种写法(§3.7)
原始配置按 §3.1.1 解密、按 §3.8 补全相对路径后的结果
  • 电视上:源中心与 S04 的全屏切源共用三栏布局,按菜单键切到「管理」模式,开关用确认键切换。
  • 导入导出:右上「更多」里可导出全部来源为一个 JSON 文件(不含密码),也可从文件恢复。
S06

分类与筛选

分类页完全由站点返回的数据决定:有哪些分类、能筛什么、卡片长什么样、有没有下一层。myBox 只做两件事:把站点给的筛选项排得好用,把文件夹、圆形、列表这些不同形态都画得像样。

21:50signal_cellular_altwifibattery_5_bar
arrow_back
电影光年影视,共 1286 部
searchview_agenda
推荐电影剧集动漫综艺纪录片
剧情close2025close swap_vert最新 tune
8.5HD
风过长安
8.7HD
长夜将尽
抢先版
无人区来信
8.1HD
半山听雨
HD
第七号站台
7.6HD
少年与海
4K
冰河纪事
HD
野火
HD
破晓行动
正在加载第 3 页,共 41 页
手机:分类网格已选的筛选以 Chip 留在顶部,点 × 单独撤掉
21:51signal_cellular_altwifibattery_5_bar
筛选重置
类型
全部剧情喜剧动作爱情科幻悬疑
地区
全部大陆香港台湾日本韩国美国
年份
全部20262025202420232022更早
语言
全部国语粤语英语日语
排序
最新最热评分
bolt
点选即生效背后的网格已按「剧情 2025」刷新
完成
手机:筛选面板每组单选、横向滑动;分组与选项完全来自站点的 filters
21:54signal_cellular_altwifibattery_5_bar
arrow_back
自然纪录网盘聚合,3 个文件夹,2 个视频
grid_view
home纪录片chevron_right共享盘chevron_right自然纪录
folder深海回声 第一季6 个视频,2024chevron_right
folder深海回声 第二季6 个视频,2026chevron_right
folder冰河纪事4 个视频,2024chevron_right
58:40
深海 幕后花絮.mkv1080p,2.3 GBmore_vert
1:02:15
海岸线 特别篇.mp44K HDR,6.8 GBmore_vert
info站点把这一级标成文件夹型分类,返回键回上一级并恢复滚动位置。
手机:文件夹层级,列表样式面包屑可直接跳回任一级;文件夹在前、视频在后
推荐电影剧集动漫综艺纪录片
21:42
tune类型:剧情 地区:全部 年份:2025 排序:最新 1286 部,第 1 / 41 页上回到筛选
风过长安
8.1
半山听雨
无人区来信
长夜将尽
第七号站台
少年与海
电视:分类页,焦点在网格筛选折叠成一行下拉 Chip,焦点移上去按确认展开选项列表
21:56signal_cellular_altwifibattery_5_bar
arrow_back
影人豆瓣热榜
search
热映高分影人片单
林
林川23 部作品
苏
苏晚17 部作品
周
周屿31 部作品
沈
沈默12 部作品
顾
顾北9 部作品
许
许念26 部作品
陈
陈野14 部作品
江
江离8 部作品
白
白桦19 部作品
已到最后一页
手机:圆形样式站点声明 oval 时用圆形卡;影人即文件夹
push_pin标注
  1. 分类:与首页同一组 Tab,左右滑动切换分类并保留各自的筛选与滚动位置。
  2. 已选筛选:只显示偏离默认值的项;全部清掉后这一行只剩排序与筛选按钮。
  3. 排序:站点筛选里名为「排序」或 key 为 by、sort、order 的一组提出来单独放,其余进筛选面板。
  4. 卡片形状:按 style 选择 2:3 海报、16:9 横图、圆形或列表;ratio 直接决定比例和每行列数。
  5. 分页:滚到倒数第二行时预取下一页;page < pagecount 才继续,到底显示「已到最后一页」。
  6. 筛选组:顺序、名称、选项全部照搬站点返回;选项超出一行时横向滑动,不折行。
  7. 默认值:每组初始选中 init 对应的项;没有 init 时选中第一项。
  8. 即时生效:每次点选都会重新请求第 1 页,背后网格交叉淡入;「完成」只是收起面板。
  9. 面包屑:进入文件夹时追加一级,点任意一级直接跳回;层级超过 4 级时中间折叠为「…」。
  10. 列表样式:文件夹用色块图标,视频用横图缩略;网盘类站点默认列表,可切回网格。
  11. 电视筛选行:每组一个下拉 Chip,按上键从网格回到这一行,左右移动、确认展开。
  12. 电视焦点:放大 + 白描边,标题加粗并下移,网格其余海报保持原样不压暗。
  13. 圆形样式:圆形卡用于影人、频道、歌手这类条目;没有图时用主题色渐变与首字。
data_object与规范的对应
界面规范依据
分类 TabhomeContent.class[]:type_id、type_name;type_flag 为 "1" 是文件夹型(§4.3.5)
筛选面板filters 的键等于 type_id,每组 key、name、init、value[{n, v}](§4.3.5)
请求爬虫 categoryContent(tid, pg, filter, extend),所选 key → v 组成 extend(§4.3.3);采集站 ac=videolist|detail&t=&pg=,type=1 另带 f=(§3.4)
站点开关filterable 为 0 时不显示筛选按钮(§3.3)
分页爬虫 page、pagecount、limit、total;XML 的 page、pagecount、pagesize、recordcount(§4.3.5、§4.2.2)
文件夹vod_tag = "folder" 的卡片点击进入下一级(§4.3.5)
卡片样式style.type 为 rect、oval、list,缺省 rect;ratio 缺省 oval 1.0、其他 0.75,上限 4(§4.3.5)
快捷分类站点 categories 只作 UI 快捷标签,不影响请求(§4.2.4)
  • 标题里的总数:只有站点给了精确 total 或 recordcount 才显示,否则只显示页数。
  • 平板与折叠屏:筛选面板改为左侧常驻栏,网格列数按宽度自适应,见 第 3 章。
S07

聚合搜索

一次输入,同时问几十个站点。结果按站点返回的先后陆续出现,不等最慢的那个;同名作品默认合并成一条,标出它在哪些站点有、各更新到第几集。失败的站点单独列出,可以重试或排除。

22:02signal_cellular_altwifibattery_5_bar
tune41 个站点参与bolt快速模式
最近搜索delete_sweep
长夜将尽风过长安深海回声林知夏末班地铁星际邮差
热搜来自豆瓣热榜,每小时更新
1山河故梦热
2长夜将尽trending_up
3风过长安trending_up
4雪落无声
5星际邮差新
6午夜电台trending_down
7破晓行动
8小镇夏日
9深海回声
10霓虹不眠新
手机:搜索首页搜索范围、最近搜索与热搜;点任一词直接搜索
22:03signal_cellular_altwifibattery_5_bar
arrow_back
已搜 23 / 41 个站点,找到 9 部
movie按影片dns按站点 grid_view
长夜将尽2026,剧集,悬疑最新:更新至 12 集
光12 集长12 集猫10 集+3
午夜电台2024,剧集,都市全 12 集
光全 12网4K
长夜将尽 幕后特辑2026,纪录片全 3 期
光3 期
movie
夜航船2019,电影站点没有提供封面
长HD
还在等 18 个站点,最慢的会在 15 秒后放弃
手机:结果陆续到达,按影片合并同名同年合为一条,来源 Chip 按站点顺序排列
22:04signal_cellular_altwifibattery_5_bar
arrow_back
搜索完成,36 个站点有结果,3 个失败check_circle
movie按影片dns按站点 view_list
全部 52光年影视 6长风资源 5猫影视 4网盘聚合 3
12 集
长夜将尽
全 12 集
午夜电台
3 期
长夜将尽 幕后特辑
movieHD
夜航船
2 集
午夜电台 番外
movieTC
守夜人手记
error3 个站点没有返回全部重试
Py 剧场超时 15 s重试
海外采集HTTP 403重试
短剧速递返回内容无法解析排除
手机:按站点查看,缩略图视图失败的站点集中在底部,单个重试或从搜索中排除
searchCYJJ
ABCDEF GHIJKL MNOPQR STUVWX YZ1234 清空backspace
输入片名拼音首字母,如「长夜将尽」输入 CYJJ
联想
search长夜将尽
search长夜将尽 幕后特辑
history长夜将尽 粤语
最近搜索
风过长安
深海回声
长夜将尽已搜 23 / 41
12 集
长夜将尽6 个站点
3 期
幕后特辑光年影视
movie
长夜将尽 粤语长风资源
smartphone手机上搜,点「推到电视」,结果直接出现在这里
右选联想词或结果 返回删一个字母 菜单搜索范围
电视:首字母键盘 + 联想 + 结果三栏焦点从左往右走:打字、选词、选结果,结果同样边到边显示
22:06signal_cellular_altwifibattery_5_bar
arrow_back
search长夜将尽north_west
search长夜将尽 幕后特辑north_west
history长夜将尽 粤语north_west
bolt快速搜索8 个站点,0.6 s
长夜将尽更新至 12 集
光光年影视长长风资源
长夜将尽 幕后特辑全 3 期
光光年影视
长夜长叶常夜长野
qwertyuiop
asdfghjkl
搜索全部
手机:输入中的快速搜索只问开了快速搜索的站点;「搜索全部」才问所有站点
push_pin标注
  1. 搜索范围:默认是所有可搜索站点;点开可以按仓库、类型勾选,也能一键「只搜当前站点」。
  2. 最近搜索:保存在本机,最多 20 条,长按单条删除。
  3. 热搜:取自首页推荐来源;用户没有配置豆瓣类站点时,这一块换成「最近看过的作品」。
  4. 流式进度:每个站点一格,蓝色有结果、浅色无结果、红色失败、灰色仍在等;结果到一批插一批,不打乱已显示的条目。
  5. 视图切换:「按影片」合并同名同年,「按站点」逐站列出;右侧按钮切换列表与缩略图。
  6. 合并结果:显示各站点的更新进度,点 Chip 直接进入那个站点的详情;点卡片默认进入排在最前、集数最多的站点。
  7. 站点 Tab:按结果到达顺序排列,数字是该站结果数。
  8. 失败站点:写清原因(超时、HTTP 状态、格式错误),可单独重试,也可直接从搜索范围里排除。
  9. 电视键盘:A–Z 与数字,输入拼音首字母,本地按历史、热搜和浏览过的片名匹配出联想词。
  10. 电视结果:选中联想词才发起真正的搜索,结果以海报卡出现;手机搜索可推送到这里(S19)。
  11. 快速搜索:输入停顿 400 ms 后只问开了快速搜索的站点,取前几条;回车或「搜索全部」才是完整搜索。
data_object与规范的对应
界面规范依据
参与范围站点 searchable(默认 1);用户勾选存于 checked_sources_for_search(§3.3、§5.8.0)
快速搜索站点 quickSearch(默认 1);开关 fast_search_mode;爬虫收到 searchContent(key, quick=true)(§3.3、§5.8.0、§4.3.3)
请求采集站 {api}?wd=关键词,type=1 附加 ac=detail(§3.4);爬虫第 2 页起用三参 searchContent(key, quick, pg)(§4.3.4)
Python 站点宿主只传两个参数,永远拿不到 pg,因此这类站点不显示「加载更多」(§9.3 第 15 条)
超时每站 timeout 钳制到 5–60 秒,缺省 15 秒(§3.3)
历史与视图search_history;search_view 0 列表、1 缩略图(§5.8.0)
远程搜索局域网 POST /action、do=search,对应 onTextReceived 发出搜索广播(§8.2.1、§8.8)
热搜来源首页推荐来源 home_rec:0 豆瓣热播、1 数据源推荐、2 历史(§5.8.0)
  • 并发:同时最多 8 个站点在途,按站点顺序派发;JAR 与 Python 站点各自排队,避免同一引擎被打满。
  • 合并规则:片名去空格、去全半角差异后比较,年份相差 1 以内视为同一部;拿不准时宁可不合并。
S08

详情

详情页整页取色于这部影片的封面。首屏只回答三件事:这是什么片、从哪一集接着看、用哪条线路看;简介、演职员和推荐放在下滑之后。

21:36signal_cellular_altwifibattery_5_bar
arrow_backsharemore_vert
长夜将尽
THE LONG NIGHT ENDS
2026中国大陆悬疑 剧情
8.7更新至 12 集光年影视
play_arrow继续 第 7 集 18:42expand_more
bookmark已收藏 swap_horiz换源 download缓存 cast投屏
光年 1080P光年高速备用 m3u8
12 集,已看到第 7 集 swap_vert正序grid_view
123456789101112schedule
简介展开
暴雨夜的连环失踪案,把退休刑警和他当年放走的嫌疑人重新拴在一起。天亮之前,两人必须找到第七个孩子。
手机首屏背景大图向下渐隐到表面色,海报与片名压在渐隐区
21:36signal_cellular_altwifibattery_5_bar
arrow_back
长夜将尽第 7 集,光年 1080P
play_arrow继续
简介
暴雨夜的连环失踪案,把退休刑警和他当年放走的嫌疑人重新拴在一起。天亮之前,两人必须找到第七个孩子。十二集里,每一集都是这个雨夜里的一个小时。
check站点简介豆瓣简介来源 vod_content
导演沈既白
类型 / 地区 / 年份悬疑 剧情 / 中国大陆 / 2026

演职员

沈沈既白导演 周周砚主演 林林知夏主演 顾顾远山主演 许许棠主演
travel_explore
另有 4 个站点有这部长风资源最快,64 ms,同为 12 集
chevron_right

光年影视 悬疑分类

更多chevron_right
中字
第七号站台
全 12 集
午夜电台
全 10 集
霓虹不眠
风过长安
手机下滑后顶栏吸附为 thin 材质,带一个小号「继续」按钮
21:36wifibattery_5_bar
山河故梦
4K2026中国大陆古装 / 历史
8.9更新至 28 集光年影视
王朝覆灭前的最后十年,一位修史官决定把不该写进史书的事,一件件写下来。
play_arrow播放 第 15 集expand_more bookmark_add swap_horiz cast
导演与演员
秦秦怀古导演萧萧景行主演宁宁晚照主演谢谢长安主演裴裴昭主演
选集swap_vert倒序grid_viewview_list
光年 4K(28)光年 1080P(28)长风备用(26)
1–2021–28
12345 678910 1112131415 1617181920
同类推荐
上次看到第 15 集 26:10剩 19 分钟,光年 4K
play_arrow
平板横屏与折叠屏展开左侧信息直接压在背景大图上,右侧选集面板用 regular 材质,透出封面色
风过长安
独播2026中国大陆古装 / 悬疑8.5
上元夜,长安城一百零八坊同时熄灯。不良帅只有一个时辰。
导演 季长风 主演 顾青辞 / 沈落 / 李慕白
play_arrow继续 第 12 集 bookmark_add收藏 swap_horiz换源
光年 1080P光年高速长风备用 1–1011–2021–28
第 10 集 第 11 集 第 12 集 第 13 集 第 14 集 第 15 集 第 16 集 第 17 集
OK播放这一集 ▲线路与分段 长按 OK从头播放 菜单换源
同类推荐
电视详情,960 × 540 dp进入时焦点落在「继续」按钮;按下键到选集行,焦点自动停在上次看的那一集
push_pin标注
  1. 身份区:海报、宋体片名、英文名、年份 / 地区 / 类型、评分与更新角标,以及这条记录来自哪个站点。片名过长时缩到 24 dp,最多两行。
  2. 分体播放按钮:有记录时显示「继续 第 7 集 18:42」,右侧箭头展开「从头播放」「选择线路」「播放下一集」。没有记录时显示「播放 第 1 集」。
  3. 四个次要操作:收藏、换源(S09)、缓存、投屏(S17)。已收藏时图标填充、文案改为「已收藏」。
  4. 线路 Tab:由 vod_play_from 按 $$$ 拆分得到,Tab 上的名字原样显示站点给的线路名。
  5. 正序 / 倒序:切换后记住在这部片上(对应 VodInfo.reverseSort),连载剧常用倒序看最新一集;右侧切换网格或列表。
  6. 选集网格:已看的集数降低对比并加下划线,正在看的一集变成胶囊形;最后一格的时钟表示「还在连载」。超过 50 集时网格上方出现「1–50 / 51–100」分段。
  7. 吸顶顶栏:下滑越过播放按钮后,顶栏换成 thin 材质,保留片名与「继续」,随时可以开播。
  8. 简介来源:默认显示站点的 vod_content(先去 HTML 标签);可切换豆瓣简介,只有在 ID 或片名与年份都对得上时才显示,对不上就不显示,绝不借用别的片子的简介。
  9. 演职员:来自 vod_director 与 vod_actor,按逗号或斜杠拆分。站点不给头像,用人名首字配一个固定形状。
  10. 同名影片入口:后台用快速搜索查找其它站点的同名影片,找到后在这里提示数量和最快的那个。
  11. 平板选集面板:选集与线路常驻右侧,左侧信息不随选集滚动。
  12. 电视线路与分段:一行内放下线路 Chip 和分段 Chip,按上键进入;电视每段 10 集,正好一屏一行。
  13. 电视选集焦点:主色填充、放大 1.08 倍并加白色描边。
  14. 按键提示:常驻在选集行下方。
data_object与规范的对应
界面字段 / 规则
请求detailContent([vod_id]) 返回 {"list":[Vod]}(§4.3.5);采集站为 {api}?ac=videolist|detail&ids=(§3.4)
身份区vod_name、vod_pic、vod_year、vod_area、type_name、vod_remarks
线路 Tabvod_play_from,多线路以 $$$ 分隔
选集vod_play_url:线路之间 $$$,线路内各集以 # 分隔,每集为 名称$播放值;名称里的 $ / # 需先替换(§9.3 第 8 条)
指定起播vod_play_id(新 SDK,旧引擎可能不读)
简介vod_content 经 HTML 清理;豆瓣简介按 §4.8 的身份匹配与三道闸门
演职员vod_director、vod_actor
续播位置进度按 站点 key | vod_id | 线路 flag | 集序号 分别保存,不同线路各自独立(§8.9)
播放详情更新playerContent 回传的 list[0] 会更新本页的线路与选集,保留当前选集位置(§5.5)
  • 大对象不走页面参数。详情数据放在内存仓库里,路由只传站点 key 与 vod_id,避免 Android 的 TransactionTooLarge(§5.2.2 的做法)。
  • 共享元素过渡。从卡片点进来,海报飞到身份区,背景大图同时淡入;取色在海报落位前完成。
  • 文件夹条目(vod_tag = folder)不进详情页,而是进入下一级列表(见 S06)。
S09

同名换源

同一部片在别的站点往往也有。换源不是重新搜索一遍,而是一张随时能拉起的面板:按速度、集数和画质排好,点一下就从刚才的进度接着播。播放失败时,myBox 会按同一张清单自动换下一个。

21:38signal_cellular_altwifibattery_5_bar
长夜将尽
换源《长夜将尽》2026,按片名与年份匹配
tune
已问过 18 / 26 个站点,找到 5 个还剩 8 个
bolt最快集数最多画质最高filter_alt只看同年
同名同年
光
光年影视 采集12 集,3 条线路,当前正在用
当前
长
长风资源 采集12 集,2 条线路,从第 7 集 18:42 接着播
64 ms
猫
网飞猫 JS12 集,4K 与 1080P 两条线路
128 ms
七
七七影院 JAR11 集,比当前少 1 集
410 ms
名字相近,可能不是同一部
长夜将尽(电影版)豆瓣片库,2019,1 集
chevron_right
info未开启快速搜索的 6 个站点已跳过;网盘与媒体库不参与换源。
autorenew
播放失败时自动换源先换本站线路,再按上面的顺序换站点
手机,详情页上拉起换源面板结果边搜边出,推荐项写明从哪接着播
arrow_back
长夜将尽 第 7 集光年影视,光年 1080P
error
这条线路播不了光年 1080P,解析 20 秒未返回地址
3
3 秒后换到长风资源同为 12 集,从第 7 集 18:42 接着播
已试过close光年 1080Pclose光年高速
不换了 重试本线路 swap_horiz立即换
18:4245:10
手机横屏,播放失败后自动换源先在本站点内换线路,都失败再换站点;倒计时期间可以取消
长夜将尽 第 7 集,暂停于 18:42
换源找到 5 个站点
最快集数最多画质最高
光
光年影视当前,线路失败 2 次
长
长风资源12 集,从 18:42 接着播
64 ms
猫
网飞猫12 集,有 4K 线路
128 ms
七
七七影院11 集
410 ms
help
名字相近的 1 个结果
expand_more
OK换到这里右看它的线路返回关闭
电视,播放中按菜单键选「换源」右侧面板覆盖在暂停的画面上,焦点默认落在推荐的站点
push_pin标注
  1. 边搜边出:对所有允许快速搜索的站点并发发起搜索,结果到一个排一个,顶部进度条显示还剩几个站点。并发数默认 6,单站超时沿用站点自己的超时。
  2. 排序与筛选:最快(按本次响应时间)、集数最多、画质最高(按线路名里的 4K / 1080P 等字样估计)。「只看同年」默认关闭,年份缺失的结果也保留。
  3. 当前站点:排在最上面,弱化显示,标「当前」。
  4. 推荐项:排序第一且集数不少于当前的那一个,用主色容器高亮,副标题直接写「从第 7 集 18:42 接着播」,换过去就从这里开始。
  5. 名字相近:片名包含关系、年份不同或集数差得多的结果放到这一组,点开先进详情页确认,不直接替换播放。
  6. 跳过说明:不参与快速搜索的站点、网盘和媒体库不在这里出现,并写明原因,免得用户以为漏搜了。
  7. 失败自动换:起播失败、解析超时、连续卡顿 15 秒,都算失败。先在本站点换下一条线路,再按清单换站点。
  8. 倒计时:3 秒环形倒计时,期间可以取消、重试或立即换。设置里可以关掉自动换源,或改成「只提示不自动换」。
  9. 电视排序:和手机一致,按上键进入排序行。
  10. 电视焦点:焦点项反色并放大;坏掉的当前站点挂红点。
  11. 电视按键:按右键在不离开面板的情况下展开这个站点的线路,挑一条再换。
data_object与规范的对应
界面字段 / 规则
参与站点sites[].quickSearch = 1(默认 1)且 searchable 不为 0(§3.3)
搜索调用searchContent(片名, quick = true),返回 {"list":[Vod]}(§4.3.3、§4.3.5)
同名判定沿用 §4.8.1、§4.8.2:标题归一化后比较,年份允许宽松匹配;绝不拿列表第一条当结果
集数与线路对候选再调一次 detailContent,数 vod_play_from 与各线路的集数
续播进度按集序号映射到新站点的同一集,起播位置写进 position;新站点的进度 key 另存(§8.9)
失败判定解析或嗅探超时(嗅探总时长 20 秒,§5.7)、parse = 0 且 url 为空(§5.2)、播放器报错
changeable原版没有调用方(§11.4 第 21 条);myBox 遵从它:为 0 的站点不出现在换源结果里
  • 结果缓存。同一部片的换源结果缓存 10 分钟,失败自动换源直接用这份清单,不再等搜索。
  • 入口。详情页的「换源」按钮、详情页里「另有 4 个站点有这部」的提示、播放器的更多菜单、电视的菜单键。
  • 不改当前站点。换源只影响这一部片,不会把首页的当前站点一起切走。
S10

播放器

播放器只在画面上留必要的东西:标题、进度和几颗按钮。其余设置都收进右侧面板,面板用压暗的 thick 材质,画面在后面继续播放。进度条上标出片头片尾和章节,跳过片头之后给一个可以撤销的提示。

这雨下得我都觉得冷 第七个孩子到底是谁 老周这个眼神绝了 前面的别剧透
你当年放他走的时候,就该想到今天。
arrow_back
长夜将尽 第 7 集光年影视 / 光年 1080P
1080P cast picture_in_picture_alt more_vert 21:40
lock_open photo_camera
replay_10 pause forward_10
fast_forward已跳过片头 1:32撤销
pause skip_next 18:42 / 45:10 subtitles 发一条弹幕 选集 线路 1.0× 字幕 弹幕
手机横屏,控制层点一下画面出现,3 秒无操作淡出;顶部与底部各一层渐变压暗,保证白字可读
选集
霓虹不眠,全 10 集
swap_vert正序
高清线路备用线路m3u8
12345 678910
片头片尾
跳过片头片尾站点提供:片头 0:00–1:32,片尾最后 2:10
自动连播下一集片尾开始时提示,10 秒后播下一集
选集面板线路、集数、片头片尾放在一起
线路与解析
北纬零度,第 1 集
线路
4K 线路直连播放2160P
奇艺线路需要解析,线路名在解析白名单里1080P
解析(只对需要解析的线路生效)
auto_awesome自动 Json 聚合 Json 并发 Web 聚合 普通嗅探 block备用解析
「自动」按顺序逐个尝试,先拿到地址的就用;标红的解析器最近连续失败,排到最后。
线路与解析面板解析器只在需要时出现,并说明为什么需要
HDR10
画质、倍速与画面
野火,HDR10
画质
4K HDR1080P720P
倍速
0.50.751.01.251.52.02.53.0touch_app长按 2.0
画面比例
默认16:94:3铺满原始大小裁剪填充
画质、倍速与画面面板画质来自站点给的多画质地址;HDR 内容在左上角标出
退潮的时候,整座城都会露出来。
字幕与音轨
潮汐之城,第 1 集
内嵌 国语 简体视频自带,按语言自动选中check
站点字幕 简中 ASS站点标记为默认
travel_explore在线搜索folder_open本地文件关闭
字号
时间偏移字幕比声音早时往后调remove-0.5 秒add
音轨
国语 AAC 5.1粤语 AAC 2.0
字幕与音轨面板调字号和偏移时,左侧画面上的字幕实时变化
前方高能这只猫是邮差吗泪目BGM 是什么
弹幕
星际邮差,第 5 集
verified已匹配 2384 条弹幕源按片名与集数找到换一个
透明度
字号
速度
显示区域
3 行半屏满屏
随机颜色
弹幕面板弹幕只铺在画面上半部分,不压字幕
杜比视界
更多
白昼流星,第 1 集
播放内核
系统IJKExo
解码
硬解软解
渲染
TextureSurface
快进步长remove10 秒add
音频直通把杜比音频原样交给功放
定时关闭
关本集结束30 分
open_in_new用其它播放器打开MX Player、Kodi、VLC、Reexchevron_right
更多面板内核、解码与渲染只影响这一部片,在设置里改全局默认
21:41signal_cellular_altwifibattery_5_bar
他一直在等这场雨。
volume_up64
speed长按 2.0× 快进中
长夜将尽第 7 集,光年影视,光年 1080P
open_in_full
选集线路字幕弹幕
5678910
接下来第 8 集本集剩 26 分钟
skip_next
同类推荐
演职员
沈沈既白导演周周砚主演林林知夏主演顾顾远山主演许许棠主演
手机竖屏播放右半屏滑动调音量,左半屏调亮度
这一段,史书上不会有。
26:10
45:00
replay_10pauseforward_10
选集线路1.0×字幕弹幕
折叠屏半折(桌面姿态)画面在上半屏,控制条常驻下半屏,不再遮挡画面
白昼流星第 1 集,光年影视,光年 4K
杜比视界21:42
16:40
16:401:58:20
playlist_play选集 线路 画质 字幕 音轨 弹幕 倍速 换源 更多
左右快退快进 10 秒,按住加速OK暂停下功能行菜单更多面板
电视,按左右键拖动进度焦点停在进度条上,上方出现预览缩略图;松手 1 秒后跳转
push_pin标注
  1. 顶栏:片名、集数、站点与线路。右侧是画质角标、投屏、画中画和更多。HDR 内容在这里同步显示 HDR 或杜比视界角标。
  2. 锁屏:锁定后只保留这颗按钮,误触不会暂停或退出。
  3. 中央按钮:播放时是圆角方形的暂停,暂停时形变成圆形的播放,按下时有弹簧回弹。两侧是快退快进 10 秒,步长可在更多面板里改。
  4. 跳过提示:按站点提供的片头时间自动跳过,并给 5 秒的撤销机会。
  5. 进度条:片头片尾用第三色标出,章节点是小竖线;缓冲段浅一层。拖动时上方出现预览缩略图。
  6. 弹幕输入:左侧图标是弹幕开关,点文字区域弹出输入框。只有站点支持实时弹幕时才显示输入区域。
  7. 功能按钮:选集、线路、倍速、字幕、弹幕,点开都是右侧面板;按钮上直接显示当前值(如 1.0×)。
  8. 选集面板:线路 Chip 在上,集数网格在下,已看的集数变暗;片头片尾与自动连播也放在这里。
  9. 线路与解析:解析器只对需要解析的线路生效,并在线路下说明原因。「自动」排第一,失败多的解析器自动排后。
  10. 画质、倍速与画面:画质来自站点给的多画质地址;倍速 0.5–3.0;画面比例六种。
  11. 字幕与音轨:字幕按「缓存、站点字幕、内嵌轨」的顺序自动选,内嵌轨优先国语;也能在线搜索或选本地文件。字号和时间偏移即时生效。
  12. 弹幕:显示匹配到的条数,可以手动换一个匹配结果;透明度、字号、速度、显示区域、随机颜色。
  13. 更多:内核、解码、渲染、快进步长、音频直通、定时关闭、外部播放器。面板内容超出时底部渐隐,提示可以滚动。
  14. 动态范围角标:面板打开时左上角显示 HDR10 或杜比视界,关闭时收起。
  15. 手势:左半屏上下滑调亮度,右半屏调音量,左右滑拖进度;双击暂停,双击左右边缘快退快进;长按 2 倍速,松手恢复。
  16. 竖屏播放页:画面固定在顶部,下方是分段按钮切换选集、线路、字幕、弹幕,以及「接下来」卡片。
  17. 桌面姿态:折叠屏半折时自动把控制移到下半屏,并放大按钮,方便放在桌上用手指点。
  18. 电视进度:左右键每次 10 秒,按住后加速;预览缩略图跟着走,松手 1 秒后才真正跳转。
  19. 电视功能行:按下键进入,左右移动焦点,OK 打开对应面板;面板与手机相同,改为焦点操作。
  20. 按键提示:控制层出现时常驻底部,3 秒后与控制层一起淡出。
data_object与规范的对应
界面字段 / 规则
起播playerContent(flag, id, vipFlags);parse、jx 决定是否进解析(§5.1、§5.2,见 S11)
请求头header(对象或字符串化 JSON);站点头、解析器头、播放头三级覆盖(§8.2)
画质url 为 {"values":[{n,v}],"position":n} 或偶数长度数组(§5.1、§5.4)
起播位置顶层 position(毫秒)优先,否则用本地进度(§8.9)
片头片尾skips[{type,start,end}],毫秒,type 为 opening / middle / ending
字幕subs[{url,name,lang,format,flag}],flag 1 默认、2 强制;加载顺序与在线搜索见 §5.12.1、§5.12.1.1;字幕键 subtitle_text_size、subtitle_time_delay
弹幕danmaku 文件为 bilibili XML;实时弹幕走 danmaku(id, emit)(§7.8);弹幕源搜索 §5.12.2.4;设置键 danmu_open、danmu_alpha、danmu_size_scale、danmu_speed、danmu_max_line、danmu_random_color
内核与渲染play_type(0 系统 / 1 IJK / 2 Exo,按分支而变)、play_render、play_scale、play_time_step、player_audio_passthrough(§5.8、§5.8.0)
解码软解与硬解是两组解码参数,不是一个布尔开关(§5.8.3)
外部播放器pl:10 MX、11 Reex、12 Kodi、14 VLC;VLC 不传请求头(§5.8.3)
HDR 与杜比视界按流探测结果路由 native-dv / base-hdr / sdr(§5.8.2.1);HDR 下文本字幕改用应用叠加层绘制(§5.8.2.7)
封面与副标题artwork、desc 用于画中画与系统媒体通知
详情更新list[0] 回传时更新选集面板,保留当前选集(§5.5)
  • 主题色。播放器整体是黑底白字,只有进度条、选中项和开关取影片封面的主色,换片时跟着变。
  • 进度保存。每 5 秒、暂停、切集和退出时保存,key 为站点、vod_id、线路与集序号四段(§8.9)。
  • 后台与画中画。离开应用时进入画中画;系统媒体通知显示封面、片名与集数。
S11

解析与嗅探

很多线路不能直接播,要先经过解析接口或网页嗅探。这段等待原版只有一个转圈,用户不知道卡在哪。myBox 把每一步摊开:问了谁、等了多久、为什么失败、下一步试什么,全部失败时给出能走的路。

arrow_back
北纬零度 第 1 集光年影视 / 奇艺线路
正在解析 这条线路需要先换成可播放的地址,通常 3 到 10 秒。
取消alt_route换线路
check_circle站点返回播放页需要解析:线路「qiyi」在解析白名单里0.4 秒
cancelJson 聚合8 秒无响应,已跳过8.0 秒
Json 并发同时询问 4 个接口,先回来的用2.1 秒
radio_button_uncheckedWeb 聚合排队中
radio_button_unchecked网页嗅探最后的办法,最多 20 秒
解析进行中左边是状态,右边是逐步清单;每一步都有耗时
arrow_back
第七号站台 第 3 集七七影院 / 网页嗅探
6
lockm.qiqi-yy.example/play/7731-1-3.html
play_arrow 已执行站点点击脚本
已检查 41 个请求拦掉广告 9 个
GET/static/js/player.min.js
GETad.cdn.example/pre-roll/15s.mp4
GET/api/getplay?vid=7731&ep=3
命中v3.cdn.example/hls/7731/3/index.m3u8
命中第一个视频地址后立即停止嗅探,带上网页的请求头开始播放。
网页嗅探后台网页缩成一张小卡片,右侧滚动显示拦截到的请求
21:44wifibattery_4_bar
边下边播,已缓冲 12%
已连接 24 个节点,3.2 MB/s
downloading
冰河纪事磁力链接,种子含 4 个文件
选择要播放的文件
Bing.He.Ji.Shi.2160p.WEB-DL.mkv8.4 GB,最大的视频文件,已自动选中
Sample.mkv120 MB
Bing.He.Ji.Shi.chs.srt字幕,已一起加载
description
种子说明.txt不是视频,已忽略
sd_card缓存目录剩余 46 GB,退出播放后 24 小时自动清理
link迅雷链接会先还原成原始地址,再按磁力或直链处理
复制链接play_arrow播放所选文件
手机竖屏,磁力与迅雷链接自动挑最大的视频文件,同名字幕一起加载
arrow_back
北纬零度 第 1 集光年影视 / 奇艺线路
link_off 没拿到播放地址 4 个解析接口和网页嗅探都失败了。多半是这条线路的源站失效,不是你的网络问题。
closeJson 聚合:8 秒无响应 closeJson 并发:4 个接口都返回空地址 closeWeb 聚合:解析器报错 close网页嗅探:20 秒内没有视频请求
swap_horiz
换源,网飞猫有这一集4K 直连,不需要解析
chevron_right
alt_route
换到 4K 线路同站点,直连播放
public
用浏览器打开播放页在网页里手动播放
refresh再试一次content_copy复制诊断信息
全部失败先说清楚失败在哪,再按「最可能成功」排列下一步
风过长安 第 12 集,光年影视,腾讯线路
正在解析,第 2 步,共 4 步已用 9 秒
cancelJson 聚合超时,已跳过
Json 并发询问 4 个接口
radio_button_uncheckedWeb 聚合排队中
radio_button_unchecked网页嗅探最多 20 秒
skip_next跳过这一步 alt_route换线路 swap_horiz换源
OK执行返回取消播放
电视,解析进行中四步横排,焦点默认在「跳过这一步」,遥控器一下就能往前推
push_pin标注
  1. 状态区:M3 Expressive 的形变加载指示器,下方一句话说明在做什么、通常要多久。不使用百分比,因为解析没有可信的进度。
  2. 逐步清单:站点、各解析器、网页嗅探依次列出;完成打勾,失败打叉并写原因,进行中的一行高亮并计时。
  3. 失败原因:用人话写:无响应、返回空地址、解析器报错。技术细节放进「复制诊断信息」。
  4. 随时退出:取消回到详情页;换线路直接打开线路面板。
  5. 网页预览:嗅探用的后台网页缩成小卡片,执行了站点点击脚本时在卡片上注明。
  6. 请求日志:显示检查过的请求数和拦掉的广告数;命中第一个视频地址就停,高亮这一条。
  7. 倒计时:嗅探最多 20 秒,右上角的环形计时显示剩余秒数。
  8. 文件选择:种子里有多个文件时默认选最大的视频文件,同名字幕自动勾上,非视频文件灰掉。
  9. 边下边播:缓冲到可播放的量就开始播,显示节点数和速度。
  10. 失败总结:先下结论(多半是源站失效),再逐条列出每一步的结果。
  11. 下一步:按成功率排序:有同名站点能直连时,「换源」排第一并用主色;然后是同站点换线路、浏览器打开。
  12. 电视步骤条:四步横排,进行中的一步用主色。
  13. 电视焦点:默认在「跳过这一步」,按 OK 直接跳到下一个解析器。
  14. 按键提示:返回键取消播放,不需要先移动焦点。
data_object与规范的对应
界面字段 / 规则
是否需要解析(playUrl 为空且 flag ∈ flags)或 jx = 1(§5.2、§5.3);parse 只认字符串 "1"(§5.2.1),myBox 同时接受数字 1
站点级解析site.playUrl 前缀,或 json:、parse: 指令前缀(§3.3)
解析器清单parses[]:0 嗅探、1 JSON、2 Json 扩展、3 Mix 扩展;非空时在最前插入「自动」(type 4)(§5.6);ext.flag 限定生效线路
JSON 解析GET {url}{目标地址},取返回里的 url;前缀直接拼接,没有占位符(§11.4 第 26 条)
网页嗅探按 URL 后缀判定视频,不看 Content-Type;rules 的正则与排除、爬虫的 isVideoFormat 依次判断;只取第一个候选,总超时 20 秒(§5.7、§11.4 第 49 条)
点击脚本site.click 为「页面片段;JS」,原样执行,不自动补 .click()(§5.7);没有时回退到 rules 里该域名的脚本
广告拦截ads 域名列表与 rules(§3.6、§8.4)
磁力与迅雷magnet:、thunder://、.torrent、ed2k://,选最大的视频文件(§5.10)
其它前缀push://、内联 DASH data:application/dash+xml;base64, 起播前识别(§5.10.1)
播放页播放页地址由 playerContent 返回 parse = 1 加网页 url 得到(§5.2)
  • 解析器成绩单。每个解析器记最近 20 次的成功率与平均耗时,「自动」按这个排序,结果在设置的「解析」页可见。
  • 预解析。播到片尾前 2 分钟,后台把下一集解析好;切集时直接用,过期就丢弃(§5.5 的预载规则)。
  • 诊断信息包含站点 key、线路 flag、每一步的请求地址(隐去 token)与耗时,方便发给源作者。
S12

直播

直播以电视为主场:开机即看,换台只用上下键,按确认键才叫出频道表。频道表三栏并排,分组、频道、节目单一眼看完。手机上把画面固定在顶部,下方是分组与频道两栏。

19:58
IPTV 组播
star收藏6 history最近12 央视24 卫视42 地方36 体育18 付费体育lock 少儿9 纪录11 4K 超清5
卫视42 个频道
025
湖南卫视
午夜电台 第 9 集
graphic_eq
026
浙江卫视
风过长安 第 3 集
027
东方卫视
半山听雨 第 3 期
028
北京卫视
雪落无声 第 11 集
029
江苏卫视
周五剧场 末班地铁
030
深圳卫视
城市夜跑
031
广东卫视
岭南食单
032
安徽卫视
周五影院 小镇夏日
浙江卫视11 月 13 日 周五
昨天今天明天
17:00少年与海 剧场版history
18:30浙江新闻联播history
19:00新闻联播history
19:35风过长安 第 3 集graphic_eq剩 27 分
20:25风过长安 第 4 集
21:20王牌对决 第 5 期notifications
22:50午夜剧场 雪落无声
上下选择左右切换栏确认播放菜单直播设置返回收起
电视,按确认键呼出频道表焦点落在频道栏,右侧节目单跟着焦点预览;画面不停,后面仍在播湖南卫视。
001
chevron_left 线路 2 / 3线路 1 连接超时,已自动切换 chevron_right
001CCTV-1 综合1080P线路 2 / 3可回看 7 天
正在播19:38山河故梦 第 21 集剩 33 分
接下来20:25山河故梦 第 22 集21:16晚间新闻
19:52 speed2.4 MB/s
电视,换台后的信息条停留 4 秒自动收起;左右键在同一频道的备用线路之间切换。
20:06signal_cellular_altwifibattery_5_bar
直播线路 1 / 2castpicture_in_picture_alt
pause19:30–21:001080Pfullscreen
东方卫视 正在播 半山听雨 第 3 期,剩 54 分
event_note star
全直播源,m3u全球频道 1403 个频道unfold_more search
star收藏 央视 卫视 地方 体育 付费体育lock 少儿 纪录
湖南卫视
午夜电台 第 9 集
浙江卫视
风过长安 第 4 集
东方卫视
半山听雨 第 3 期
graphic_eq
北京卫视
雪落无声 第 12 集
江苏卫视
周五剧场 末班地铁
深圳卫视
城市夜跑
广东卫视
岭南食单
手机竖屏画面固定在顶部,下面分组和频道两栏;源胶囊只列直播源,和点播源互不影响。
中超江城1 : 0海城63:12
arrow_back
CCTV-5 体育中超第 30 轮 江城对海城,19:35–21:30
直播20:41
pause refresh 线路 1 / 3 原始比例 event_note settings
频道节目单
search
央视卫视体育lock付费体育
005
CCTV-5 体育
中超 江城对海城
graphic_eq
006
CCTV-5+ 体育赛事
斯诺克 大师赛 1/4 决赛
061
北京体育休闲
冬训日志
062
广东体育
CBA 常规赛 第 8 轮
063
五星体育
足球之夜
手机横屏全屏从右边缘左滑拉出频道抽屉,比赛不暂停;上下滑动直接换台。
20:07signal_cellular_altwifibattery_5_bar
央视卫视体育付费体育lock少儿
lock 付费体育 输入密码后显示这个分组的频道
记住密码,以后不再询问
1234567890backspace
取消
手机,打开加锁分组输满 4 位自动校验,输错时 PIN 格横向抖一下并清空。
push_pin标注
  1. 分组栏:顶部写着当前直播源。「收藏」「最近」是本地分组,其后是源里的分组;加锁分组只显示锁,不显示频道数。
  2. 正在播放:用主色容器和音浪图标标出,和焦点(反白)区分开。频道表打开时画面继续播放。
  3. 频道焦点:频道号、台标、频道名、当前节目四样信息。在频道栏按确认就换台并收起频道表。
  4. 节目单栏:跟随焦点频道预览,可切换昨天、今天、明天。带回看图标的节目按确认直接回看,见 S13;未开播的节目可以预约提醒。
  5. 按键提示:常驻底部。左右键在三栏之间移动,菜单键打开直播设置(线路、比例、内核、超时)。
  6. 换线路:全屏时左右键在同一频道的多个地址之间切换,提示「线路 2 / 3」。连接超时会自动跳下一条,并在提示里写明原因。
  7. 换台信息条:台标、频道号、频道名、清晰度、线路、是否可回看,加上当前和下一个节目。当前节目带进度条和剩余时间。
  8. 时间与网速:分别受「显示时间」「显示网速」两个开关控制,网速是播放器最近 1 秒的下载速度。
  9. 竖屏画面:固定 16:9,左上角红色「直播」角标;点全屏图标或把手机横过来进入横屏。
  10. 直播源胶囊:和首页的源胶囊同一种组件,点开是 S04 切源面板的直播页,在「IPTV 组播」「全球频道」「B 站直播」之间切换。切直播源不影响点播站点。
  11. 分组与频道两栏:左栏分组,右栏频道;竖屏不显示频道号,节省宽度。
  12. 横屏控制:直播没有可拖的进度条,用当前节目的进度代替。刷新按钮重新连接当前线路。
  13. 频道抽屉:thick 材质,从右边缘滑出,分组用 Chip 横排,比赛画面不被挡住主体。
  14. 分组密码:数字键盘 + 4 位 PIN 格。电视上用遥控器数字键直接输入,界面相同。
data_object与规范的对应
界面数据来源
直播源列表lives[] 的 name;type = "3" 是爬虫直播(api 指向蜘蛛,如「B 站直播」),其余拉 url(§6.1)
txt 还是 m3u按内容判定:匹配 ^(?!.*#genre#).*#EXTM3U.* 即 m3u,不看扩展名(§6.3)
分组txt 的 分组名,#genre#;m3u 的 group-title,#EXTGRP 优先;没有分组的归入「未分组」
频道号tvg-chno 或 JSON number;都没有时全局递增,按 %03d 显示(§6.5)
台标m3u tvg-logo;或源级 logo 模板,替换 {name}
线路 n / mtxt 一行里用 # 分隔的备用地址;只接受 http、rtp、rtsp、rtmp(§6.2)
播放请求头txt 行尾 |user-agent=…;m3u 的 http-user-agent、#EXTVLCOPT;源级 ua、referer、origin、header,嵌套分组向下继承
当前 / 下一个节目EPG(§6.5)。频道名先按 normalizeChannelName 归一化,「CCTV-1 综合」对齐到 CCTV1(§6.5.1)
可回看源级或 m3u 的 catchup;地址含 /PLTV/ 时默认 7 天(§6.4)
分组密码源级 pass 开关;分组名用 _ 带出密码,如 央视_密码(§6.1 形态 B)
  • 换台:上下键换台,live_channel_reverse 反转方向;live_cross_group 打开时到组尾继续进入下一组。数字键直接输入频道号,停顿 1.5 秒后跳转。
  • 超时与换线:单条线路超过 live_connect_timeout 没有出画面就换下一条;全部失败时停在最后一条并提示「这个频道暂时无法播放」。
  • 开机直达:DEFAULT_LOAD_LIVE 打开时冷启动直接进直播,恢复 last_live_channel_name 记住的频道。
  • 内核:直播内核单独由 live_play_type 决定,不跟随点播。
S13

节目单与回看

节目单把「现在在播什么」和「刚才错过了什么」放在同一条时间轴上。能回看的节目带回看标记,点一下就从开头播;回看时顶部常驻一条回看条,一键回到直播。

19:58wifibattery_5_bar
节目单 组IPTV 组播unfold_more
周日 8 日周一 9 日周二 10 日周三 11 日周四 12 日今天明天
search
直播CCTV-1 综合,山河故梦 第 21 集fullscreen
已结束history可回看
山河故梦 第 20 集
CCTV-1 综合今天 18:45–19:3247 分钟
王朝覆灭前的最后十年,一位修史官决定把不该写进史书的事,一件件写下来。本集:旧案卷宗失窃,史馆连夜封门。
history回看这一集 live_tv看直播 保留到 11 月 20 日
18:0018:3019:0019:3020:0020:3021:0021:30
CCTV-1 综合回看 7 天
history城乡纪事 history山河故梦 第 20 集 山河故梦 第 21 集 山河故梦 第 22 集 晚间新闻
CCTV-5 体育回看 7 天
history赛前直通车 sports_soccer中超第 30 轮 江城对海城 足球之夜
CCTV-13 新闻回看 7 天
history新闻直播间 history新闻联播 环球纵览 新闻直播间 国际时讯
湖南卫视回看 3 天
history快乐厨房 history湖南新闻联播 午夜电台 第 8、9 集 歌手之夜
浙江卫视回看 7 天
history钱江晚报道 history浙江新闻联播 history新闻联播 风过长安 第 3 集 风过长安 第 4 集 王牌对决
东方卫视不可回看
新闻夜线 半山听雨 第 3 期 极限挑战营
北京卫视回看 7 天
history北京新闻 history生活大调查 雪落无声 第 11、12 集 档案夜读
平板横屏,1280 × 800 dp上半部是直播小窗和选中节目的详情,下半部是频道 × 时间的节目网格;横向拖动看更早或更晚。
028 北京卫视正在播 雪落无声 第 12 集
节目单北京卫视,可回看 7 天
周日 8 日 周一 9 日 周二 10 日 周三 11 日 昨天 今天 明天
18:00北京新闻history
18:30生活大调查history
19:30雪落无声 第 9 集确认回看
20:20雪落无声 第 10 集history
21:15档案夜读history
22:00北京晚间新闻history
22:40午夜影院 灯塔守望者history
回看「雪落无声 第 9 集」,昨天 19:30–20:20,50 分钟
上下选择左右换日期确认回看返回关闭
电视,节目单在频道表里按右键进入,或全屏时按遥控器的「节目单」键直接打开;左栏选日期,右栏选节目。
20:23signal_cellular_altwifibattery_5_bar
回看CCTV-1 综合castmore_vert
pause19:41:0020:25fullscreen
history回看中-00:42:10 live_tv回到直播
山河故梦 第 21 集CCTV-1 综合,19:38 开播,从头播放
周三 11 日周四 12 日今天明天
18:00城乡纪事history
18:45山河故梦 第 20 集history
19:32天气预报history
19:38山河故梦 第 21 集回看中
20:25山河故梦 第 22 集notifications
21:16晚间新闻
22:00城乡纪事 重播
手机,回看正在播的节目对正在播的节目点「从头看」,进入回看;回看条写着比直播落后多少。
push_pin标注
  1. 日期:往前最多到当前直播源可回看的天数,往后一天。超出回看范围的日期不出现。
  2. 节目详情:点网格里的节目,详情卡换成这个节目;已结束的给「回看这一集」,正在播的给「从头看」,未开播的给「提醒我」。
  3. 节目网格:行是频道,列是时间,30 分钟一格。左侧频道列固定,横向拖动时间轴,上下滚动频道。
  4. 当前时间线:主色竖线加时间标签,进入页面时自动滚到「现在」偏左 1/3 的位置。
  5. 不可回看的频道:频道下方写「不可回看」,已结束的节目只描边、不填色,点了没有反应。
  6. 电视日期栏:左右键在日期和节目两栏之间移动,日期栏里上下键换天。
  7. 电视回看:焦点节目上直接印着「确认 回看」,下方一行写清楚回看的是哪一天哪一段。
  8. 回看条:第三色容器,常驻在画面下方。「-00:42:10」是落后直播的时长,点「回到直播」立刻跳回直播点。
  9. 回看进度条:范围是这一个节目,红色刻度是直播点,拖动不能越过它。
  10. 节目单列表:正在回看的节目用第三色标出,和「正在直播」的主色区分;未开播的节目可预约提醒。
data_object与规范的对应
界面数据来源
节目数据EPG 模板:源级或频道级 epg,替换 {name}、{id}、{date},每个频道每天请求一次;或 .xml / .gz 的 XMLTV 整包(m3u 的 x-tvg-url)(§6.5)
日期切换{date} 按 yyyy-MM-dd 代入;XMLTV 只保留与当天 00:00–24:00 有交集的节目(§6.5.2)
节目时间XMLTV start / stop 按 yyyyMMddHHmmss Z 解析,缺时区按 GMT+8;源级 timeZone 用于换算
频道对齐tvgId、tvgName、name 三者都过 normalizeChannelName 后匹配(§6.5.1)
可回看标记频道有 catchup(type、source、regex、replace、days),或地址含 /PLTV/(默认 7 天)(§6.4)
回看地址append 型:原地址拼上 source。例:?playseek=${(b)yyyyMMddHHmmss}-${(e)yyyyMMddHHmmss} 生成 ?playseek=20261113184500-20261113193200;/PLTV/ 规则同时换成 /TVOD/
回看天数catchup.days;没有给时按 7 天
拖动时移爬虫直播返回 timeshift: {url, start, window} 时,用目标时刻的 Unix 毫秒替换 {time};拖到最右回到直播源
  • 请求取消:换频道或换日期时取消上一次节目单请求,旧结果不会晚到覆盖新频道。
  • 安全:XMLTV 用 SAX 解析并关闭外部实体,避免恶意节目单读取本地文件。
  • 没有节目单:频道行里显示一整条「暂无节目信息」,仍然可以点击直接播放直播。
S14

我的:历史与收藏

myBox 没有账号,「我的」就是这台设备上的记录:看到哪、收藏了什么、哪部剧更新了。历史和收藏都跨站点汇总,每一条记得自己来自哪个站点,点开直接回去,不需要先切源。

22:10signal_cellular_altwifibattery_5_bar
林
林smartphone记录只保存在这台设备
settings
128看过
46收藏
7追更
23 时本月

继续观看

全部chevron_right
长夜将尽 第 7 集剩 18 分
霓虹不眠 第 3 集剩 31 分
history观看历史128 条chevron_right
bookmarks收藏46chevron_right
notifications_active追更3 部有更新chevron_right
download下载2 个进行中chevron_right
hub源中心9 个来源chevron_right
help帮助与反馈chevron_right
手机:我的继续观看在最上面;主题色取自最近观看的封面
22:12signal_cellular_altwifibattery_5_bar
close已选 3 项select_all
全部剧集电影光年影视客厅 Jellyfin
今天
check
长夜将尽第 7 集,剩 18 分钟光年影视21:36
check
霓虹不眠第 3 集,剩 31 分钟猫影视20:05
昨天
check
末班地铁第 19 集,剩 6 分钟长风资源23:41
深海回声第 2 集,看到 26:10客厅 Jellyfin19:20
本周早些时候
星际邮差第 9 集,已看完短剧速递周二
playlist_remove移出继续观看delete删除 3 项
删除后 5 秒内可撤销
手机:观看历史,多选长按进入多选,按日期分组
22:14signal_cellular_altwifibattery_5_bar
arrow_back收藏searchsort
全部 46追更 7电影剧集动漫

有更新

标为已读
新 2 集更新至 28 集
山河故梦光年影视,今天 18:00
新 1 集更新至 9 集
星际邮差短剧速递,今天
新 1 集更新至 12 集
长夜将尽光年影视,昨天

全部收藏

最近收藏expand_more
光年
风过长安
长风
雪落无声
Jellyfin
深海回声
光年
白昼流星
站点已移除找其他站点
午夜电台
猫影视
猫的一百种生活
手机:收藏有更新的追剧置顶;站点没了的收藏变灰
林
林客厅平板,本机记录
128看过
46收藏
7追更
dashboard概览
history观看历史128
bookmarks收藏46
notifications_active追更3
download下载2
hub源中心
settings设置
help帮助与反馈

继续观看

全部chevron_right
长夜将尽 第 7 集光年影视,剩 18 分
霓虹不眠 第 3 集猫影视,剩 31 分
深海回声 第 2 集客厅 Jellyfin

追更:3 部有更新

管理追更chevron_right
新 2 集
山河故梦更新至 28 集
新 1 集
星际邮差更新至 9 集
新 1 集
长夜将尽更新至 12 集
风过长安每周四更新
末班地铁已完结
半山听雨更新至第 3 期
download下载剩余空间 41 GB
山河故梦 第 27 集64%
山河故梦 第 28 集等待中
database本机数据
历史保留条数100200不限
同时清除播放进度
upload导出备份restore从备份恢复清空历史
平板:概览左栏是「我的」的目录,右侧一页看完继续观看、追更、下载和本机数据
push_pin标注
  1. 本机身份:没有登录。头像和名字只用于区分设备;页面写明记录只存本机,避免用户以为能跨设备同步。
  2. 统计:看过、收藏、追更、本月时长;点数字进入对应列表。
  3. 继续观看:与首页同一份数据,波浪进度条;已看完的不出现在这里,但仍在历史里。
  4. 追更提醒:每天在后台检查一次追更的剧,只在打开 App 时以角标提示,不发系统通知。
  5. 日期分组:今天、昨天、本周早些时候、更早;同一部剧多集只保留最近一条,展开可看各集进度。
  6. 多选:长按任一条进入,顶栏换成选择态;全选只选当前筛选下的条目。
  7. 两种删除:「移出继续观看」只隐藏卡片、保留进度;「删除」连同进度一起清掉,5 秒内可撤销。
  8. 有更新:以「新 N 集」红标置顶,进入详情后自动标为已读。
  9. 失效收藏:站点被删或改了 key 时变灰,点它进入 S09 同名换源,换到的站点会写回这条收藏。
  10. 平板概览:宽屏把各个列表的前几条拼成一页;下载与本机数据(保留条数、备份)放在底部。
data_object与规范的对应
界面规范依据
观看历史Room 表 vodRecord:vodId、updateTime、sourceKey、dataJson;按 (sourceKey, vodId) upsert(§8.9)
播放进度不在历史表里,写 cache 表,键为 md5(progressKey),progressKey = sourceKey|vodId|flag|index,每站每线路每集独立(§8.9)
收藏Room 表 vodCollect:vodId、updateTime、sourceKey、name、pic(§8.9)
保留条数history_num(§5.8.0)
追更检测对追更条目重新请求详情,比较 vod_remarks 与 vod_play_url 中的集数(§4.3.5)
失效判定sourceKey 在当前配置的 sites[].key 中找不到;key 用于历史与收藏隔离(§3.3)
媒体服务器Emby / Jellyfin 条目的进度与收藏同步回服务器:/Sessions/Playing/Progress、PlayedItems、FavoriteItems(§10.10)
  • 备份格式:导出为一个 JSON,字段与 vodRecord、vodCollect、cache 三张表一一对应,可以从旧版 TVBox 的数据库直接导入。
  • 电视上:「我的」并入侧边导航的「历史」入口,多选改为焦点项上按菜单键弹出「删除 / 移出继续观看」。
S15

Emby / Jellyfin

家里的媒体服务器和网上的源放在同一个应用里,但不混在一起:服务器有自己的胶囊、自己的媒体库首页和观看进度,进度回写到服务器,换一台设备接着看。

21:12signal_cellular_altwifibattery_5_bar
arrow_back添加媒体服务器
局域网里找到 2 台
JF客厅 Jellyfin192.168.1.20:8096,Jellyfin 10.10.3chevron_right
E书房 Emby192.168.1.10:8096,Emby 4.8chevron_right
手动输入地址
服务器地址dnshttps://emby.lin-studio.cn
http 或 https 都可以,不写端口时用 8096
连接
已添加
E公司 Emby以「林」登录,昨天 18:20 同步
添加服务器进入页面即开始寻找,找不到再手动输入。
21:12signal_cellular_altwifibattery_5_bar
arrow_back登录
JF 客厅 Jellyfin Jellyfin 10.10.3,192.168.1.20:8096
林林 舟小舟 妈妈妈 person_add其他
password密码qr_code_2快速连接
用户名林
密码●●●●●●●●visibility
保持登录
登录
这台设备会以「林的手机」出现在服务器的设备列表里
用户名和密码服务器公开的用户以头像列出,点头像自动填用户名。
21:13signal_cellular_altwifibattery_5_bar
arrow_back登录
JF 客厅 Jellyfin Jellyfin 10.10.3,192.168.1.20:8096
password密码qr_code_2快速连接
快速连接代码
382915
在已登录的 Jellyfin 里打开「快速连接」,输入这 6 位数字。
等待授权
content_copy复制代码refresh换一个
服务器没有开启快速连接时,这个选项不出现。Emby 服务器只有密码登录。
快速连接不用在电视或手机上输密码;授权后自动进入媒体库。
21:20wifibattery_5_bar
JF林,Jellyfin 10.10.3客厅 Jellyfinunfold_more searchcast林

媒体库

movie电影486 部
tv剧集73 部
animation动画41 部
landscape纪录片58 部
videocam家庭录像1204 个

继续观看

全部chevron_right
野火剩 34 分
雪落无声 第 1 季第 6 集剩 12 分
冰河纪事 第 2 集剩 41 分
灯塔守望者剩 1 小时 05 分

下一集

全部chevron_right
第 1 季第 8 集
长夜将尽48 分钟
第 1 季第 10 集
星际邮差24 分钟

最近添加的电影

全部chevron_right
新
北纬零度
新
第七号站台
破晓行动
白昼流星
无人区来信
平板,媒体库首页四行分别来自服务器的媒体库、继续观看、下一集和最近添加;顶部背景和主题色取自「继续观看」第一项。
Jellyfin客厅 Jellyfin,剧集
长夜将尽
2026悬疑 / 剧情1 季 12 集8.7
暴雨夜的连环失踪案,把退休刑警和他当年放走的嫌疑人重新拴在一起。天亮之前,两人必须找到第七个孩子。
play_arrow继续 第 1 季第 8 集 replay从头播放 done_all favorite
第 1 季5 集未看特别篇2
菜单版本、音轨与字幕
check
6. 旧档案已看
check
7. 雨停之后已看
8. 第七个孩子看到 16:40,共 48 分钟
9. 退休那天51 分钟
10. 渡口46 分钟
电视,剧集详情主按钮直接续播「下一集」或未看完的那一集;已看的集打勾并变暗。
21:24signal_cellular_altwifibattery_5_bar
长夜将尽
播放 第 1 季第 8 集第七个孩子,48 分钟,从 16:40 继续
版本
4K HDR10HEVC Main 10,22 Mbps,MKV,7.6 GBbolt直接播放
4K 原盘HEVC,TrueHD 7.1,M2TS,38 GBsync_alt直接串流
1080PH.264,DTS-HD MA 5.1,MKV,9.8 GBmemory转码
直接串流只换封装、不重新编码;转码由服务器完成,会多花一点起播时间。
音轨、字幕与码率
audiotrack音轨国语 E-AC3 5.1(默认)chevron_right
subtitles字幕简体中文 SRT 外挂chevron_right
speed最高码率自动,不超过 120 Mbpschevron_right
play_arrow播放
手机,版本与播放方式每个版本标出播放方式,默认选能直接播的最高画质。
push_pin标注
  1. 局域网发现:进入页面即广播,右上角的加载指示器表示还在找。每台服务器显示名称、地址、类型和版本。
  2. 手动地址:输入后先请求一次公开信息,确认是 Emby 还是 Jellyfin、版本多少,再进入登录页。
  3. 用户头像:服务器公开的用户直接列出,点头像填好用户名;隐藏用户点「其他」手动输入。
  4. 登录方式:分段按钮在「密码」和「快速连接」之间切换;只有 Jellyfin 且服务器开启了快速连接时才有第二项。
  5. 快速连接码:6 位数字分两组显示,方便念给家人听。授权成功后自动跳转,无需再点。
  6. 服务器胶囊:和源胶囊同一个组件,点开在已添加的服务器和账号之间切换;Jellyfin 与 Emby 用不同颜色的图标区分。
  7. 媒体库:服务器上的媒体库视图,每个一张横图卡,写着数量。点开进入该库的海报墙,筛选与排序复用 S06。
  8. 继续观看:服务器记录的未看完条目,波浪进度条按服务器进度绘制,在别的设备上看过也会出现在这里。
  9. 下一集:已经在追的剧接下来该看的那一集,左上角写明季和集。
  10. 最近添加:按媒体库分别显示,新入库 7 天内的条目带「新」。
  11. 续播按钮:电视进入详情时焦点默认在这里。没看过的剧显示「播放 第 1 季第 1 集」。
  12. 季与未看数:每一季后面写着还有几集没看;全部看完时换成对勾。
  13. 已看标记:看完的集打勾并降低不透明度;看了一半的显示进度条和「看到 16:40」。
  14. 版本:同一集的多个文件各列一行,写清编码、码率、容器和大小,并标出这台设备会用哪种方式播放。
  15. 音轨、字幕、码率:默认值来自服务器的默认轨;字幕优先外挂,图形字幕只在转码时烧录。
data_object与规范的对应
界面数据来源
局域网发现UDP 7359 广播 who is JellyfinServer? / who is EmbyServer?,再请求 GET /System/Info/Public(ServerName、Version、LocalAddress)(§10.2)
用户头像GET /Users/Public
密码登录POST /Users/AuthenticateByName,体 {"Username","Pw"};保存 AccessToken、User.Id、ServerId(§10.3.3)
快速连接GET /QuickConnect/Enabled → POST /QuickConnect/Initiate → 轮询 GET /QuickConnect/Connect → POST /Users/AuthenticateWithQuickConnect
设备名授权头 MediaBrowser Client="myBox", Version, DeviceId, Device="林的手机", Token(§10.3.1)
媒体库Jellyfin GET /UserViews?userId=,Emby /Users/{userId}/Views(§10.12)
首页各行/Users/{userId}/Items/Resume、/Shows/NextUp、/Users/{userId}/Items/Latest(§10.5)
季与集/Shows/{id}/Seasons、/Shows/{id}/Episodes;季号 ParentIndexNumber,集号 IndexNumber
已看与进度UserData 的 Played、PlaybackPositionTicks、UnplayedItemCount;图片可直接带 percentPlayed、unplayedCount 角标(§10.6)
版本与播放方式POST /Items/{id}/PlaybackInfo 返回的 MediaSources;依次看 SupportsDirectPlay、SupportsDirectStream、SupportsTranscoding(用 TranscodingUrl)(§10.7)
音轨与字幕MediaStreams(Type、Codec、IsDefault、DisplayTitle);请求时带 AudioStreamIndex、SubtitleStreamIndex
最高码率MaxStreamingBitrate,默认 120000000
  • 进度回写:开始播放 POST /Sessions/Playing,每 10 秒左右 /Sessions/Playing/Progress(带 PlayMethod),停止时 /Sessions/Playing/Stopped。ticks 按 1 秒 = 10,000,000 换算。
  • 标记已看 / 收藏:POST 或 DELETE /Users/{userId}/PlayedItems/{itemId}、/FavoriteItems/{itemId},界面先改、失败再回滚。
  • 和网络源的关系:服务器条目不进本地「继续观看」,以服务器为准;首页「继续观看」只显示网络源的记录,避免同一部片出现两次。
S16

NAS、网盘与本地文件

SMB 共享、WebDAV、AList 网盘和手机里的视频,都用同一个文件浏览器打开:面包屑导航、文件夹在前、按名称排序。同名字幕自动配对,看过的文件记住进度。家里的 NAS 和电脑大多只开了 SMB(Samba),所以它和 WebDAV 一样是一等公民。

22:05wifibattery_5_bar
lanSMB 3.1.1,已加密,192.168.1.10客厅 NASunfold_more searchmore_vert
folder_shared影视chevron_right电影chevron_right北纬零度 (2025)
8 项,2 个文件夹 arrow_upward名称,文件夹在前 view_list
folder海报与剧照文件夹chevron_right
folder花絮文件夹chevron_right
imageposter.jpg1.2 MB
movie北纬零度.2025.1080p.WEB-DL.mp44.2 GB
subtitles北纬零度.2025.2160p.HDR10.en.srt54 KB,字幕link
北纬零度.2025.2160p.HDR10.mkv18.6 GB,看到 1:12:40 / 2:16:40字幕 2
description北纬零度.2025.2160p.HDR10.nfo6 KB
subtitles北纬零度.2025.2160p.HDR10.zh-CN.ass86 KB,字幕,已和视频配对link
上次停在 1:12:40 play_arrow
北纬零度.2025.2160p.HDR10.mkv
18.6 GBsmb://192.168.1.10/影视/电影/北纬零度 (2025)/
字幕
check简体中文,同名 .zh-CN.ass English,同名 .en.srt folder_open从当前目录选择 不加载
文件信息
修改时间2026-10-28 21:14
上次播放11 月 12 日 23:06,看到 1:12:40
其它版本1080p.WEB-DL.mp4,4.2 GB
play_arrow从 1:12:40 继续expand_more link cast
平板横屏,浏览 NAS 上的 SMB 共享左栏浏览目录;右栏预览选中的文件,选字幕,接着播放。
22:10signal_cellular_altwifibattery_5_bar
媒体库search
媒体服务器NAS、网盘与本地
本机
smartphone手机存储Movies、Download 里有 23 个视频
chevron_right
NAS 与网盘
lan客厅 NAS192.168.1.10,共享「影视」,用户 linSMB
computer书房电脑LIN-PC,共享「Movies」,访客SMB
dnsNAS 影音192.168.1.10:5244,用户 linWebDAV
来自配置「家用精选」
cloudAList 网盘阿里分享、夸克网盘AList
lan影音共享csp_Samba,2 个共享SMB
add添加 SMB 或 WebDAV
位置列表按本机、NAS 与网盘、来自配置分三组。
22:12signal_cellular_altwifibattery_5_bar
arrow_back深海回声searchmore_vert
cloudchevron_right阿里分享chevron_right纪录片chevron_right深海回声
arrow_upward名称大小修改时间check只看视频
folder花絮文件夹chevron_right
深海回声.S01E01.光之语.mkv3.1 GB,已看完
深海回声.S01E02.黑暗森林.mkv2.9 GB,看到 21:05中字
movie深海回声.S01E03.鲸落.mkv3.0 GB中字
movie深海回声.S01E04.热泉.mkv2.8 GB中字
movie深海回声.S01E05.冰下.mkv3.2 GB
movie深海回声.S01E06.回声.mkv3.4 GB
已隐藏 4 个字幕文件和 1 个其他文件
浏览 AList面包屑可回到任一级;「只看视频」收起字幕和杂项。
22:14signal_cellular_altwifibattery_5_bar
媒体库search
媒体服务器NAS、网盘与本地
smartphone手机存储23 个视频
cloudAList 网盘阿里分享、夸克网盘
添加 WebDAV
名称NAS 影音
服务器地址http://192.168.1.10:5244/dav/
用户名lin
密码●●●●●●visibility_off

不写端口时用 5244。用户名和密码都留空,就按匿名访问,不发送认证信息。

连接成功,根目录有 6 项
network_check测试连接取消保存
添加 WebDAV先测试再保存;保存后出现在「NAS 与网盘」分组。
22:20signal_cellular_altwifibattery_5_bar
arrow_back添加 SMB 共享
在局域网里找到 3 台仍在搜索
storageDS920群晖 NAS,192.168.1.10,已添加「影视」chevron_right
computerLIN-PCWindows 电脑,192.168.1.23chevron_right
routerXiaoQiang路由器 USB 存储,192.168.31.1仅 SMB1
或者手动输入
地址smb://192.168.1.10/影视
IP 或主机名都行,也可以粘贴 Windows 的 \\NAS\影视 写法;不写端口时用 445。
help找不到设备?确认 NAS 或电脑开启了文件共享(SMB),并且和手机连在同一个路由器下。访客 Wi-Fi 通常访问不到家里的设备。
添加 SMB:发现设备同一 Wi-Fi 下的 NAS、电脑和路由器硬盘自动列出。
22:21signal_cellular_altwifibattery_5_bar
arrow_backLIN-PC
lockSMB 3.1.1,传输已加密192.168.1.23
check账号登录访客
用户名lin
密码●●●●●●●●visibility_off
expand_more域 / 工作组:WORKGROUP,一般不用改
选择要添加的共享
Movies剩余 1.8 TB
Downloads剩余 1.8 TB
照片剩余 420 GB
C$、IPC$ 这类以 $ 结尾的管理共享不显示。
add添加 2 个共享
登录并选择共享先协商版本再登录,登录后列出全部共享。
22:23signal_cellular_altwifibattery_5_bar
arrow_back添加 SMB 共享
在局域网里找到 3 台
storageDS920群晖 NAS,192.168.1.10,已添加「影视」chevron_right
computerLIN-PCWindows 电脑,192.168.1.23chevron_right
routerXiaoQiang路由器 USB 存储,192.168.31.1仅 SMB1
gpp_maybe
这台设备只支持 SMB1

XiaoQiang 的 USB 存储只开放了 SMB1。SMB1 已经多年没有安全更新,Windows 和群晖默认都关掉了它。

最好先到路由器后台把 SMB 版本改成 SMB2 或更高。改不了的话,可以继续连接,但只建议在家里的网络里用。

文件名编码GBK(简体中文旧设备)arrow_drop_down
取消仍然连接
只支持 SMB1 的老设备说明风险,由用户决定;中文文件名乱码时可以换编码。
添加 SMB 共享 选一台设备。账号密码用手机填,比遥控器快。
storageDS920群晖 NAS,192.168.1.10
computerLIN-PCWindows 电脑,192.168.1.23
routerXiaoQiang路由器 USB 存储仅 SMB1
keyboard手动输入地址
用手机扫码填写 DS920 的账号 或在手机浏览器打开 192.168.1.8:9978 等待手机提交
OK用遥控器输入返回取消
电视上添加 SMB设备列表在左,扫码区在右;遥控器输入作为备选。
22:31signal_cellular_altwifibattery_5_bar
homeinfo192.168.1.8:99782more_vert
给客厅电视添加共享DS920,192.168.1.10
用户名lin
密码●●●●●●
network_check让电视连接并列出共享
电视看到的共享
影视已添加
纪录片
备份
send_to_mobile添加到客厅电视
账号直接交给电视,由电视加密保存,这个网页不留存。
手机上的填写页由电视提供,和 S19 远程管理是同一个服务。
push_pin标注
  1. 位置胶囊:写着当前浏览的是哪个位置、什么协议、哪台机器。SMB 位置还写出协商到的版本和是否加密。点开在各个位置之间切换。
  2. 面包屑:第一级是共享名;当前目录高亮,点任一级直接返回;路径太长时从左侧折叠成「…」。
  3. 排序:默认按名称升序、文件夹在前;可改按大小和修改时间(SMB、AList 都返回修改时间)。
  4. 看过的视频:缩略图是上次停下时的画面,下沿是进度;「字幕 2」表示同目录找到 2 个配对字幕。
  5. 字幕配对:文件名去掉扩展名后与视频相同,或以视频名开头、只多一段语言后缀(.zh-CN、.en),就算同名字幕,行尾显示链接图标。
  6. 不能播的文件:图片、nfo 等降低不透明度,点了用系统应用打开。
  7. 预览:没有封面时用上次播放的截图;从没播过的文件显示带文件类型图标的占位图,不去猜海报。
  8. 字幕选择:默认选中简体中文的同名字幕;「从当前目录选择」列出目录里所有字幕文件,包括不同名的。
  9. 播放:有进度时主按钮是「从 1:12:40 继续」,箭头里是「从头播放」和「用外部播放器打开」。SMB 文件经本地代理变成 http 地址,所以外部播放器和投屏也能直接用。
  10. 本机:只扫 Movies、Download 等媒体目录,显示视频数量和存储占用。
  11. NAS 与网盘:自己添加的 SMB 和 WebDAV 放在同一组,用类型标签区分;绿点表示最近一次连接成功。一台设备的多个共享各占一行。
  12. 来自配置:配置里的 csp_AList 和 csp_Samba 站点出现在这里,分组名写明是哪份配置带来的;它们在源中心管理,这里只读。
  13. 添加:一个按钮,先选 SMB 还是 WebDAV。SMB 进入下方的发现流程,WebDAV 打开右侧的表单。
  14. AList 面包屑:第一级是网盘名,用图标代替文字以省出宽度。
  15. 筛选:「只看视频」收起字幕和杂项,列表底部写明藏了多少个。
  16. 中字:收起字幕文件后,用这个角标说明该视频有配对的中文字幕。
  17. WebDAV 表单:名称、地址、用户名、密码四项;地址填到 /dav/ 这一级。
  18. 测试连接:实际列一次根目录,成功时写出项数,失败时给出原因(地址不通、401 认证失败、超时)。
  19. 发现设备:mDNS、WS-Discovery 和 NetBIOS 三路同时找,按「设备名、类型、IP」列出。已经添加过的设备写明添加了哪个共享。
  20. 只支持 SMB1:发现阶段就能看出来,提前标出;点进去先弹出右侧的说明。
  21. 手动输入:接受 smb://主机/共享/路径 和 \\主机\共享,也接受只写 IP,连上后再选共享。
  22. 协商结果:显示协商到的最高版本,以及传输是否加密。服务器要求加密时自动开启。
  23. 登录方式:账号登录或访客。域和工作组默认收起,只有公司网络才需要改。
  24. 选择共享:登录成功后列出这台设备的全部共享和剩余空间,可以多选,每个共享成为一个位置。
  25. SMB1 说明:讲清楚风险和改法,默认按钮是「取消」;仍然连接时,这个位置会一直带着「SMB1」标签。
  26. 文件名编码:只对 SMB1 设备显示。SMB2 起文件名统一用 Unicode,不会乱码。
  27. 电视设备列表:和手机的发现结果相同,焦点项反色放大。
  28. 扫码填写:二维码就是电视的本地服务地址,手机打开后直接进入这台设备的填写页。
  29. 手机填写页:手机只负责填写,连接和列共享都由电视完成,所以这里看到的就是电视能访问的共享。
data_object与规范的对应
界面数据来源
SMB 位置(自己添加)主机、端口、共享、子路径、用户名、密码、域。规范里没有对应的设置键,是 myBox 的本地设置;密码用 Android Keystore 里的 AES-GCM 密钥加密保存(Android 6.0 起可用)
SMB 位置(来自配置)csp_Samba,ext 为 [{name, server}],server = smb://[user:pass@]host[:port]/share/sub(§4.7)
SMB 播放playerContent 给出 smb://…,由本地代理转成 http 地址再交给播放器(§5.9 的 WebDAV / Samba 转发)。代理支持 Range,拖动进度、IJK、外部播放器和 DLNA 投屏都用这个地址
SMB 协议实现smbj(Apache-2.0,SMB 2.0.2 到 3.1.1);列共享用 smbj-rpc 的 SRVSVC 接口(BSD-3-Clause);SMB1 只在用户确认后改用 jcifs-ng(LGPL-2.1)
设备发现mDNS 的 _smb._tcp(系统 NsdManager)、WS-Discovery、NetBIOS 名称查询;连接用 445 端口,老设备回落到 139
WebDAV 设置webdav_url、webdav_username、webdav_password(§5.8.0);默认端口 5244(§4.9)
WebDAV 列目录PROPFIND,必须带 Depth: 1;取 displayname、resourcetype、getcontentlength、getcontenttype(§4.9.1);Basic 认证,用户名和密码都为空时不发 Authorization 头
WebDAV 上限单次响应 4 MiB、2000 项;单个字幕 8 MiB;连接 10 秒、读取 20 秒(§4.9.2)
同名字幕同目录同名字幕自动加载,也可从当前目录手动选;格式按 §5.12.1 解析(SRT、ASS、SCC、STL、TTML,DV 版另有 VTT)
AList 位置配置里的 csp_AList 站点,ext.drives[]:name、server、version、path、token、login、params(§4.7);v3 /api/fs/list 列目录,/api/fs/get 取直链
本机csp_Local:file:// 直接播放,缩略图由本地代理生成
入口AList 和 csp_Samba 跟着配置走,自己添加的 SMB 与 WebDAV 跟着本地设置走,可以同时存在(§4.9.3)
  • 错误提示说人话:用户名或密码错误(STATUS_LOGON_FAILURE)、没有这个共享的读取权限(STATUS_ACCESS_DENIED)、共享名不存在(STATUS_BAD_NETWORK_NAME)、设备不在线,各自给出下一步。
  • 断线续读:NAS 休眠或 Wi-Fi 切换导致连接断开时,自动重连并从断点继续读;10 秒内恢复就不打扰用户。
  • 高码率:按服务器协商的最大读取块读取,并预读下一块,让 4K 原盘在千兆局域网上流畅播放。
  • 超过 2000 项:列表末尾提示「这个目录太大,只显示前 2000 项」,并引导用搜索查找。
  • 目录密码:AList 的 params 给出 {path, pass} 时自动带上;没有配置但服务器要求密码时弹出输入框。
  • 电视:同一套浏览器,列表项加大到 64 dp,面包屑放到顶部一行,返回键逐级返回。添加 SMB 时账号由手机填写,见上方第四行。
S17

投屏与推送

投屏有三种,原版把它们混在一个列表里:推给另一台 myBox 或 TVBox,是把整部片交过去,换集和续播都在电视上完成;DLNA 只投当前这个地址;外部播放器是在本机换个播放器。myBox 分组列出,并在每组标题上说清楚区别。

21:46wifibattery_5_bar
投放到长夜将尽 第 7 集,18:42
搜索中
myBox 与 TVBox整部片交过去,换集和续播都在电视上
tv
客厅电视myBox,192.168.1.23
推荐
tv_gen
卧室盒子TVBox,192.168.1.41
DLNA 投屏只投当前地址,换集要回手机上操作
cast
小米电视 客厅支持跳到 18:42 继续
videocam
书房投影可能不支持跳转,会从头播放
用其它播放器打开
MX PlayerKodiReexwarningVLC
VLC 不能带请求头,需要鉴权的线路可能打不开。
add_link手动输入 IP手机与电视要在同一个 Wi-Fi
投放面板三组分开,每组一句话说明差别
21:47wifibattery_5_bar
keyboard_arrow_down遥控推送more_vert
正在客厅电视上播放
长夜将尽
第 7 集,光年影视
18:5845:10
skip_previous replay_10 pause forward_10 skip_next
keyboard_arrow_up keyboard_arrow_down keyboard_arrow_left keyboard_arrow_right OK
arrow_back home volume_up volume_down
选集换源字幕停止
推给 myBox 之后:遥控页手机变成遥控器,方向键与 OK 直接控制电视的焦点
21:48wifibattery_5_bar
keyboard_arrow_down遥控推送more_vert
tv
客厅电视myBox,192.168.1.23:9978
更换
在电视上搜索
要搜的片名山河故梦send
比在电视上用遥控器打字快得多。
content_paste
剪贴板里有一个视频链接https://cdn.example/hls/stream/index.m3u8
推过去播
dns
推送点播配置把手机上的「星河仓 线路一」给电视
chevron_right
live_tv
推送直播源电视上的直播源会被替换
chevron_right
chat
推送弹幕源对方是 myBox 或新版 TVBox 才支持
chevron_right
link
推送一个链接视频地址、磁力,可以附带请求头
chevron_right
最近推送
山河故梦搜索,2 分钟前
replay
dns
星河仓 线路一点播配置,昨天
replay
推送页搜索文字、配置、直播源、弹幕源、链接,一页推完
山河故梦更新至 28 集
林的手机推送了长夜将尽 第 7 集光年影视,从 18:42 继续
play_arrow立即播放 稍后 8 秒后自动播放
电视收到推送右上角浮出,不打断正在看的内容;焦点自动落在「立即播放」
设置 / 连接手机遥控与推送
http://192.168.1.23:9978 手机扫码,在浏览器里推送配置、直播源和搜索文字
允许附近设备推送关掉后其它手机就找不到这台电视
收到推送时先询问关掉后直接播放
作为 DLNA 渲染器让其它应用也能投屏到这里
本机名称客厅电视
edit
电视设置:手机遥控与推送二维码打开的是本机的管理网页
push_pin标注
  1. 搜索状态:打开面板即同时开始 DLNA 发现与局域网扫描,设备一台台出现;10 秒后停止转圈,下拉可重新搜。
  2. myBox 与 TVBox:推荐项。推过去的是整部片的信息,电视用自己的站点和解析去播,手机可以锁屏。
  3. DLNA:只投当前地址。副标题写明这台设备是否支持跳转进度,不支持的提前告知会从头播放。
  4. 其它播放器:MX、Kodi、Reex、VLC。VLC 不传请求头,加警告图标并在下方解释。
  5. 手动输入:扫不到时可以直接输入电视上显示的 IP。
  6. 正在播放:显示电视上的片名、集数与进度,进度用波浪进度条,播放中波浪在动。
  7. 方向键:圆形方向盘,中间 OK;左侧返回、主页,右侧音量。只有对方是 myBox 时才显示方向键,TVBox 只显示播放控制。
  8. 快捷操作:选集、换源、字幕直接在电视上弹出对应面板;停止投屏用红色描边按钮。
  9. 远程搜索:在手机上打字,电视上直接出搜索结果。
  10. 推送项:点播配置、直播源、弹幕源、链接;每项都说明对电视的影响。
  11. 剪贴板识别:打开推送页时检查剪贴板,是视频地址、磁力或配置地址就给一个一键推送。
  12. 收到推送:电视右上角浮出卡片,带封面和来源设备名;8 秒内不操作就自动播放(可在设置里关)。
  13. 二维码:打开本机的管理网页,兼容原版 TVBox 的手机推送方式。
  14. 开关:允许被发现、推送前询问、作为 DLNA 渲染器、本机名称。
data_object与规范的对应
界面协议 / 规则
DLNA 发现SSDP ssdp:all,筛 MediaRenderer:1,需要 AVTransport:1 服务;设备用 UDN 标识(§5.13.1)
DLNA 投放SetAVTransportURI → Play → 有进度时 Seek(REL_TIME),Seek 失败忽略(§5.13.2)
DLNA 请求头请求头序列化成 JSON 放进 DIDL-Lite 的 dc:description,普通渲染器会忽略(§5.13.3)
附近 TVBox扫描本机所在 C 段的 9978 端口,POST /action 返回 ok 即为一台 TVBox;不是 DLNA(§5.13.5、§11.4 第 42 条)
推送动作/action 的 do:search 搜索、api 点播配置、liveApi 直播源、danmuApi 弹幕源、push 链接(§5.13.5);DV 版只有 search、api、push 三种(§8.2.1)
推送链接的请求头push 的 URL 后面用 | 接请求头(§8.2.1、§11.4 第 62 条)
是否送达ok 只表示设备在线,不表示动作执行成功(§11.4 第 43 条);myBox 之间另加回执
外部播放器pl 10 MX、11 Reex(请求头为 JSON extra)、12 Kodi、14 VLC(不传请求头)(§5.8.3)
管理网页本机 HTTP 服务默认 9978,被占用时递增;二维码内容为 http://局域网IP:端口/(§8.2、§8.8)
记住的设备设置键 remote_tvbox_host(§5.8.0)
  • myBox 之间的推送在 push 之外再带上站点 key、vod_id、线路与集序号,电视收到后走自己的详情与解析,所以能换集、能续播。对方是原版 TVBox 时退回只推地址。
  • 扫描节制。C 段扫描最多 254 个并发请求,myBox 改为分批 32 个,并优先尝试上次连过的地址。
S18

设置

设置按「我想改什么」分成十组,每组在列表里直接写出当前值,不点进去也知道现在是什么状态。平板是列表加详情两栏,手机逐级进入,电视三级左右展开。

22:30wifibattery_5_bar
arrow_back设置
hub源与配置星河仓 线路一;直播 IPTV 组播
play_circle播放Exo,硬解码,TextureView
travel_explore解析默认「极速解析」,系统 WebView
live_tv直播超时 10 秒,显示网速和时间
subtitles字幕与弹幕字号 20;弹幕最多 3 行
lan网络DoH 腾讯;hosts 2 条
palette外观封面取色,跟随系统深浅色
manage_search搜索缩略图,12 个站点参与
database数据保留 100 条历史;缓存 1.2 GB
info关于与调试myBox 1.0.0
播放播放内核、解码和画面。站点可以单独指定播放器,优先于这里的设置。
播放器
点播播放器站点没有指定时使用系统IJKExo
直播播放器直播单独设置,不跟随点播切换跟随点播IJKExo
解码来自配置的解码选项组,仅 IJK 生效memory硬解码软解码
渲染方式黑屏或画面闪烁时换一种试试TextureViewSurfaceView
画面与操作
画面比例
默认16:94:3填充裁剪原始尺寸
快进步长遥控器左右键、双击屏幕一次跳过的时长10 秒
音频直通杜比、DTS 原样交给功放解码
出错时
自动换源当前线路失败,按 S09 的顺序换下一个同名片源
外部播放器长按播放按钮时使用VLCchevron_right
站点单独指定
3 个站点用自己的播放器「华影」「蓝光库」用 IJK,「短剧」用系统查看chevron_right
平板横屏,浅色模式左栏列出十个分组和当前值,右栏是选中分组的详情。
22:31signal_cellular_altwifibattery_5_bar
arrow_back设置search
星 星河仓 线路一点播 32 个站点,直播 IPTV 组播 切换
hub源与配置配置地址、直播地址、EPG、首页推荐
play_circle播放Exo,硬解码,TextureView
travel_explore解析默认「极速解析」,系统 WebView
live_tv直播超时 10 秒,显示网速和时间
subtitles字幕与弹幕字号 20;弹幕最多 3 行
lan网络DoH 腾讯;hosts 2 条;不走代理
palette外观封面取色,跟随系统深浅色
manage_search搜索缩略图,12 个站点参与
database数据保留 100 条历史;缓存 1.2 GB
info关于与调试myBox 1.0.0,已是最新
手机,设置首页当前配置放在最上面,切换一步到位。
22:32signal_cellular_altwifibattery_5_bar
arrow_back外观
主题色从哪里来
封面取色跟随正在看的影片
品牌色丝绒红
系统取色跟随桌面壁纸
深浅色
跟随系统浅色深色
纯黑背景深色时用纯黑,OLED 屏更省电
模糊材质关闭后改用不透明底色;电视默认关闭
取色风格封面颜色在界面里占多大比重忠于封面chevron_right
首页壁纸没有推荐海报时,用配置自带的壁纸
界面大小文字和卡片一起缩放标准chevron_right
减少动效关掉形变和弹性动画,只保留淡入淡出
外观整页已按《星际邮差》取色,选项本身就是预览。
22:33signal_cellular_altwifibattery_5_bar
arrow_back字幕与弹幕
司机快跑这个电话太吓人了前方高能
电话那头报出了他的名字。
字幕
字号20
时间偏移字幕早了往正调remove-0.5 秒add
弹幕
显示弹幕
最多行数remove3 行add
不透明度80%chevron_right
速度与字号中等,1.0 倍chevron_right
随机颜色
弹幕源可从手机推送未设置chevron_right
字幕与弹幕顶部预览随调节实时变化。
settings设置
hub源与配置
play_circle播放
travel_explore解析
live_tv直播chevron_right
subtitles字幕与弹幕
lan网络
palette外观
manage_search搜索
database数据
info关于与调试
直播直播源打开后的默认行为
开机直接进入直播开
直播播放器跟随点播
连接超时超时后自动换下一条线路10 秒chevron_right
显示网速开
显示时间开
换台方向反转关
跨分组换台开
节目单地址跟随直播源
连接超时 超过这个时间还没出画面,就换下一条线路
5 秒
10 秒
15 秒
20 秒
30 秒
上下选择右展开左返回上一级
电视,三级展开分组、设置项、取值依次向右展开;取值直接列在右侧,不弹对话框。
push_pin标注
  1. 搜索设置:按名称和说明搜索,结果直接跳到那一项并闪一下背景。
  2. 分组摘要:每组下面一行写当前值,例如「Exo,硬解码,TextureView」。改完设置后摘要立即更新。
  3. 播放器:连接式按钮组,三选一。直播播放器默认「跟随点播」。
  4. 解码:不是开关,而是在配置提供的两组解码选项之间选择;配置没有提供时这一项隐藏。
  5. 画面比例:这里是默认值,播放中改的比例只对当前影片生效。
  6. 出错时:自动换源打开后,线路失败会按 S09 的顺序试下一个同名片源,并用一条提示告诉用户换到了哪里。
  7. 当前配置:放在设置首页最上面,点「切换」打开 S04 切源面板的配置页。
  8. 主题色来源:三种选项本身就是色板预览;系统取色只在 Android 12 及以上出现,Android 6.0–11 上不显示这一项。
  9. 深浅色:跟随系统、浅色、深色。上面的平板展示的就是浅色模式。
  10. 模糊材质:关闭后所有 Haze 表面换成不透明的着色层,和低端设备的自动降级效果一致。
  11. 预览:字号、偏移、弹幕设置都实时反映在这张预览图上。
  12. 时间偏移:步进 0.1 秒,长按连续调整;播放中也能在 S10 的面板里改,两处同步。
  13. 弹幕源:可以手动填写,也可以用 S19 从手机推送过来。
  14. 电视分组:左栏是十个分组,当前分组保持高亮,焦点已移到中栏。
  15. 电视设置项:右侧直接写出当前值;焦点项多一行说明。
  16. 取值预览:焦点停在某一项时,右栏列出可选值,按右键进入选择,确认即生效。
data_object与规范的对应
分组设置键
源与配置api_url / home_api、live_api_url、epg_url 及各自的 *_history;home_rec(0 豆瓣热播 / 1 数据源推荐 / 2 历史)、home_rec_style(§5.8.0)
播放器play_type、live_play_type;取值语义随分支不同,按本地设置保存,读到无法映射的值回落系统播放器
站点单独指定sites[].playerType:0 系统、1 IJK、2 Exo,默认 -1 跟随全局;字符串和数字都要接受(§3.3)
外部播放器pl:10 MX Player、11 Reex、12 Kodi、13 附近 TVBox、14 VLC(§5.8.3)
解码配置 ijk 数组里的「软解码」「硬解码」两组 option,做成配置组而不是布尔开关
渲染与画面play_render(0 TextureView / 1 SurfaceView)、play_scale、play_time_step、player_audio_passthrough
解析parse_default;parse_webview(true 系统 WebView,false XWalk)
直播DEFAULT_LOAD_LIVE、live_connect_timeout、live_show_net_speed、live_show_time、live_channel_reverse、live_cross_group
字幕subtitle_text_size、subtitle_time_delay
弹幕danmu_open、danmu_max_line、danmu_speed、danmu_alpha、danmu_size_scale、danmu_random_color、danmu_api(§5.12.2.5)
网络doh_url / doh_json,内置系统、腾讯、阿里、360;配置的 hosts(域名=IP 覆盖表)和 proxy(§8.1、§8.3)
搜索search_view(0 列表 / 1 缩略图)、fast_search_mode、checked_sources_for_search
数据history_num;备份内容对应 tvbox.v3.db 的 cache、vodRecord、vodCollect 三张表(§8.9)
关于与调试debug_open、internal_log_enabled
外观、自动换源规范没有对应键,属于 myBox 的本地设置;首页壁纸取配置的 wallpaper(§3.7)。「取色风格」直接对应 MaterialKolor 的 PaletteStyle:忠于封面 Content、柔和 TonalSpot、鲜艳 Vibrant、表现力 Expressive
  • 立即生效:除了「播放器」「解码」「渲染方式」要在下一次起播时生效,其余设置改完即时生效,不需要保存按钮。
  • 数据:备份导出为一个文件,包含观看历史、收藏、播放进度和全部设置;恢复前先显示文件里各有多少条。也能从旧版 TVBox 的数据库直接导入。
  • 恢复默认:每个分组详情底部有「恢复本组默认」,不提供全局一键重置,避免误操作。
S19

远程管理

电视上打字太慢,所以 myBox 在局域网里开一个网页:手机扫码打开,就能把配置地址、直播源、搜索词、播放链接和弹幕源发给电视,还能往电视里传文件。装了 myBox 的手机则直接在应用里找到附近的电视。

远程管理 手机连同一个 Wi-Fi,扫码或输入下面的地址。
运行中 本机名称
客厅电视
端口
9978
linkhttp://192.168.1.8:9978/
允许局域网设备管理
换配置前在电视上确认防止别人悄悄改掉你的源
最近收到
link林的手机 推送了播放链接,已开始播放21:42
search林的手机 发来搜索词「长夜将尽」21:40
upload_file收到文件 北纬零度.zh-CN.ass21:35
live_tv直播源换成「全球频道」昨天
chat弹幕源已设置昨天
电视,设置里的「远程管理」二维码就是本机地址;右侧记录最近谁发来了什么。
21:42signal_cellular_altwifibattery_5_bar
homeinfo192.168.1.8:99782more_vert
myBox 远程管理客厅电视,192.168.1.8在线
推送文件
发给电视的是
search搜索词link播放链接hub点播配置live_tv直播源chat弹幕源
播放链接https://v.lin-studio.cn/north/index.m3u8|Referer=https://v.lin-studio.cn/
需要请求头时,在链接后面用 | 接上,例如 |Referer=…
send_to_mobile推送到客厅电视
check_circle电视已收到
最近推送
search搜索词「长夜将尽」replay
live_tv直播源 bililive.m3ureplay
hub点播配置 星河仓.jsonreplay
电视上关掉「允许局域网设备管理」后,这个页面会打不开。
手机浏览器里的管理页由电视上的 myBox 提供,不用装应用。
21:45signal_cellular_altwifibattery_5_bar
homeinfo192.168.1.8:99782more_vert
myBox 远程管理客厅电视,192.168.1.8在线
推送文件
storage存储chevron_rightDownload
upload上传create_new_folder新建文件夹
subtitles北纬零度.zh-CN.ass上传中,53 KB / 86 KB
folder安装包文件夹more_vert
folder字幕文件夹more_vert
data_object家用精选.json12 KB,可作为配置地址设为配置
playlist_playiptv.m3u186 KB设为直播源
movie家庭录像 2026-10-01.mp41.3 GBdelete
管理页的「文件」上传、新建、删除;配置和直播文件可直接启用。
21:50signal_cellular_altwifibattery_5_bar
arrow_back附近的电视refresh
正在扫描 192.168.1.1 到 255已检查 186 台,找到 3 台
找到的设备
tv客厅电视myBox 1.0.0,192.168.1.8:9978chevron_right
tv192.168.1.23TVBox 类应用,端口 9978chevron_right
videocam192.168.1.31TVBox 类应用,端口 9978chevron_right
以前连过
tv卧室投影192.168.1.40,没有响应11月10日
手动输入 IP例如 192.168.1.8add
这里找的是开着管理服务的 TVBox 类应用,和 DLNA 投屏不是一回事;DLNA 设备在「投屏」里。
myBox 手机端:附近的电视扫描当前网段,几秒内列出结果。
21:51signal_cellular_altwifibattery_5_bar
arrow_back附近的电视
tv客厅电视myBox 1.0.0,192.168.1.8:9978
推送正在看的这一集长夜将尽 第 7 集,18:42send_to_mobile推送
search发送搜索词
hub把我的点播配置发过去星河仓 线路一
live_tv把我的直播源发过去IPTV 组播
chat设置弹幕源
gamepad打开遥控器chevron_right
open_in_browser在浏览器里管理文件open_in_new
选中一台电视之后最常用的「推送正在看的」放在最上面。
push_pin标注
  1. 二维码:内容就是下面的地址。手机系统相机扫码即可,不需要 myBox 手机端。
  2. 地址:用大号字显示完整地址,方便没有扫码条件时手动输入。端口被占用时自动改用下一个,这里同步更新。
  3. 换配置要确认:别人推来点播配置或直播源时,电视先弹窗问「换成这个吗」,写明来自哪台设备,确认后才生效。搜索词、播放链接不需要确认。
  4. 最近收到:每条写清来源设备、内容和时间,误推时知道是谁发的。
  5. 推送类型:一个输入框配五种类型,切换 Chip 只改标签和示例,不换页面。
  6. 请求头:播放链接后用 | 接请求头,和直播源里的写法一致。
  7. 结果:只能确认电视收到了请求,所以写「电视已收到」,不写「播放成功」。
  8. 文件位置:面包屑从存储根目录开始,默认打开 Download。
  9. 上传与新建:支持一次选多个文件,上传项置顶并显示进度。
  10. 上传进度:传完后这一行变成普通文件,并在电视上出现「收到文件」记录。
  11. 一键启用:json 文件可以直接设为点播配置,m3u / txt 设为直播源,电视同样会弹确认。
  12. 扫描进度:同时探测网段内所有地址,进度条和计数随返回更新;找到一台列一台,不用等扫完。
  13. 其它 TVBox:只有 myBox 能报出设备名,其它兼容应用只显示 IP,功能照样能用。
  14. 设备操作:选中电视后的底部面板,列出能发给它的所有内容。
  15. 推送正在看的:带封面和进度,电视从同一位置接着播。
data_object与规范的对应
界面协议
二维码、地址本地 HTTP 服务,二维码内容 http://<局域网IP>:9978/;端口从 9978 起递增到第一个可用的(engine 版上限 9998,classic 与 DV 版 9999)(§8.2、§8.8)
推送入口POST /action,表单 do=:search(word)、api、liveApi、danmuApi、push(url)(§5.13.5)
电视端处理DataReceiver:onTextReceived 发起搜索,onApiReceived 换点播配置,onLiveApiReceived 换直播源,onDanmuApiReceived 写弹幕源,onPushReceived 推给播放器(§8.8)
播放链接请求头do=push&url=<url>|Header=value,与播放行 URL|k=v 同一约定(§8.2.1)
「电视已收到」/action 无论动作是否执行都返回纯文本 ok,只能证明对方在线
文件管理浏览 /file/<path>;上传 POST /upload(multipart,字段带 files- 前缀);/newFolder、/delFolder、/delFile
设为配置file:///sdcard/Download/家用精选.json 在内部转成 http://127.0.0.1:<port>/file/sdcard/Download/家用精选.json(§8.2 scheme 转换)
附近的电视扫描本机所在 C 段 1–255,跳过自己,并发 POST http://<ip>:9978/action,响应正好是 ok(不分大小写)即判定找到(§5.13.5)
设备名myBox 之间用 /device 取名称;对方是 DV 版等没有该路由的分支时只显示 IP(§8.2.1)
  • 分支差异:对方若是 DV 版,/action 只认 search、api、push;推直播源或弹幕源前先提示「对方可能不支持」。
  • 换配置确认:规范里 onApiReceived 收到即切换。myBox 加一道电视端确认,这是 myBox 自己的安全措施,不影响协议兼容。
  • 关闭服务:关掉「允许局域网设备管理」后,管理页和推送都不可用,但播放用的本地代理照常工作。
S20

提示、错误与空状态

TVBox 的内容全部来自第三方,出错是常态。myBox 的原则是:先说发生了什么,再说是谁的问题,最后给一个能立刻点的下一步。空状态用一个大号的 Expressive 形状托住图标,语气平实,不卖萌。

雪落无声
全 16 集2025/剧情
21:50signal_cellular_altwifibattery_5_bar
光星河仓 线路一光年影视unfold_more林
campaign星河仓的公告
线路二的服务器本周六凌晨维护 2 小时,期间请用线路一。新增「长风资源」站点,支持 4K。
不再显示知道了

继续观看

霓虹不眠 第 3 集剩 31 分
末班地铁 第 19 集剩 6 分
已切到长风资源,首页内容已刷新撤销
公告横幅与 Snackbar公告用卡片不用弹窗,操作结果用 Snackbar
21:51wifibattery_5_bar
arrow_back配置
点播配置
dns
星河仓3 条线路,64 个站点
lock
家用精选加载中
key
这份配置是加密的

「家用精选」的内容不是明文,地址里也没有带密钥。输入配置作者提供的密钥后再试一次。

密钥mybox2026visibility
error上一次输入的密钥解不开,请核对大小写
保存到地址里,下次不再询问
取消解密并加载
加密配置识别到密文又没有密钥时,才弹出这个对话框
21:52wifibattery_5_bar
全部站点只看采集站网盘
search_off 26 个站点都没有找到 试试去掉最后的「了」,或者只搜片名的前几个字。
你是不是要找
长夜将尽2026,5 个站点有
chevron_right
public用豆瓣搜cloud去网盘搜
schedule3 个站点超时没有返回只重试这 3 个
搜索无结果给出一个最接近的结果和两个去处,并说明有站点超时
21:53wifibattery_5_bar
cloud_off 配置没加载成功 「星河仓 线路一」返回 404,地址可能已经失效。这不是你的网络问题,其它网站都能打开。
history先用上次的缓存(3 小时前) alt_route换到线路二 修改配置地址
诊断信息content_copy复制
GET https://xinghe.example/1.json HTTP 404,用时 0.8 秒,已重试 2 次 网络连通性:正常(检测了 2 个公共地址)
配置加载失败先用缓存把应用跑起来,再处理坏掉的地址
21:54signal_cellular_offwifi_offbattery_5_bar
arrow_back
纪录片光年影视
tune
wifi_off网络已断开,下面是缓存的内容设置
全 6 集
深海回声
冰河纪事
灯塔守望者
猫的一百种生活
无人区来信
少年与海
error
第 3 页没加载出来站点 15 秒没有响应
refresh重试
断网与翻页失败已经加载的内容保留,错误只占一行
21:55wifibattery_5_bar
媒体库search
收藏历史缓存本地
bookmarks 还没有收藏 在详情页点「收藏」。收藏记着片子来自哪个站点,换了当前站点也能找回来。 explore去首页看看
空收藏一个形状、一句话、一个按钮
21:56wifibattery_5_bar
站点提示 本片暂无可用片源,请稍后再来
swap_horiz换源换线路
破晓行动 第 1 集,光年影视,光年 1080P
info这句话由站点返回,myBox 原样显示;没有提示时显示「站点没有返回播放地址」。
travel_explore
长风资源有这一集64 ms,同为 1080P
换过去
选集
123456
同类推荐
站点返回的提示播放区直接显示站点给的文字,并附上换源
wifi_tethering_error 光年影视没有响应 15 秒内没有返回首页数据。可能是站点在维护,或者需要更新配置。
swap_horiz换个站点 refresh重试 诊断
这些站点现在正常
长
长风资源64 ms
猫
网飞猫128 ms
七
七七影院410 ms
OK换到推荐站点右挑一个站点菜单切源面板
电视,站点无响应整页错误只在首页拿不到任何内容时出现;右侧直接列出能用的站点
push_pin标注
  1. 公告卡片:配置里的公告显示在首页 Hero 下方,用次要容器色,不遮挡内容。标题写明来自哪个仓库。
  2. 多条公告:右上角的分页点,左右滑切换;内容不变时「不再显示」一直有效,变了会重新出现。
  3. Snackbar:切源、收藏、清缓存这类操作的结果,4 秒后消失,能撤销的都带撤销。
  4. 密钥输入:只在内容明显是密文、而地址里没有密钥时出现。保存后密钥写回地址末尾。
  5. 错误说明:解密失败时写在输入框下方,而不是另弹一个对话框。
  6. 空状态形状:140 dp 的 Expressive 形状托住图标,颜色随场景:搜索用主色容器,错误用错误容器,媒体库用第三色容器。
  7. 下一步:最接近的结果、其它搜索去处、只重试超时的站点。
  8. 缓存兜底:配置拉不下来时,主按钮是「先用上次的缓存」,让应用先能用。
  9. 诊断信息:请求地址、状态码、耗时、重试次数和网络连通性,一键复制发给配置作者。
  10. 断网横幅:顶部一条,说明现在看的是缓存;网络恢复后自动消失并刷新。
  11. 翻页失败:已经加载的内容保留,只在列表末尾放一行错误和重试。
  12. 空收藏:一句话说明收藏的价值,一个按钮离开空页面。
  13. 站点提示:站点给出的提示文字原样显示在播放区,标明「站点提示」,与 myBox 自己的话区分开。
  14. 电视焦点:默认落在「换个站点」,按 OK 直接换到右侧第一个站点。
  15. 按键提示:菜单键随时打开完整的切源面板。
data_object与规范的对应
界面字段 / 规则
公告配置顶层 notice / msg(§3.1);M3 不读这两个键,myBox 读取并显示
加密配置地址形如 url;pk;密钥;解密顺序:合法 JSON → [A-Za-z0-9]{8}** 标记后 Base64 → 2423 前缀 CBC → 有密钥时 AES-ECB(§3.1.1、§11.4 第 18 条)
配置容错允许注释与尾逗号;根对象后拼接的内容只读第一份;单条站点解析失败只丢弃该条(§3.1、§11.4 第 1、2 条)
多仓兜底urls 取第一个能加载的配置,递归不超过 8 层(§3.1.1、§3.9)
站点超时timeout 钳制到 5–60 秒,默认 15 秒(§3.3)
站点提示playerContent 的 msg:无源时的提示(§5.1)
无地址parse = 0 且 url 为空时报错,不自动嗅探(§5.2)
推送提示收到 /action 推送时的电视卡片见 S17
  • 措辞规则。说清楚是谁的问题:站点、配置、网络、本机。是第三方的问题就直说,不让用户以为是自己的错。
  • 不用模态打断。只有需要用户输入(密钥)或确认不可撤销操作时才用对话框,其余一律用横幅、Snackbar 或行内提示。
  • 错误级别。整页错误只在一个页面完全没有内容时使用;有部分内容时只用行内提示。
5

电视交互规范

电视是 TVBox 用户最主要的设备。10 英尺界面只有一个输入:遥控器的方向键和确认键。所以电视版的每个界面都先回答一个问题——焦点现在在哪,按一下会去哪。

继续观看
星际邮差
宇宙最后一位邮差,要把一封寄错了三百年的信送到。
▶回到内容菜单切换源返回收起
侧边导航抽屉在内容最左一列再按左键时展开,焦点停在当前页面对应的项上。最上面是当前源,按确认打开切源面板。
center_focus_strong焦点的视觉规则
  • 三件套:放大 1.08 倍、3 dp 白色描边、主色外发光。三者同时出现,不依赖颜色辨识,色弱用户与低端屏幕都能看清。
  • 反色:列表项、按钮、侧栏项获得焦点时改为「浅底深字」(onSurface 底色),这是电视上最醒目的状态。
  • 不模糊也成立:电视界面所有浮层默认用不透明着色层与渐变,模糊仅在用户手动开启且设备支持时生效。
  • 安全区:四周留出 48 × 27 dp(5%)的安全边距,所有可聚焦元素都在区内;背景图可以铺满。
  • 焦点记忆:每一行记住上次的焦点列;从详情返回首页,焦点回到进入时的那张卡片。
  • 预加载:焦点停留 300 ms 才加载背景大图并换主题色,快速长按方向键滚动时只移动焦点。
route焦点路径
  • 首页:分类行(顶部)↕ Hero 按钮 ↕ 内容行;最左列按左键展开侧栏;在侧栏按右键回到内容。
  • 切源:侧栏最上面一项是当前源(站点首字、测速圆点),展开后显示「站点 / 仓库 · 线路」。焦点移到这里按确认,打开 S04 的电视切源面板。内容区右上角只放时钟,不再放源胶囊。
  • 详情:播放按钮为初始焦点;下键进入选集行,选集行下方是线路行;返回键回到首页原焦点。
  • 播放:控件隐藏时,左右键直接快退快进,上键呼出线路与画质,下键呼出选集,确认键暂停并显示控件。
  • 直播:上下键换台,左右键换线路,确认键呼出频道列表,菜单键打开切源与设置。
settings_remote遥控器键位
OK确认打开、播放、暂停;直播中呼出频道列表
菜单切源与更多任何页面都打开切源面板;播放中打开播放设置。按键提示不常驻界面,首次进入首页时在源头像旁提示一次
返回后退一级首页连按两次退出;播放中先收起控件
◀ ▶水平移动播放中快退快进(步长 play_time_step),直播中换线路
▲ ▼垂直移动直播中换台,可在设置里反转方向
频道 ±快速切换首页在最近站点间切换;直播中换台;播放中切集
长按 OK次级操作卡片上收藏、删除记录、站点置顶
数字键直接选台直播中输入频道号,1.5 秒后跳转
mic
语音与手机输入。搜索页优先展示语音按钮;没有语音的遥控器,可以用手机扫码把搜索词推到电视(S19 远程管理)。
6

附录与待讨论问题

协议到界面的总对照、建议的技术实现,以及这一版最需要大家拍板的问题。提意见时写上问题编号即可。

协议字段到界面的总对照

配置 / 协议规范章节出现的界面
配置地址、;pk; 密钥、多仓 urls§3.1.1、§3.9S01 加载,S02 添加,S04 线路,S05 管理
spider / 站点级 jar 与 ;md5;§3.2、§4.3.2S01 加载步骤,S05 爬虫包状态
sites[]:key / name / type / api / searchable / filterable / quickSearch / changeable / indexs / timeout§3.3、§3.4S04 切源,S05 站点表,S07 参与搜索,S09 同名换源
homeContent / homeVideoContent§4.3.5S03 首页
categoryContent、filters、vod_tag = folder、style§4.3.5S06 分类与筛选
detailContent:vod_play_from($$$)、vod_play_url(# 与 $)§4.3.5、§9.3S08 详情
searchContent、quickSearch§4.3.4、§4.3.5S07 搜索,S09 换源
playerContent:parse / jx / url / header / subs / danmaku / skips / drm / position§5.1、§5.2S10 播放器,S11 解析
parses[]、flags、嗅探 rules§3.5、§5.6、§5.7S10 线路与解析面板,S11 解析流水线
lives[]、txt / m3u、catchup、epg、logo§6S12 直播,S13 节目单与回看
DLNA、附近 TVBox、外部播放器§5.13、§5.8.3S17 投屏与推送
本地服务 9978、/action 远程管理§8.2、§8.8S19 远程管理
设置键(HawkConfig)、弹幕设置键§5.8.0、§5.12.2.5S18 设置
WebDAV / AList§4.7、§4.9S16 NAS、网盘与本地
SMB / Samba:配置里的 csp_Samba、本地添加的共享、代理转发§4.7、§5.9S16 发现、登录、选择共享与播放,S02 首次添加
Emby / Jellyfin:认证、UserViews、PlaybackInfo、进度上报§10S15 媒体服务器
wallpaper、notice / msg§3.1、§3.7S03 首页背景,S20 公告

建议的技术实现

界面层
  • Kotlin + Jetpack Compose,minSdk 23(Android 6.0),一套代码覆盖手机、平板、折叠屏、双屏和电视。
  • 电视不使用 androidx.tv(tv-material、tv-foundation 都不引入),和手机共用同一套 Material 3 组件,焦点体系在 Compose foundation 上自建:
    • onFocusChanged 驱动「放大 + 白描边 + 主色光晕」
    • focusRestorer 让每一行记住上次的焦点
    • focusProperties 指定跨区域的方向键跳转,例如最左列 → 侧栏
    • onPreviewKeyEvent 统一处理菜单键、频道键和数字键
    • 列表用普通的 LazyRow / LazyColumn,通过 BringIntoViewSpec 让焦点项停在固定位置
  • Material 3 Expressive:MaterialExpressiveTheme、MotionScheme.expressive()、MaterialShapes、ButtonGroup、SplitButtonLayout、FloatingToolbar、LoadingIndicator、LinearWavyProgressIndicator。
  • 自适应:material3-adaptive 的 NavigationSuiteScaffold、ListDetailPaneScaffold;姿态用 androidx.window 的 FoldingFeature。
  • 模糊:dev.chrisbanes.haze(haze + haze-materials),按 2.2 节的材质表使用;API 23–30 用 fallbackColorEffect 着色层。
  • 取色:Coil 3 解码 + MaterialKolor 6.0:material-kolor-palette 的 rememberThemeColor 取种子色,material-kolor-material3 的 DynamicMaterialExpressiveTheme(PaletteStyle.Content,默认 SPEC_2025)生成主题。
协议与播放层
  • 配置:宽松 JSON 解析(容忍注释、单引号、尾逗号),相对路径以配置最终 URL 为基准(§3.8、§9.3)。
  • 爬虫:JAR 用 DexClassLoader;JS 用 QuickJS;Python 用 Chaquopy,作为可选构建风味(§7.13.9.7)。
  • 播放:Media3 ExoPlayer 为主内核,FFmpeg 扩展做软解;外部播放器按 §5.8.3 投递。
  • SMB:smbj(Apache-2.0)负责 SMB 2.0.2–3.1.1,smbj-rpc(BSD-3-Clause)列出共享;SMB1 只在用户确认后用 jcifs-ng(LGPL-2.1,作为独立依赖引入、不改源码)。smbj 依赖 BouncyCastle,Android 上要打包完整版,不能用系统自带的精简版。播放统一走本地代理转成 http 地址(§5.9)。
  • 本地服务:端口 9978 起递增,承载代理、远程管理与「附近 myBox」发现。
  • 许可:TVBoxOS-M3 为 AGPL-3.0,myBox 按规范重新实现协议,不直接复制其代码。

minSdk 23 的取舍

Android 6.0 是下限,大量电视盒子也停在 7–9。下面这些能力在旧版本上没有,界面按右列处理;设计稿里的每个界面都按「最低版本也能用」画,高版本只是更好看。

能力需要的版本低版本上的做法
实时模糊(RenderEffect)Android 12(API 31)Haze 的 fallbackColorEffect 着色层,即本稿「模糊」开关关掉时的样子
系统壁纸取色Android 12(API 31)设置里不显示这个来源;封面取色由 MaterialKolor 计算,任何版本都可用
画中画Android 8.0(API 26)播放器不显示画中画按钮,离开页面时暂停
可变字体轴(Roboto Flex 的字宽、字重)Android 8.0(API 26)改用固定字重,标题少了字宽变化,层级不变
预测性返回动画Android 14(API 34)普通返回,面板与页面仍有各自的退出动画
Let's Encrypt 证书(ISRG Root X1)Android 7.1.1 起系统内置很多配置地址用这类证书。OkHttp 用自定义 TrustManager 合并系统根证书与内置的 ISRG Root X1,否则 6.0–7.1 设备会加载失败
系统 WebView 版本解析与嗅探依赖较新的 WebView启动时检查 WebView 版本,过旧时在 S11 提示并优先用 JSON 解析

待讨论问题

下面这些是设计时拿不准、希望大家给意见的地方。每条都附上了当前稿子的做法。

编号问题本稿的做法
Q1封面取色应该取「面积最大」的颜色,还是「最鲜艳」的颜色?例如《长夜将尽》取到的是夜空的藏青 #101030,画面中心的橙色太阳只排第四。用 MaterialKolor 默认的 rememberThemeColor(kmpalette 量化 + Score,兼顾面积与彩度),可在 2.1 节逐张试。备选:用 rememberThemeColors(desired = 4) 取前几名,再挑彩度最高的一个。
Q2默认深色,还是跟随系统?默认深色,设置里可改为跟随系统或浅色。
Q3手机底部导航五项是否太多?「媒体库」能否并入切源面板,只保留四项?保留五项,因为 Emby / Jellyfin 用户的使用路径与 TVBox 站点差别较大。
Q4在源胶囊上左右滑动切换站点,会不会和 Hero 轮播的横滑冲突、造成误触?只在胶囊本身的区域响应,并在切换后给 4 秒撤销。
Q5电视默认关闭模糊是否合理?默认关闭,设备支持时可在设置里开启。
Q6切源面板打开时是否自动测速?会增加流量和站点压力。结果缓存 10 分钟,过期后打开面板时在后台测;也可手动「全部测速」。
Q7「继续观看」跨站点汇总,还是只显示当前站点的记录?跨站点汇总,每条记着来源站点,点开直接回到那个站点。
Q8播放失败时自动换到其他站点的同名影片,是否默认开启?默认只提示,不自动切换;设置里可以打开自动换源。
Q9片名使用宋体 Heavy,在低分辨率电视或小屏手机上是否够清楚?片名字号不小于 20 dp;小于这个尺寸时改用黑体粗体。
Q10是否需要「儿童模式」或「隐藏站点需要密码」?本稿未设计,若需要可放在设置的「数据」分组。
Q11Android 6.0–11 上是否打开 Haze 的实验性 RenderScript 模糊?不打开,统一用着色层。若希望旧手机也有玻璃质感,可以只给不滚动的面板(切源面板、对话框)打开。
Q12电视的切源入口放在侧栏最上面,是否够好找?侧栏顶部的源头像 + 全局菜单键,首次进入首页提示一次菜单键;右上角只留时钟。备选:把源头像放进顶部分类行的最左边。
Q13只支持 SMB1 的老设备(路由器硬盘、老 NAS)要不要支持?SMB1 有已知的安全问题,但这类设备在家里很常见。支持,但默认不连:发现时标出「仅 SMB1」,连接前弹出说明,由用户确认;确认后这个位置一直带着 SMB1 标签。
rate_review
如何提意见。每个界面标题旁都有「对这一屏提意见」,会在 GitHub 上新建一条带界面编号的 Issue。也可以直接在 Issue 里写「Q3 同意」这样的简短回复。

版本记录

  • v0.3,2026-11-13:支持 SMB / Samba。S16 改为「NAS、网盘与本地文件」:平板浏览 SMB 共享,新增设备发现、登录与选择共享、SMB1 提示、电视用手机填写账号四组画面;S02、S05 增加 SMB 入口;附录增加 Q13。
  • v0.2,2026-11-13:按第一轮意见修改。
    • 电视切源入口从首页右上角的胶囊移到侧栏最上面,右上角改为时钟(S03、S06、第 5 章)。
    • 不使用 androidx.tv 组件,电视焦点体系自建。
    • minSdk 定为 23,补充低版本的降级方案。
    • 取色改为 MaterialKolor 6.0,2.1 节的演示按同一流程重算。
  • v0.1,2026-11-13:首个征求意见稿。设计系统、五种设备形态、20 个界面、电视交互规范。