PHP-EPG-Docker-Server
评论 0 热度 539
PHP 实现的 EPG(电子节目指南)服务端, Docker
部署,自带设置界面,支持 DIYP & 百川
、 超级直播
以及 xmltv
格式。
主要功能 ℹ️
支持返回
DIYP & 百川
、超级直播
以及xmltv
格式 📡一键生成匹配
M3U
的xmltv
格式EPG
文件 💯支持查看频道匹配结果 🪢
提供
amd64
跟arm64
架构Docker
镜像,支持电视盒子等设备 🐳基镜像采用
alpine-apache-php
,压缩后大小仅20M
📦采用先构建再存数据库的策略,提高读取速度 🚀
支持繁体中文频道匹配 🌐
支持多对一频道映射,支持正则表达式 🔄
支持设置频道忽略字符表 🔇
支持生成指定频道节目单 📝
内置定时任务,支持设置定时拉取数据 ⏳
兼容多种
xmltv
格式 🗂️使用
SQLite
数据库存储 🗃️包含网页设置页面 🌐
支持多个 EPG 源 📡
可配置数据保存天数 📅
内置
phpLiteAdmin
方便管理数据库 🛠️
内置正则表达式说明:
以
regex:
作为前缀示例:
regex:/^CCTV[-\s]*(\p{Han})/iu, $1
:将CCTV风云足球
、cctv-风云音乐
等替换成风云足球
、风云音乐
regex:/^CCTV[-\s]*(\d+(\s*P(LUS)?|[K\+])?)(?![\s-]*(美洲|欧洲)).*/i => CCTV$1
:将CCTV 1综合
、CCTV-4K频道
、CCTV - 5+频道
、CCTV - 5PLUS频道
等替换成CCTV1
、CCTV4K
、CCTV5+
、CCTV5PLUS
(排除CCTV4美洲
和CCTV4欧洲
)
regex:/^(深圳.*?)频道$/i, $1
:将深圳xx频道
替换成深圳xx
更新日志 📝
2024-8-29:
新增:查看频道匹配结果(
更多设置
->解析
->查看匹配
)优化:非
Docker
用户体验优化:频道忽略字符串替换顺序
2024-8-26:
优化:数据重复时的更新逻辑(越前面,优先级越高)
优化:频道映射规则(针对
51zmt
的CCTV4EUO
跟CCTV4AME
命名)优化:频道映射界面改回之前的版本(新版本直观,但在修改规则时效率太低)
2024-8-24:
新增:改用
XMLWriter
生成xmltv
文件,加快生成速度,降低内存占用(生成全量数据,100M
以内即可)新增:“限定频道列表”可直接从
M3U
、TXT
地址获取新增:设置“限定频道列表”后,生成
xmltv
的频道名以列表的为准(可生成匹配M3U
的EPG
文件)新增:
NewTV
、SiTV
、iHOT
、CHC
系列频道映射规则优化:将数据文件统一放到
data
文件夹,方便进行数据持久化(⚠️注意更新)优化:节目匹配时,优先采用精确匹配结果
优化:部分
EPG
条目跨天时,生成 2 条数据优化:
desc
字段的生成逻辑优化:删除部分冗余选项
⚠️该版本改动较多,建议直接更新
其他见历史更新日志
TODO:
支持返回超级直播格式
整合更轻量的 alpine-apache-php 容器
整合生成 xml 文件
支持多对一频道映射
支持繁体频道匹配
仅保存指定频道列表节目单
部署步骤 🚀
配置
Docker
环境若已安装过,先删除旧版本(注意备份数据)
docker rm php-epg -f
拉取镜像并运行:
docker run -d \
--name php-epg \
-p 5678:80 \
--restart always \
taksss/php-epg:latest默认端口为
5678
,根据需要自行修改。 无法正常拉取镜像的,可使用同步更新的腾讯云容器镜像
(ccr.ccs.tencentyun.com/taksss/php-epg:latest
)
数据持久化
直接使用以下命令,
./data
可根据自己需要更改docker run -d \
--name php-epg \
-v ./data:/htdocs/epg/data \
-p 5678:80 \
--restart always \
taksss/php-epg:latest新建
docker-compose.yml
文件后,在同目录执行docker-compose up -d
使用步骤 🛠️
在浏览器中打开
http://{服务器IP地址}:5678/epg/manage.php
默认密码为空,根据需要自行设置
添加
EPG 源地址
, GitHub 源确保能够访问,点击更新配置
保存点击
更新数据库
拉取数据,点击数据库更新日志
查看日志,点击查看数据库
查看具体条目设置
定时任务
,点击更新配置
保存,点击定时任务日志
查看定时任务时间表建议从
凌晨1点
左右开始抓,很多源00:00 ~ 00:30
都是无数据。 隔6 ~ 12
小时抓一次即可。点击
更多设置
,选择是否生成xml文件
、生成方式
,设置限定频道节目单
用浏览器测试各个接口的返回结果是否正确:
xmltv
接口:http://{服务器IP地址}:5678/epg/index.php
DIYP&百川
接口:http://{服务器IP地址}:5678/epg/index.php?ch=CCTV1
超级直播
接口:http://{服务器IP地址}:5678/epg/index.php?channel=CCTV1
将
http://{服务器IP地址}:5678/epg/index.php
填入DIYP
、TiviMate
等软件的EPG 地址栏
⚠️ 直接使用
docker run
运行的话,可以将:5678/epg/index.php
替换为:5678/epg
。⚠️ 部分软件不支持跳转解析
xmltv
文件,可直接使用:5678/epg/t.xml.gz
或:5678/epg/t.xml
访问。
快捷键:
Ctrl + S
:保存设置
Ctrl + /
:对选中 EPG 地址设置(取消)注释
评论已关闭/Comments closed