📺 EPG-Server
PHP 实现的 EPG(电子节目指南)服务端, Docker 部署,自带设置界面、台标管理、直播源管理,支持 DIYP & 百川 、 超级直播 以及 xmltv 格式。
💻 主要功能
📡 多直播格式:支持返回 DIYP & 百川、超级直播以及 xmltv 格式文件。
🐳 多架构支持:提供适用于 amd64、arm64 和 armv7 架构的 Docker 镜像,兼容电视盒子等设备使用。
📦 小体积镜像:基于 Alpine 构建,压缩后仅 20 MB。
🗃️ 数据库管理:采用先构建后存数据库的策略,减少冗余、提升读取速度。支持 SQLite 和 MySQL 数据库,内置 phpLiteAdmin 管理工具。
🖼️ 台标管理:支持台标模糊匹配,便于匹配台标资源。
➰ 直播源管理:支持聚合 TXT/M3U 直播源,并定时更新。
🔒 访问权限控制:支持设置 TOKEN 、User-Agent ,限制访问 EPG 服务及直播源。
⏱️ 缓存支持:集成 Memcached,可自定义缓存时间。
🔄 频道匹配:支持繁体中文频道匹配,可进行双向模糊匹配;支持频道别名(可使用正则表达式)和指定 EPG 源。
⏳ 定时任务:支持定时更新数据。
📝 节目单生成:支持生成指定频道节目单并匹配 M3U 的 xmltv 格式文件。
🗂️ 兼容多种格式:支持不同标准格式的 XMLTV 文件。
🛠️ 文件管理:集成 tinyfilemanager 以便于文件管理。
🌐 界面设置:包含简单易用的网页设置页面,便于操作和管理。

内置正则表达式说明:
包含
regex:示例:
CCTV$1 => regex:/^CCTV[-\s]*(\d{1,2}(\s*P(LUS)?|[K\+])?)(?![\s-]*(美洲|欧洲)).*/i:将CCTV 1综合、CCTV-4K频道、CCTV - 5+频道、CCTV - 5PLUS频道等替换成CCTV1、CCTV4K、CCTV5+、CCTV5PLUS(排除CCTV4美洲和CCTV4欧洲)
TODO:
支持返回超级直播格式
整合更轻量的
alpine-apache-php容器整合生成
xml文件支持多对一频道映射
支持繁体频道匹配
仅保存指定频道列表节目单
导入/导出配置
频道指定
EPG源生成台标信息
直播源管理
🚀 部署步骤
配置
Docker环境拉取镜像并运行:
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 组件无法正常拉取镜像的,可使用同步更新的
腾讯云容器镜像(ccr.ccs.tencentyun.com/taksss/php-epg:latest)
一键升级
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
🛠️ 使用步骤
在浏览器中打开
http://{服务器IP地址}:5678/manage.php默认密码为空,根据需要自行设置
添加
EPG 源地址, GitHub 源确保能够访问,点击更新配置保存点击
更新数据库拉取数据,点击数据库更新日志查看日志,点击查看数据库查看具体条目设置
定时任务,点击更新配置保存,点击定时任务日志查看定时任务时间表建议从
凌晨1点左右开始抓,很多源00:00 ~ 00:30都是无数据。 隔6 ~ 12小时抓一次即可。点击
更多设置,选择是否生成xml文件、生成方式,设置限定频道节目单用浏览器测试各个接口的返回结果是否正确:
xmltv接口:http://{服务器IP地址}:5678/index.phpDIYP&百川接口:http://{服务器IP地址}:5678/index.php?ch=CCTV1超级直播接口:http://{服务器IP地址}:5678/index.php?channel=CCTV1
将
http://{服务器IP地址}:5678/index.php填入DIYP、TiviMate等软件的EPG 地址栏
⚠️ 直接使用
docker run运行的话,可以将:5678/index.php替换为:5678/。⚠️ 部分软件不支持跳转解析
xmltv文件,可直接使用:5678/t.xml.gz或:5678/t.xml访问。
快捷键:
Ctrl + S:保存设置
Ctrl + /:对选中 EPG 地址设置(取消)注释
gitee地址:https://gitee.com/zyqwwj/EPG-Server
