[php工具源码分享]IPTV直播源工具箱-网页播放器又进化了:支持 M3U 播放列表 + EPG + 回看!

上篇文章([php工具源码分享]IPTV直播源工具箱再添一款小工具–网页视频播放器,支持Socks5代理)介绍了这个“网页播放器”,主要定位是:
👉 万能播放器 + IPTV调试工具 + 代理神器
不过最近又做了一轮比较大的改动,这次不只是优化,而是功能层级直接升级了一档。
一句话总结这次更新:
👉 从“单视频播放器”升级为“IPTV播放器”
说明:本次升级的播放器单放了一个目录player2,和上一版player共存,没有把它加入IPTV工具箱页面,需要的请自行修改目录名

下面重点聊聊这次新增的几个核心功能👇


之前版本:
-
只是简单记录播放历史 -
更偏“工具型使用”
现在直接改成:
👉 完整的播放列表系统
✅ 新能力:
-
支持导入m3u列表 -
支持epg识别 -
支持切换播放源 -
支持回看
📌 这意味着什么?
👉 从“临时播放一个链接”
➡️ 变成“长期使用的频道播放器”


这一点可以说是最关键的功能升级。
现在播放器支持:
👉 直接导入 M3U / M3U8 播放列表
📌 支持方式:
-
本地文件导入 -
URL导入(远程订阅)【注意,这个功能此版本未上线,待更新】
🧠 实际使用场景
比如你有:
iptv.m3u导入后可以直接:
-
自动生成频道列表 -
点击频道直接播放 -
配合代理解决跨域问题
👉 直接变身“网页版 IPTV 客户端”
📺 体验上的变化
以前是:
👉 粘一个链接 → 播一个
现在是:
👉 导入列表 → 像电视一样切台
频道列表体验优化
基于 M3U 的解析,现在播放器已经具备基础频道管理能力:
支持:
-
频道名称展示 -
分组(取决于 m3u 内容) -
快速切换频道 -
当前播放高亮
👉 已经很接近 IPTV App 的使用体验了。



这次更新还加入了:
👉 EPG(电子节目单)支持
📌 能实现什么?
-
显示当前节目名称 -
显示节目时间段 -
查看频道节目安排
🧠 使用前提
需要你的 M3U 提供:
-
EPG XML 数据源(常见是 .xml、.xml.gz)
🎯 实际意义
👉 不再只是“频道列表”,而是:
📺 真正的电视体验



这次更新里一个比较“硬核”的功能是:
👉 支持节目回看(Replay / Timeshift)
📌 可以做什么?
-
回看已经播过的节目 -
按节目时间自动生成回放地址 -
类似机顶盒的“回看 / 时移”体验
⚠️ 前提说明
回看功能是否可用,取决于:
-
视频源是否支持回看 -
IPTV服务端是否提供 timeshift -
M3U 中是否正确配置参数
👉 播放器本身只负责解析和拼接回看地址

🧠 回看实现机制(核心说明)
播放器基于 M3U 中的 catchup 配置,自动生成回看 URL。
⏱ 1、支持的时间占位符
▶️ 开始时间(节目开始)
|
|
|
|
|---|---|---|
${(b)10}
${start} / ${starttime} |
|
|
${(b)} |
|
|
${(b)yyyyMMddHHmmss} |
|
|
${(b)yyyyMMddHHmm} |
|
|
${(b)HHmmss} |
|
|
${(b)HHmm} |
|
|
▶️ 结束时间(节目结束)
|
|
|
|
|---|---|---|
${(e)10}
${end} / ${endtime} / ${timestamp} |
|
|
${(e)} |
|
|
${(e)yyyyMMddHHmmss} |
|
|
${(e)yyyyMMddHHmm} |
|
|
${(e)HHmmss} |
|
|
${(e)HHmm} |
|
|
📌 注意:
${timestamp}
表示结束时间(不是开始时间) -
所有时间数据来自 EPG 节目单
🔧 2、支持的 catchup 类型
|
|
|
|---|---|
append |
|
default |
|
🔗 3、特殊源自动适配(PLTV)
对于常见 IPTV 地址:
/PLTV/播放器会自动处理为:
👉 替换为
/TVOD/
👉 自动追加回看参数:playseek=开始时间-结束时间(14位格式)
🧩 4、默认回看规则
如果 M3U 没有配置 catchup-source,则默认追加:
&starttime=开始时间戳&endtime=结束时间戳
📂 5、M3U 配置示例
✅ 示例1:追加时间戳
#EXTM3U catchup="append" catchup-source="starttime=${(b)10}&endtime=${(e)10}"👉 生成:原URL?starttime=1714478400&endtime=1714480440
✅ 示例2:使用 start/end
#EXTM3U catchup="append" catchup-source="start=${start}&end=${timestamp}"
✅ 示例3:完整URL替换
#EXTM3U catchup="default" catchup-source="http://example.com/playback?id=123&st=${(b)10}&et=${(e)10}"
✅ 示例4:PLTV 源自动转换
http://xxx/PLTV/xxx.m3u8👉 自动变为:http://xxx/TVOD/xxx.m3u8?playseek=20260505190000-20260505203400
🎯 小结一下这个功能
👉 这套逻辑的核心其实是:
-
用 EPG 提供时间 -
用 M3U 提供模板 -
用 播放器自动拼接URL
最终实现:
📺 “点击节目 → 自动回看”
回看功能过于复杂,不同的源回看格式不同,这里仅适配了几个常见格式。


别忘了这个播放器本身就有:
👉 代理转发能力(proxy.php)
现在结合新功能:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
👉 四件套组合效果:
直接可以替代一部分 IPTV 软件

适合哪些人用?
这版特别适合👇
✅ IPTV玩家
-
管理自己的频道源 -
测试订阅地址 -
调整播放体验
✅ 技术折腾党
-
调试 m3u8 / flv -
测试代理 -
分析直播流
✅ 轻量替代客户端
-
不想装APP -
临时用浏览器看电视


整体来看,这次更新让播放器从“单链接播放工具”变成了一个具备基础 IPTV 能力的网页播放器:
-
支持 M3U 播放列表 -
支持 EPG 节目单 -
支持回看(取决于信号源) -
配合代理可以解决大部分播放限制
日常用来:
👉 测试直播源、临时看频道、调试播放问题,都已经比较方便了。
不过也要客观看待一点👇
由于浏览器本身的限制(协议、安全策略、解码能力等),网页播放器在稳定性、兼容性和性能上,还是很难完全替代专业 IPTV 客户端。
🧩 使用建议
👉 轻度使用 / 调试场景:推荐这个网页播放器
👉 长期观看 / 主力使用:建议使用专业 IPTV 播放软件
比如:
-
桌面端:IPTVnator、VLC -
移动端 / TV端:各类原生 IPTV App
一句话总结:
👉 它更适合当“工具”,而不是完全替代播放器。


夜雨聆风