轻量级的聚合影视站,整合采集接口,免采集,实时自动根据资源站更新,并提供快速缓存与简洁前端。
- 聚合第三方影视接口,提供首页、分类、搜索、详情、播放等页面。
- 内置文件级缓存与错误回退,提升加载速度与稳定性。
- 播放页令牌化隐藏真实视频地址,m3u8 可通过自定义代理播放。
- 后台管理模块化(admin/ 目录),支持资源接口、m3u8 代理、分类替换/隐藏、源名映射、站点名、账号密码。
- 接口文件缓存(JSON/XML)与 TTL 管理;异常回退到过期缓存。
- 播放页令牌 token(隐藏真实链接)、分集列表高亮切换。
- 分类名称映射与隐藏(按名称关键词,按 ID 隐藏已移除)。
- 播放源名称别名映射(如
lzm3u8 → 线路1)。 - 后台管理模块化:登录、首页(系统时钟、缓存状态、快捷操作、版权链接)、设置(站点名/账号密码)、资源(API/m3u8 开关、分类与源映射);折叠式导航支持向右展开与横向滑动。
- 2511.0821.0631:利用伪静态规则对敏感文件进行访问保护。
- 2511.0820.4801:模板独立化,优化顶部导航与搜索框布局。
- 2511.0812.5700:实现首页横幅图片与链接的动态管理功能(通过API接口获取横幅数据);优化横幅组件结构,支持轮播与错误处理;清理冗余代码与文件;为空文件夹添加index.php占位文件防止目录遍历漏洞。
- 2511.0115.0428:新增伪静态(IIS/Apache/Nginx)规则与示例在目录新增 rewrite/ 说明。
- 2511.0114.4433:优化前端风格。
- 2511.0113.1200:新增图片代理
img.php;搜索/首页/分类/详情海报统一经代理加载并失败占位;对齐 MacApi 参数(pagesize→limit);修复 JSON 缓存写入时机;列表 JSON 异常自动回退 XML 并转换结构;HTTP 轻量重试与 gzip/BOM 处理;debug_api.php按limit输出分页关键字段以便诊断。 - 2511.0112.2745:横幅样式抽出至 CSS;轮播每 3 秒、最多 6 张、阴影;首页移除冗余函数与变量,提升加载速度。
- 2511.0112.2637:增加首页横幅(16:7 比例、轮播可选、与导航同宽)
- 2511.0112.0000:后台增快捷操作/缓存计数,折叠导航横滑;导航项改“资源”;前台移除精选、优化请求。
- 2511.0110.3904:后台模块化;新增站点名与 API/m3u8 开关;
admin.php桥接。 - 2511.0109.1501:后台与
settings.json持久化;支持采集源、m3u8 代理、分类别名/隐藏、源名映射;账号密码可配置。 - 2511.0108.2010:首页精选内联;性能与体验优化。
- 2511.0107.4532:保留 m3u8 分线/链接;源名别名映射。
- 2511.0106.1200:详情简介清理;缓存 TTL 改为 1 小时。
- 2511.0105.0544:播放页令牌化与 m3u8 代理;分集列表高亮。
- 2511.0104.3022:接口缓存与异常回退;压缩/超时优化。
- 2511.0103.0000:初始页面与基础结构。
.
├── assets/ # 静态资源(样式、占位图)
├── backup_20251108_203204/ # 备份目录(2025-11-08清理备份)
│ ├── cache/ # 缓存文件备份
│ └── partials/ # 旧版部分文件备份
├── cache/ # 接口返回内容的文件缓存目录(自动创建)
│ └── index.php # 目录保护文件
├── cleanup_report_20251108.md # 清理报告
├── lib/
│ ├── api.php # 接口请求、缓存、解析(含分线解析、源名别名)
│ ├── categories.php # 分类获取、前端映射与后台隐藏/别名应用
│ └── template.php # 模板引擎核心
├── partials/ # 旧版部分文件目录(已清理)
├── config.php # 站点配置与通用函数、settings.json 读写接口
├── img.php # 图片代理(绕过防盗链,含文件缓存)
├── api/ # API接口目录
│ └── banners.php # 横幅数据API接口(用于前台动态加载横幅)
├── admin/ # 后台模块目录
│ ├── index.php # 后台入口:已登录跳 home,未登录跳 login
│ ├── login.php # 登录/退出逻辑
│ ├── home.php # 首页(系统时间、缓存状态、快捷操作、版权链接)
│ ├── settings.php # 设置(站点名、账号/密码修改)
│ ├── resources.php # 资源(API/m3u8 开关、分类隐藏与映射、源名映射)
│ ├── banners.php # 横幅管理(名称与图片)
│ └── inc.php # 公共布局与认证(折叠式导航 tabs、横向滑动、向右展开、样式、admin_require_login)
├── uploads/ # 上传文件目录
│ ├── banners/ # 横幅图片目录
│ │ ├── *.jpg # 横幅图片文件
│ │ └── index.php # 目录保护文件
│ └── index.php # 目录保护文件
├── settings.json # 持久化设置(由后台写入,支持手动编辑)
├── index.php # 首页(最新更新瀑布流)
├── category.php # 分类页列表
├── search.php # 搜索页
├── detail.php # 详情页(简介清理、剧集列表)
├── play.php # 播放页(令牌取回真实链接、分集列表与高亮)
├── templates/ # 模板目录
│ ├── .config/
│ │ └── config.php # 模板系统全局配置
│ ├── default/ # 默认模板
│ │ ├── components/ # 组件(包括动态横幅组件)
│ │ │ └── banner.php # 动态横幅组件(通过API加载数据,支持轮播)
│ │ ├── layouts/ # 布局文件
│ │ │ └── main.php # 主布局文件(含导航和搜索框)
│ │ ├── category.php # 分类页模板
│ │ ├── config.php # 模板配置
│ │ ├── detail.php # 详情页模板
│ │ ├── home.php # 首页模板
│ │ ├── play.php # 播放页模板(支持导航和搜索)
│ │ └── search.php # 搜索页模板
│ └── index.php # 目录保护文件
├── rewrite/ # 伪静态规则示例(按所用服务器拷贝应用)
│ ├── .htaccess # Apache 重写规则(启用 mod_rewrite + AllowOverride All)
│ ├── web.config # IIS URL Rewrite 规则(需安装 URL Rewrite 模块)
│ └── nginx.conf # Nginx 虚拟主机示例(含所有重写与 PHP 处理)
└── vodfl.php # 分类映射与显示名规则(前端默认映射)
- 环境需求:
- PHP 7.0+(兼容较低版本,推荐 7.0+),开启会话;
- 服务器需支持重写规则(如 Apache mod_rewrite、IIS URL Rewrite、Nginx 等)。
- Web 服务器或 PHP 内置服务器;
cache/目录需可写。
- 部署:将源码放入 Web 根目录;按环境配置虚拟主机或直接访问。
- 后台:
- 新入口:访问
/admin/(自动跳转登录/首页);或直接访问/admin/login.php。 - 首页:显示系统时间与缓存状态;提供“前往前台首页”“清空缓存”按钮;折叠式导航支持向右展开与横向滑动(移动端触摸滑动、PC滚轮横向)。
- 默认账号/密码:
admin/admin,建议登录后在“设置”中修改。
- 新入口:访问
- 推荐通过后台页面编辑,或直接修改
settings.json:site_name:站点名称(前台<title>与 Logo)。api_base:采集源基础地址。api_enabled:资源接口启用开关(false 时不发起新请求,尝试旧缓存)。m3u8_proxy:m3u8 代理前缀(如http://anyn.cc/m3u8/?url=)。m3u8_enabled:m3u8 代理启用开关(false 时尝试直接播放)。category_aliases:分类名称别名(JSON 对象,按名称关键词匹配)。category_hide:分类隐藏关键词(数组,按名称关键词隐藏)。source_aliases:播放源别名(JSON 对象)。admin_user/admin_pass:后台登录凭证。
- 清空缓存:删除
cache/*.cache文件。 - 调整播放页样式:
play.php播放器容器(m3u8 为 16:9 自适应)。 - 安全增强建议:使用密码哈希(
password_hash/password_verify)、限制登录失败重试、CSRF 防护。 - 如果账号密码遗失,可直接编辑
settings.json重置为默认值admin/admin:
{
"admin_user": "admin",
"admin_pass": "admin"
}