TakcC / PHP-EPG-Docker-Server

用 php 实现的 EPG 服务端, Docker🐳 部署,带设置界面,支持 DIYP & 百川 、 超级直播 以及 xmltv 格式。
https://hub.docker.com/r/taksss/php-epg/
GNU General Public License v2.0
82 stars 27 forks source link
diyp docker docker-compose epg iptv php xmltv-epg-data

php-epg

📺 PHP-EPG-Docker-Server

Docker Pulls Image Size

PHP 实现的 EPG(电子节目指南)服务端, Docker 部署,自带设置界面,支持 DIYP & 百川超级直播 以及 xmltv 格式。

ℹ️ 主要功能

设置页面

内置正则表达式说明:

  • regex: 作为前缀
  • 示例:
    • regex:/^CCTV[-\s]*(\d+(\s*P(LUS)?|[K\+])?)(?![\s-]*(美洲|欧洲)).*/i => CCTV$1 :将 CCTV 1综合CCTV-4K频道CCTV - 5+频道CCTV - 5PLUS频道 等替换成 CCTV1CCTV4KCCTV5+CCTV5PLUS(排除 CCTV4美洲CCTV4欧洲

📝 更新日志

CHANGELOG.md

TODO:

🚀 部署步骤

  1. 配置 Docker 环境

  2. 若已安装过,先删除旧版本并拉取新版本(注意备份数据)

    docker rm php-epg -f && docker pull taksss/php-epg:latest
  3. 拉取镜像并运行:

    docker run -d \
     --name php-epg \
     -p 5678:80 \
     --restart always \
     taksss/php-epg:latest

    默认端口为 5678 ,根据需要自行修改。 无法正常拉取镜像的,可使用同步更新的 腾讯云容器镜像ccr.ccs.tencentyun.com/taksss/php-epg:latest

数据持久化

同时部署 MySQLphpMyAdminphp-epg

🛠️ 使用步骤

  1. 在浏览器中打开 http://{服务器IP地址}:5678/epg/manage.php

  2. 默认密码为空,根据需要自行设置

  3. 添加 EPG 源地址, GitHub 源确保能够访问,点击 更新配置 保存

  4. 点击 更新数据库 拉取数据,点击 数据库更新日志 查看日志,点击 查看数据库 查看具体条目

  5. 设置 定时任务 ,点击 更新配置 保存,点击 定时任务日志 查看定时任务时间表

    建议从 凌晨1点 左右开始抓,很多源 00:00 ~ 00:30 都是无数据。 隔 6 ~ 12 小时抓一次即可。

  6. 点击 更多设置 ,选择是否 生成xml文件生成方式 ,设置 限定频道节目单

  7. 用浏览器测试各个接口的返回结果是否正确:

    • xmltv 接口: http://{服务器IP地址}:5678/epg/index.php
    • DIYP&百川 接口: http://{服务器IP地址}:5678/epg/index.php?ch=CCTV1
    • 超级直播 接口: http://{服务器IP地址}:5678/epg/index.php?channel=CCTV1
  8. http://{服务器IP地址}:5678/epg/index.php 填入 DIYPTiviMate 等软件的 EPG 地址栏

    • ⚠️ 直接使用 docker run 运行的话,可以将 :5678/epg/index.php 替换为 :5678/epg
    • ⚠️ 部分软件不支持跳转解析 xmltv 文件,可直接使用 :5678/epg/t.xml.gz:5678/epg/t.xml 访问。

快捷键:

  • Ctrl + S:保存设置
  • Ctrl + /:对选中 EPG 地址设置(取消)注释

🖼️ 效果示例

DIYP

DIYP 示例

TiviMate

TiviMate

📸 系统截图

设置定时任务

设置定时任务

定时任务日志

定时任务日志

更新日志

更新日志

搜索频道、编辑映射

编辑频道映射

频道指定 EPG

频道指定EPG源

更多设置

更多设置

查看频道匹配 查看频道匹配

phpLiteAdmin

phpLiteAdmin

🙏 特别鸣谢