deny12138 发表于 2023-3-13 11:25

上海电信IPTV组播源EPG节目单

一开始我使用的是网友分享的源,节目单使用的是51zmt的。总体使用下问题颇多。

首先组播源需要自己整理啥的,也担心覆盖不全面。其次,该节目单关于上海地区频道的节目信息极其不准确;于是乎决心自己抓取。


以下分享自己的大概折腾历程(流水账)不想看的跳到最后即可:
一开始我的想法就是使用抓包的方式从机顶盒中抓取一手源信息,但是由于电脑原因无法抓包。遂放弃,改用网友分享的地址,节目单使用51zmt;
使用了一段时间后实在无法忍受51zmt中过多的错误信息,决心自己找路子;
搜索后发现深度EPG有提供专业的EPG服务,不过这玩意应该是收费的,并且只提供给企业;好在发现了他们旗下有一款应用提供EPG信息:酷控APP;

现在就有两个选择:酷控APP、机顶盒;
小孩子才做选择,我两个都要。首先我是从酷控下手的,具体就省略了,最后结果是已经能够从该APP接口自由的获取数据了;后面只需要写程序采集并处理数据。
不过经比对发现,数据的准确率还可以,但是比较模糊,比如正在放映的某个剧,机顶盒节目单显示剧名+集数。酷控显示的却是某某剧场或者电视剧之类的。

决定还是从机顶盒获取,无奈机顶盒的ADB是二维码版本,并且ttl也被堵死了,无法输入命令。
于是打算从NAND闪存下手:使用NAND编程器读取NAND原始文件,修改后写回NAND,用以开启ADB功能;在闲鱼上找了一位商家,几天后商家给出答复,无法读取,因为使用的是佰维的NAND,加密了的。
那这个机顶盒算是废了。

然后决定从老版本机顶盒下手,在闲鱼买了一个15年的机顶盒,开始折腾之路:
首先是开启ADB,因为是老版本系统,很顺利的就使用算号器开启了ADB。
接下来提取应用,备份所有分区。提取各种数据文件。
文件备份完成后便开始了调试,使用机顶盒的tcpdump命令进行抓包,并分析认证请求,节目列表请求,节目单信息请求。
紧接着分析各个请求的字段信息,字段的构造方法,以及来源。
最终,编写程序定期抓取、处理、入库。
之后,该机顶盒就可以下岗了。已经完全不需要它了。


目前数据抓取处理方式如下:
频道列表:不定期抓取(因为认证通过后就会得该列表,并且一天可能会认证好几次)
频道信息列表:每天凌晨00:00抓取一次
节目单信息:每天的 0、8、16 点 05分各抓取一次
生成数据:每天的 0、8、16 点 15分各生成一次数据并上传。

下面是组播源,以及节目单地址:
源:   https://epg.deny.vip/sh/tel-xteve.m3u
EPG: https://epg.deny.vip/sh/tel-epg.xml

