觅知放映厅
返回放映厅 弹幕礼仪

DOCUMENTATION / 01

把片子放起来,
只需要五分钟。

这份教程覆盖部署、苹果 CMS 接入、横屏全屏与排查顺序。播放器不依赖数据库,弹幕以文件形式保存在站点内。

一、部署

  1. 把压缩包内的全部文件上传到域名根目录,例如 /www/wwwroot/your.com/。不支持二级目录。
  2. PHP 版本 7.4 – 8.4,需开启 curl 与 json 扩展。
  3. 给 data/ 目录与 admin/data.php 写入权限(755 / 775,视主机而定)。
  4. 访问 /admin/ 登录后台,默认密码 98dou,登录后立即修改。
  5. 在「解析接口」填入 JSON 解析地址;只播直链可留空。
不需要安装 MySQL,也不需要额外的弹幕库组件。弹幕、举报与配置全部以文件形式保存在站点内,迁移时打包 data/ 即可。

从旧版升级

先备份 admin/data.php、admin/adminpass.php 与 data/,然后删除旧版文件,尤其是 dmku/、admin/template/、admin/yiyan/、admin/js/、admin/css/、admin/layui/、js/、css/ 以及根目录的旧说明文件。上传本包后恢复两个配置文件,进入后台保存一次即可完成迁移。

二、接入苹果 CMS

进入苹果 CMS 后台 → 系统 → 播放器 → 编辑 dyttm3u8,把「播放器代码」框先全部清空,再粘贴下面这一行。域名已经在代码里了,不用改。

APPLE CMS · PLAYER CODE
/* 觅知放映厅 · 苹果 CMS 接入代码(一行版)
 *
 * 后台 → 系统 → 播放器 → 编辑 dyttm3u8
 *   1) 先把框里的内容全部删掉(Ctrl+A → Delete)
 *   2) 只粘贴下面这一行,不要自己加 script 标签
 *   3) 保存 → 清理 CMS 缓存 → 前台 Ctrl+F5
 * ============================================================ */

(function(){var d=document,B="https://shdbuf.f3i84.cn/assets/";function add(u){var s=d.createElement("script");s.src=u;s.charset="utf-8";(d.head||d.documentElement).appendChild(s);}add(B+"maccms.php?t="+Date.now());setTimeout(function(){if(!window.__MZ_CMS_LOADED__){add(B+"maccms.js?v=20261022");}},1500);})();
⚠ 最容易踩的坑:框里只能留这一行,不能出现 <script> 标签。苹果 CMS 会把播放器代码原样存成 /static/player/dyttm3u8.js,再用 <script src="..."> 加载;文件里一旦混进标签,浏览器直接判定语法错误,整段代码不执行 —— 播放器黑屏,选集和下一集自然全都没有。
✅ 保存后自检(10 秒):浏览器新开一个标签,访问 https://susge.f3i84.cn/static/player/dyttm3u8.js。 页面应该只显示一行 (function(){var d=document...;如果还能看到 <script>,说明框里没删干净,回去重做一次。
🅱 方案 B(后台改不动时用):把包里的 dyttm3u8.js 直接上传到 /static/player/dyttm3u8.js 覆盖原文件(宝塔「文件」或 FTP 均可),不用登录后台。 内容与上面那一行完全一样。
这一行只是「加载器」,真正的逻辑放在播放器服务器的 assets/maccms.js 里。所以以后加功能、修 bug,都不用再动 CMS 后台,刷新前台就生效。
选集、下一集、自动下一集是这样拿到的:服务端解析。播放器会带着当前播放页地址请求 api/cms.php,由服务器把页面里的 player_aaaa 解析出来,拿到整部剧 44 集和每集的 m3u8。所以选集是不刷新切换,下一集也会自动接上;只有解析失败时才会退回整页跳转。

官方解析(免费,无需购买第三方解析)

后台「解析接口」页顶部有官方解析地址,形如 https://你的域名/api/official.php?url=。把它填到苹果 CMS 的「播放器解析地址 / 资源解析地址」一栏,CMS 每次取片时都会先问本站:

采集条数可在后台「解析接口 → 已采集直链」查看,也可一键清空重新采集。

如果画面无法全屏

部分苹果 CMS 模板会在 iframe 上裁掉全屏属性,可改用下面的写法:

FULLSCREEN SAFE
<iframe
  src="https://你的播放器域名/?url=播放地址"
  width="100%" height="100%"
  frameborder="0" scrolling="no"
  allowfullscreen="true"
  webkitallowfullscreen="true"
  mozallowfullscreen="true"
  oallowfullscreen="true"
  msallowfullscreen="true"
  allow="autoplay; fullscreen; picture-in-picture">
</iframe>

三、播放体验

播放画面左上角显示实时在线人数(最近 150 秒内有心跳的独立访客,同一 IP 的不同设备分别计数)。数据存在 data/online/,不需要数据库,过期文件会自动清理。

