DOCUMENTATION / 01
把片子放起来,
只需要五分钟。
这份教程覆盖部署、苹果 CMS 接入、横屏全屏与排查顺序。播放器不依赖数据库,弹幕以文件形式保存在站点内。
一、部署
- 把压缩包内的全部文件上传到域名根目录,例如
/www/wwwroot/your.com/。不支持二级目录。 - PHP 版本 7.4 – 8.4,需开启
curl与json扩展。 - 给
data/目录与admin/data.php写入权限(755 / 775,视主机而定)。 - 访问
/admin/登录后台,默认密码98dou,登录后立即修改。 - 在「解析接口」填入 JSON 解析地址;只播直链可留空。
data/ 即可。从旧版升级
先备份 admin/data.php、admin/adminpass.php 与 data/,然后删除旧版文件,尤其是 dmku/、admin/template/、admin/yiyan/、admin/js/、admin/css/、admin/layui/、js/、css/ 以及根目录的旧说明文件。上传本包后恢复两个配置文件,进入后台保存一次即可完成迁移。
二、接入苹果 CMS
进入苹果 CMS 后台 → 系统 → 播放器 → 编辑 dyttm3u8,把「播放器代码」框先全部清空,再粘贴下面这一行。域名已经在代码里了,不用改。
/* 觅知放映厅 · 苹果 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="..."> 加载;文件里一旦混进标签,浏览器直接判定语法错误,整段代码不执行 —— 播放器黑屏,选集和下一集自然全都没有。https://susge.f3i84.cn/static/player/dyttm3u8.js。
页面应该只显示一行 (function(){var d=document...;如果还能看到 <script>,说明框里没删干净,回去重做一次。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 每次取片时都会先问本站:
- 平台网页解析:直接粘贴腾讯视频播放页地址(
v.qq.com/x/cover/…、v.qq.com/x/page/…、v.qq.com/iframe/player.html?vid=…)即可取出真实播放地址并起播;解析密钥有时效,采集缓存按 2 小时短时效自动失效重建。 - 官方采集库:解析成功的直链自动采集到
data/links.json,同地址在有效期内直接秒回,不重复解析。 - 直链识别:m3u8 / mp4 / flv 等地址直接起播。
- JSON 接口回退:其他网页地址按后台「解析接口」里配置的顺序依次尝试。
- 兜底直连:未配置接口时,把原地址交给播放器直接尝试。
- 全程安全检测:地址命中赌博、色情、黑灰产词库或自定义黑名单时,直接返回拦截,观众不会被跳到违规广告站。
采集条数可在后台「解析接口 → 已采集直链」查看,也可一键清空重新采集。
如果画面无法全屏
部分苹果 CMS 模板会在 iframe 上裁掉全屏属性,可改用下面的写法:
<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/,不需要数据库,过期文件会自动清理。
- 续播:播放器会按片源记住进度,刷新、关闭页面再打开都会回到上次位置;播完自动清除。
- 进度条:支持点击跳转与拖动,拖动时上方会显示该时间点的视频画面与时间。
- 切到后台:会自动暂停并记住位置,回到页面保持暂停,点击画面才继续播放。
- 倍速:设置面板提供 0.75 / 1.0 / 1.25 / 1.5 / 2.0 / 3.0 / 5.0 倍;在画面上上下滑动(竖屏、横屏、桌面鼠标均可)实时调节倍速,上滑加速、下滑减速,松手保持并记住偏好;横滑不会误拖进度条。
- 弹幕互动:点播放器右下角的弹幕图标打开列表(全屏内也可打开),可复制弹幕、点赞、举报;列表支持「全部 / 我的」分栏,自己发的弹幕带「我」标识;点赞数保存在服务端。
- 弹幕位置:点「发弹幕」打开输入条,可选滚动 / 顶端 / 底端三种位置;顶端与底端是居中固定弹幕,约 4 秒自动淡出。
- 横屏方向:如果手机横过来画面是倒的,在「播放设置 → 横屏方向」切换左转 / 右转,设置会记住。
- 亮度与音量:全屏/横屏剧场下,音量与亮度交给手机系统(物理音量键、系统亮度条)直接调节,播放器不拦截;设置面板里也保留「音量」「画面亮度」两个滑块作为兜底(部分浏览器不支持系统级调用时生效)。
- LOGO:后台「站点与外观」可上传图片并调整大小与宽度;播放器左上角常显,横屏剧场时固定在右上角置顶,不遮挡时钟与控件。
四、审核与陪聊
两者都在后台单独配置,默认关闭,密钥留空。
- 内容审核:「互动与安全 → 内容审核」填写接口地址与 Key,开启后弹幕发送前会先审核,返回
blocked:true即拦截。 - 陪聊:「互动与安全 → 陪聊」填写独立的接口地址与 Key,开启后播放器出现「陪聊」入口。请求由服务端转发,密钥不会出现在网页源码中。
安全检测(广告 / 赌博 / 黑灰产拦截)
「互动与安全 → 安全检测」默认开启。片源地址与解析结果都会先过检测:命中内置赌博、色情、黑灰产词库或自定义黑名单时,播放器直接提示「已停止播放」并说明原因,不会把观众带到违规网站。内置词库覆盖拼音与外文高频词(du-chang / casino / bocai / liuhecai…)、主流博彩品牌(sbobet / bwin / betway / dafabet…)以及「bet / ag + 数字」命名(bet365、188bet、12bet、365bet、ag88…)。词库按域名分段匹配,alphabet.com、tag88.com 这类正常域名不会误拦;万一误拦,把域名加进白名单即可。
- 自定义黑名单:每行一个,支持
*.example.com整站屏蔽。m88、w88 这类过短的品牌名不在内置词库中,可在此补充。 - 举报联动:观众在播放器里点弹幕 → 举报,可在弹窗中选择原因并补充说明;后台「弹幕管理 → 举报」实时查看,可「删弹幕」一键删除被举报内容并忽略该举报。
- 弹幕备份:「弹幕管理 → 导出备份」下载全部弹幕;重装或迁移后用「导入恢复」合并不丢数据。重复内容的弹幕会逐条保存,不会被合并或丢弃。
五、全屏与横屏
- 桌面浏览器:打开播放页即进入横屏剧场(Edge / Chrome / Firefox / Safari 均如此),整个放映区铺满窗口,无需再点全屏;按 Esc 或点全屏钮退出,退出后本标签页不再自动横屏。
- 手机:竖屏保持页面内嵌播放器(符合触屏习惯),点击全屏直接进入横屏剧场,竖屏时立即旋转画面,不等待系统方向、不来回跳变;横屏状态下打开设置不会退出全屏。
- 播放页在苹果 CMS 的 iframe 中会自动切换为「纯播放器」模式,隐藏页头与说明,画面铺满容器,且不会自动抢横屏。
六、播放参数
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/(弹幕与举报)即可。
觅知放映厅