目前该源有以下特点:
1. 去除重复频道,仅保留高清或4K频道(无高清的不去除),去除购物频道
2. Logo精致,且除 乐游 以及 空中课堂频道外,其余皆设置了台标 (台标来源于https://github.com/wanglindl/TVlogo)
3. 适配了xteve UDPxy地址替换
4. 直接请求电信IPTV系统获取的列表,更完整
5. EPG信息更匹配

使用指南:
强烈建议配合xteve使用,EPG Source选择XEPG,计划更新时间填入 0030,0830,1630
勾选图片缓存,UDPxy Address 填入你的UDPxy地址
如下图所示:




其他就不多说了,自己找资料吧
最后放一张Emby效果图:

sunzhe1234 发表于 2023-3-13 11:44

本帖最后由 sunzhe1234 于 2023-9-22 03:54 编辑

。。。。。

sunzhe1234 发表于 2023-3-13 11:44

本帖最后由 sunzhe1234 于 2023-9-22 03:54 编辑

。。。。

iptver 发表于 2023-3-13 11:50

请教能提供7天的吗? 据说epg也要鉴权之类的, 有没有简单点的API, 谢谢

deny12138 发表于 2023-3-13 12:05

sunzhe1234 发表于 2023-3-13 11:44


不对吧,我感觉你这个是映射错了,等会我查查数据库看看。

deny12138 发表于 2023-3-13 12:11

iptver 发表于 2023-3-13 11:50
请教能提供7天的吗? 据说epg也要鉴权之类的, 有没有简单点的API, 谢谢

七天的?未来7天?还是过去7天,是这样的,机顶盒能提供多少天,我才能获取多少天。只是我觉得历史7天的数据太多了,所以目前只提供前一天的历史数据。

deny12138 发表于 2023-3-13 12:13

iptver 发表于 2023-3-13 11:50
请教能提供7天的吗? 据说epg也要鉴权之类的, 有没有简单点的API, 谢谢

epg确实要鉴权,需要传递一个cookie过去,这个cookie是认证获取的,有效期大概只有两个小时。

sunzhe1234 发表于 2023-3-13 12:23

本帖最后由 sunzhe1234 于 2023-9-22 03:57 编辑

deny12138 发表于 2023-3-13 12:05
不对吧,我感觉你这个是映射错了,等会我查查数据库看看。
。。。。。。。

sunzhe1234 发表于 2023-3-13 12:23

本帖最后由 sunzhe1234 于 2023-9-22 03:56 编辑

。。。.

iptver 发表于 2023-3-13 13:18

deny12138 发表于 2023-3-13 12:13
epg确实要鉴权,需要传递一个cookie过去,这个cookie是认证获取的,有效期大概只有两个小时。

感谢回复, cookie认证获取方式复杂吗? 想自己编程来搞, 弄机顶盒对个人来说太复杂,能力不够,不过如果已经有了具体方法,编程实现下个人可能还够这能力, 方便的话能否告知下具体方法(私信也可以,谢谢)

7天指过去7天,机顶盒上应该是过去7天到未来一天

deny12138 发表于 2023-3-13 13:39

本帖最后由 deny12138 于 2023-3-13 13:53 编辑

iptver 发表于 2023-3-13 13:18
感谢回复, cookie认证获取方式复杂吗? 想自己编程来搞, 弄机顶盒对个人来说太复杂,能力不够,不过如果已经 ...
怎么说呢,稍微有点复杂
首先GET请求 http://222.68.208.73:7001/iptv3a/4kLogAuth.do
Query传递以下参数
Action=Login
UserID=xxxxxx@etv1 # 你自己的UserID
SN=xxxxxxx# 机顶盒SN
Type=iptv4k
Mode=MENU.SMG-4K
FCCSupport=1

然后上面的返回结果是HTML网页,里面有个Form表单,解析表单后构造并发起请求。

接着又返回一个HTML网页,提取里面的表单,解析并构造请求,需要注意的是,网页里有一个encrytoken变量,需要提取这个字段,放入到下列JSON中
{
                        "Randon": "18805087",// 随机生成
                        "EncryToken": "ad5f3b1a073ae68a81ff9bf64499dd0a", // 表单获取
                        "UserID": "xxxxxx@etv1",
                        "SN": "xxxxxxxxxxx",
                        "IP": "022,077,091,009", // 当前IP地址, B平面获取的IP 转换为此种格式
                        "MAC": "xx:xx:xx:xx:xx:xx",// 机顶盒MAC地址
                        "MagicCode": "CTC", // 固定
                        "UpdateTime": "20230301175307"// 暂时未知,需要梳理,貌似是暂时的固定
}
将上列JSON进行AES/ECB/PKCS5Padding 加密, 密钥是123456的MD5值,将加密后的内容转为16进制字符串。
就得到了表单中的authenticator字段。设置该字段并发起请求。就会得到UserToken和频道列表等信息。至此第一阶段认证完成。请注意,这个UserToken并不是我说的Cookies,还需要进行第二阶段认证才能得到Cookie。
关于加密这一步骤,我给你一个在线的快捷工具
地址:
https://tools.dmzy.vip/#recipe=JSON_Minify()AES_Encrypt(%7B'option':'Hex','string':'E10ADC3949BA59ABBE56E057F20F883E'%7D,%7B'option':'Hex','string':''%7D,'ECB','Raw','Hex',%7B'option':'Hex','string':''%7D)&input=ewogICAgIlJhbmRvbiI6ICIxODgwNTA4NyIsCiAgICAiRW5jcnlUb2tlbiI6ICJhZDVmM2IxYTA3M2FlNjhhODFmZjliZjY0NDk5ZGQwYSIsCiAgICAiVXNlcklEIjogInh4eHh4eEBldHYxIiwKICAgICJTTiI6ICJ4eHh4eHh4eHh4eCIsCiAgICAiSVAiOiAiMDIyLDA3NywwOTEsMDA5IiwKICAgICJNQUMiOiAieHg6eHg6eHg6eHg6eHg6eHgiLAogICAgIk1hZ2ljQ29kZSI6ICJDVEMiLAogICAgIlVwZGF0ZVRpbWUiOiAiMjAyMzAzMDExNzUzMDciCn0

deny12138 发表于 2023-3-13 14:01

iptver 发表于 2023-3-13 13:18
感谢回复, cookie认证获取方式复杂吗? 想自己编程来搞, 弄机顶盒对个人来说太复杂,能力不够,不过如果已经 ...

其实,我一开始并不想自己写代码实现,打算分享出来让网友实现。只是后来转念一想,万一网友们爬的多了,或者爬的太狠了,或许这个接口就会失效掉了。到时候又要去逆向机顶盒,怪麻烦的。所以转念一想就干脆自己实现,并直接提供数据,给大伙使用得了。

土鳖 发表于 2023-3-13 14:33

收藏了。赞!

ffonline 发表于 2023-3-13 15:09

有空给你做个 乐游 l的台标更新下:)

iptver 发表于 2023-3-13 15:25

deny12138 发表于 2023-3-13 13:39
怎么说呢,稍微有点复杂
首先GET请求 http://222.68.208.73:7001/iptv3a/4kLogAuth.do
Query传递以下参 ...

感谢感谢, 很详细, 要慢慢研究, 不过还没写完? 第二阶段还没写?
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 上海电信IPTV组播源EPG节目单