(2025.06.11)【Docker | 台标管理 | 直播源管理】自建DIYP、超级直播EPG节目单服务
本帖最后由 TakSSS 于 2025-6-11 18:08 编辑项目仅限个人使用,用于牟利的请出门左转。
开源地址:https://github.com/taksssss/EPG-Server、https://gitee.com/taksssss/EPG-Server
☕捐赠入口 🌹捐赠鸣谢列表
反馈交流群:712189556
PHP 实现的 EPG 服务端, Docker🐳 部署,自带设置界面、台标管理、直播源管理,支持 DIYP & 百川 、 超级直播 以及 xmltv 格式。
⚠️ xmltv用户使用方法见:【一键生成】匹配 M3U 文件的 XML 节目表
⚠️ 直播源管理使用方法见:【EPG-Server】直播源管理使用说明
⚠️ 台标匹配 需搭配 酷9APP 使用:【台标大整合】酷9方案,2700+频道,带频道别名
⚠️ 推荐EPG源:【EPG节目单】国内镜像(含112114、51zmt、erw、epg.pw、livednow……)
⚠️ TVMAO 接口说明:【EPG-Server】 BDTVMAO 接口说明
⚠️ CNTV 接口说明:【EPG-Server】 CNTV 接口说明
💻 主要功能
📡 多直播格式:支持返回 DIYP & 百川、超级直播以及 xmltv 格式文件。🐳 多架构支持:提供适用于 amd64、arm64 和 armv7 架构的 Docker 镜像,兼容电视盒子等设备使用。📦 小体积镜像:基于 Alpine 构建,压缩后仅 20 MB。🗃️ 数据库管理:采用先构建后存数据库的策略,减少冗余、提升读取速度。支持 SQLite 和 MySQL 数据库,内置 phpLiteAdmin 管理工具。🖼️ 台标管理:支持台标模糊匹配,便于匹配台标资源。➰ 直播源管理:支持聚合 TXT/M3U 直播源,并定时更新。
🔒 访问权限控制:支持设置 TOKEN 、User-Agent ,限制访问 EPG 服务及直播源。
⏱️ 缓存支持:集成 Memcached,支持 Redis。🔄 频道匹配:支持繁体中文频道匹配,可进行双向模糊匹配;支持频道别名(可使用正则表达式)和指定 EPG 源。⏳ 定时任务:支持定时更新数据。📝 节目单生成:支持生成指定频道节目单并匹配 M3U 的 xmltv 格式文件。🗂️ 兼容多种格式:支持不同标准格式的 XMLTV 文件。🛠️ 文件管理:集成 tinyfilemanager 以便于文件管理。🌐 界面设置:包含简单易用的网页设置页面,便于操作和管理。
内置正则表达式说明:包含 regex: 示例:
[*]CCTV$1=>regex:/^CCTV[-\s]*(\d{1,2}(\s*P(LUS)?|)?)(?![\s-]*(美洲|欧洲)).*/i :将 CCTV 1综合、CCTV-4K频道、CCTV - 5+频道、CCTV - 5PLUS频道 等替换成 CCTV1、CCTV4K、CCTV5+、CCTV5PLUS(排除 CCTV4 美洲 和 CCTV4-欧洲)
📝 近期更新日志
2025-06-11.fix:
1. ⚡优化:关闭繁體转简体后的频道匹配逻辑
2. 🐛修复:繁简转换「仅频道名」实际效果为「所有信息」
2025-06-11:
1. ⚡优化:禁止直接访问 update.php,防止流量异常
2. 🐛修复:无节目表频道台标匹配异常
2025-06-09:
1. ✨新增:直播源黑白名单支持分组(URL #FT=频道名1, 分组2, 直播地址3)
2. ✨新增:EPG 源支持修正时区(#TZ=+0000` 或 `#timezone=+0000)
3. ✨新增:IP 列表支持通配符(192.168.1.*)及 CIDR 格式(192.168.1.0/24)
4. ✨新增:Redis 缓存设置(更多设置 - 数据缓存,感谢(https://github.com/mxdabc))
5. ✨新增:直播源解析失败错误信息
6. ⚡优化:访问统计表新增拒绝次数
7. ⚡优化:MySQL 数据库设置
8. ⚡优化:节目表数据来源支持点击跳转
9. ⚡优化:index.php 默认返回 t.xml.gz 文件
10. ⚡优化:“限定频道列表”改为“匹配频道列表”(生成 xml 时使用该信息进行模糊匹配,可用于繁体频道匹配,更多设置 - 匹配频道列表)
11. ⚡优化:使用说明
12. ⚡优化:[捐赠鸣谢列表](https://gitee.com/taksssss/EPG-Server/blob/main/DONATIONS.md)
13. 🐛修复:Token、User-Agent 空行导致限制失效
14. 🐛修复:缓存服务异常
2025-06-01:
1. ✨新增:访问统计表
2. ✨新增:拦截记录、xmltv 下载记录
3. ✨新增:IP 黑名单、白名单(更多设置 - IP 列表)
4. ✨新增:频道忽略字符(频道管理 - 频道忽略字符,为空格)
5. ✨新增:Token、User-Agent 支持正则表达式(前缀 regex:)
6. ✨新增:Token、User-Agent 管理 EPG 时,对 xmltv 也生效(:5678/t.xml?token=xxx)
7. ⚡优化:Token、User-Agent 设置方式,改为一行一个
8. ⚡优化:直播源访问地址(:5678/tv.m3u?token=xxx)
9.⚡优化:xmltv 多 display-name 兼容性(如 APTV)
10. ⚡优化:访问日志加载逻辑,避免重复下载
11. ⚡优化:大文件下载成功率
12. ⚡优化:频道别名匹配逻辑
13. ⚡优化:关闭繁體转简体后的频道匹配逻辑
14. ⚡优化:更新 EPG 时清理过期访问日志
15. ⚡优化:移除DIYP、超级直播的 sub-title 字段
16. ⚡优化:使用说明
17. ⚡优化:[捐赠鸣谢列表](https://gitee.com/taksssss/EPG-Server/blob/main/DONATIONS.md)
18. 🐛修复:繁体频道别名匹配异常
19. 🐛修复:以 [] 开头/结尾的频道别名识别错误
20. 🐛修复:EPG、直播源黑白名单大小写匹配异常
21. 🐛修复:Memcache 缓存导致内外网台标地址异常
2025-05-20:
1. ✨新增:直播源管理页面支持频道搜索
2. ✨新增:直播源管理页面单页显示条数
3. ✨新增:直播源管理页面高度调节
4. ✨新增:关闭频道名繁简转换(更多设置 - 繁體转简体)
5. ✨新增:清除、下载访问日志
6. ✨新增:更新数据时显示 .xml.gz 文件修改时间
7. ⚡优化:文件下载失败重试机制及提示
8. ⚡优化:DIYP、超级直播接口数据格式化
9. ⚡优化:移除 DIYP、超级直播接口的 `source` 字段
10. ⚡优化:部分页面样式、页面标题
11. ⚡优化:使用说明
12. ⚡优化:捐赠入口
13. ⚡优化:捐赠鸣谢列表
2025-05-13:
1. ✨新增:调试模式(更多设置 - 调试模式)
2. ✨新增:直播源黑白名单支持直播地址(URL #FT=频道名1, 直播地址2)
3. ✨新增:页面底部鸣谢列表
4. ⚡优化:更新日志节目数量从天数改为条数
5. ⚡优化:部分页面样式
6. ⚡优化:使用说明
7. ⚡优化:捐赠鸣谢列表
8. 🐛修复:开关同步测速校验后,需重启定时任务才生效
9. 🐛修复:设置多个 Token 时访问地址显示异常
2025-05-10:
1. ✨新增:测速校验间隔周期倍率
2. ✨新增:直播源新增频道黑白名单(URL #FT=白名单 / #FT=!黑名单 / #filter=)
3. ✨新增:直播源频道黑白名单支持模糊匹配、简繁匹配
4. ⚡优化:直播源选项设置方法(PF/prefix、UA/useragent、RP/replace、FT/filter)
5. ⚡优化:EPG 频道黑白名单设置方法(URL #FT=白名单 / #FT=!黑名单 / #filter=)
6. ⚡优化:EPG 频道黑白名单支持简繁匹配
7. ⚡优化:手动更新 EPG 数据时,不进行测速
8. ⚡优化:移除 xmltv 文件中的 icon 字段
9. ⚡优化:定时任务日志
10. ⚡优化:使用说明
11. ⚡优化:捐赠鸣谢列表
12. 🐛修复:生成 xmltv 文件时部分字段多次转义
2025-04-29:
1. ✨新增:输入框高度调节
2. ✨新增:直播源模板使用正则表达式时支持匹配繁体频道
3. ✨新增:EPG 支持 sub-title 字段
4. ⚡优化:直播源检测逻辑
5. ⚡优化:TXT 源解析逻辑,避免 URL 后的逗号被去掉
6. ⚡优化:直播源备注生成逻辑
7. ⚡优化:清除直播源修改记录逻辑
8. ⚡优化:EPG 编码兼容性
9. ⚡优化:使用说明
10.⚡优化:捐赠鸣谢列表
2025-04-14:
1. ✨新增:直播源内容替换(URL #RP=a1->b1,a2->b2)
2. ✨优化:直播源参数设置方法(URL #PF=前缀#UA=自定义UA#RP=a->b)
3. ✨优化:EPG 源自定义 UA 设置方法(URL #UA=自定义UA)
4. ✨优化:台标匹配逻辑,避免 4K 频道匹配到普通频道
5. ✨优化:模糊匹配时,中英文字符串长度比较逻辑
6. ✨优化:M3U 文件判断逻辑
7. 🐛修复:打开管理页面时,直播源更新时间误刷新
8. 🐛修复:线路备注选单个时,另一个也会带备注
2025-04-10:
1. ✨新增:直播源模板在模糊匹配时支持正则表达式(前缀regex:)
2. ✨新增:生成直播源更新时间
3. ✨新增:优先读取 M3U 台标
4. ⚡优化:部分界面
5. ⚡优化:使用说明
完整更新日志:
CHANGELOG.md
安装指令:
docker run -d --name php-epg -v /etc/epg:/htdocs/data -p 5678:80 --restart unless-stopped taksss/php-epg:latest⚠️小雅Alist用户:自行将 5678 改成其他可用端口
⚠️如果网络异常,请使用腾讯云容器镜像地址:
**** Hidden Message *****
升级指令:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower php-epg --cleanup --run-once
TODO:
[*][已完成] 支持返回超级直播格式
[*][已完成] 整合更轻量的 alpine-apache-php 容器
[*][已完成] 整合生成 xml 文件
[*][已完成] 支持多对一频道映射
[*][已完成] 支持繁体频道匹配
[*][已完成] 仅保存指定频道列表节目单
[*][已完成] 导入/导出配置
[*][已完成] 频道指定EPG源
[*][已完成] 生成台标信息
[*][已完成] 直播源管理
🚀 部署步骤
1. 配置 Docker 环境2. 拉取镜像并运行:docker run -d --name php-epg -v /etc/epg:/htdocs/data -p 5678:80 --restart unless-stopped taksss/php-epg:latest默认数据目录为 /etc/epg ,根据需要自行修改默认端口为 5678 ,根据需要自行修改可选参数:-e PHP_MEMORY_LIMIT=512M ,设置 PHP 内存限制,默认 512M可选参数:-e ENABLE_FFMPEG=true ,启用 ffmpeg 组件
(可选,不熟悉的直接忽略即可) 同时部署MySQL、phpMyAdmin及php-epg:https://gitee.com/taksssss/EPG-Server#-部署步骤
🆙 版本升级
一键升级:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower php-epg --cleanup --run-once自动升级(每小时检测一次):
docker run -d --name php-epg-update -v /var/run/docker.sock:/var/run/docker.sock --restart unless-stopped containrrr/watchtower php-epg --cleanup --interval 3600
🛠️ 使用步骤
1. 在浏览器中打开 http://{服务器IP地址}:5678/manage.php
2. 默认密码为空,根据需要自行设置
3. 添加 `EPG 源地址`, GitHub 源确保能够访问,点击 `更新配置` 保存
4. 点击 `更新数据库` 拉取数据,点击 `数据库更新日志` 查看日志,点击 `查看数据库` 查看具体条目
5. 设置 `定时任务` ,点击 `更新配置` 保存,点击 `定时任务日志` 查看定时任务时间表
>
> 建议从 `凌晨1点` 左右开始抓,很多源 `00:00 ~ 00:30` 都是无数据。
> 隔 `6 ~ 12` 小时抓一次即可。
>
6. 用浏览器测试各个接口的返回结果是否正确:
- `xmltv` 接口: `http://{服务器IP地址}:5678/index.php`
- `DIYP&百川` 接口: `http://{服务器IP地址}:5678/index.php?ch=CCTV1`
- `超级直播` 接口: `http://{服务器IP地址}:5678/index.php?channel=CCTV1`
7. 将 http://{服务器IP地址}:5678 填入 DIYP、TiviMate 等软件的 EPG 地址栏
- ⚠️ 直接使用 `docker run` 拉取镜像的话,可以将 `:5678/index.php` 替换为 `:5678/`。
- ⚠️ 部分软件不支持跳转解析 `xmltv` 文件,可直接使用`:5678/t.xml.gz` 或 `:5678/t.xml`访问。
快捷键:
[*]Ctrl + S:保存设置
[*]Ctrl + /:对选中 EPG 地址设置(取消)注释
隐藏内容包含源代码、推荐EPG源地址、推荐直播源,回复可见。**** Hidden Message *****
谢谢楼主的分享, 谢谢楼主的分享, 多谢提醒了 带配置页面,已开源】 基金迷哦名叫欧美咯目录 研究研究研究研究研究 谢谢楼主分享 正需要,谢谢楼主无私的分享 研究研究一下 有docker版吗?
什么样子的
谢谢分享啊! 支持支持支持