四、审核与陪聊

两者都在后台单独配置,默认关闭,密钥留空。

安全检测(广告 / 赌博 / 黑灰产拦截)

「互动与安全 → 安全检测」默认开启。片源地址与解析结果都会先过检测:命中内置赌博、色情、黑灰产词库或自定义黑名单时,播放器直接提示「已停止播放」并说明原因,不会把观众带到违规网站。内置词库覆盖拼音与外文高频词(du-chang / casino / bocai / liuhecai…)、主流博彩品牌(sbobet / bwin / betway / dafabet…)以及「bet / ag + 数字」命名(bet365、188bet、12bet、365bet、ag88…)。词库按域名分段匹配,alphabet.com、tag88.com 这类正常域名不会误拦;万一误拦,把域名加进白名单即可。

五、全屏与横屏

六、播放参数

QUERY STRING
https://你的播放器域名/?url=https://example.com/movie.m3u8

url     必填,播放地址(直链或网页地址)
title   标题(也可用 name)
pic     封面图
next    下一集地址(可相对路径);没传 eps 时用「当前+下一集」兜底出选集
ids     片源 ID,用于固定弹幕库(可留空)
xl      线路名称,仅展示
live=1  直播模式
theater=0  竖版页面播放(桌面默认横屏剧场,加此参数回到竖版)
theater=1  强制横屏剧场(含手机竖屏)

eps     选集列表,三种写法任选:
  1) base64url(JSON)  [{"name":"第1集","url":"https://a/1.m3u8"}, ...]
  2) 文本  第1集$https://a/1.m3u8|第2集$https://a/2.m3u8
  3) 换行分隔,每行一条「名称$地址」
  也认 epsurl / eps_url / epslist / playlist / urls / list 这些同义参数名
ep      当前集序号,从 0 开始,缺省 0

七、常见问题

播放器里的 LOGO 有底色

播放器内 LOGO 已经默认去掉半透明底板和毛玻璃,直接压在画面上。如果还看到一块底色,说明是图片本身带的:到后台「站点与外观 → LOGO 底色」选 去黑底(深色图) 或 去白底(浅色图),就会用混合模式把底融掉。最彻底的办法是换成透明背景的 PNG / SVG。

左上角人数一直显示 1

在线人数按「最近 150 秒内有心跳」统计,只有你一个人访问时就是 1,属于正常。人数每 45 秒刷新一次;如果始终是 --,检查 api/online.php 能否访问、data/online/ 目录是否可写。

看不到「选集」按钮

选集按钮只在集数大于 1 时出现,出现在两个地方:播放器控制条右侧的方格图标,以及播放器下方信息区的「选集」按钮(横屏时下方信息区会自动收起,用控制条那个)。

按钮没出现说明选集是空的,按顺序排查:

① 地址栏没带 eps 参数 —— 按上面「六、播放参数」的格式补上;
② 只接了 next —— 播放器会自动用「当前 + 下一集」兜底,若仍没有,检查 next 是否和 url 相同(相同则不生成);
③ 苹果 CMS —— 用上面「二、接入苹果 CMS」的新版代码,它会自动把剧集列表拼成 eps 传进来;改完记得清 CMS 缓存并按 Ctrl+F5 强刷。
④ 选集里只有 1 条 —— 按钮不显示,需要至少 2 集;
⑤ 播放器根本没出来(画面空白或停在 CMS 页面)—— 说明播放器代码没执行,回头看上面「不要带 <script> 标签」那条;改完一定清 CMS 缓存。

提示「片源没有送达」

链接为空,或所有解析方式都失败。先确认地址能在浏览器直接打开:腾讯视频播放页地址由官方解析直接处理(无需额外接口);其他网页地址检查 JSON 接口是否返回 {"url":"..."} 结构。若地址是腾讯视频页但仍失败,可能是接口临时风控,稍后重试或换用直链。

腾讯视频提示「您所在区域暂无此内容版权」

这是腾讯官方的区域版权限制:该片源在视频发布地区之外无法播放,与播放器无关。播放器会自动用多组官方接口参数重试,仍受限时会给出明确提示。如正在使用 VPN 请关闭后重试,或更换网络环境;海外片源可尝试使用国内线路的代理。

提示「片源无法播放」

通常是跨域、防盗链或链接过期。可尝试在「解析接口」中更换接口,或在后台填写允许的 Referer 来源。腾讯免费流的密钥约 2 小时过期,过期后再次访问会自动重新解析。

弹幕发不出去

检查 data/dm 是否可写、发送间隔是否设置过长、内容是否命中屏蔽词。

后台样式错乱

确认 admin/assets/ 已完整上传,然后强制刷新(Ctrl + F5)。

如何备份

备份 admin/data.php(配置)、admin/adminpass.php(密码)与 data/(弹幕与举报)即可。