小白零基础抓包重庆联通IPTV分享,附自己抓包的重庆联通IPTV源
上篇文章用wireshark抓取到了联通的直播源,抓取的数据有很多是不需要的,如下:
此时我们仅仅需要自己需要的字段,对于小小白来说,可能就只有对其中name值ctrl+c复制下来,ctrl+v粘贴到新文件,然后逗号,对playUrl的值复制粘贴到新文件,每个频道进行复制粘贴。如何提高效率,这里可以用正则表达式,如NOTEPAD++可以使用正则表达式,首先我们对每个节目的相关信息进行对比,不难看出,其格式如下,只有标红的字不一样,这时就可以进行批量替换。
{"callSign":"","channelNumber":"1","contentID":"00000001000000050000000000000152","description":"","isCollect":"","isSchedule":"","logo":"","multiCastUrl":"rtp://225.0.4.74:7980","name":"CCTV-1高清","num":"1","playUrl":"rtsp://123.147.112.17:8089/04000001/01000000004000000000000000000231?AuthInfo=xxx&userid=gf001&userid=gf001;igmp://225.0.4.74:7980","pushURL":"","status":"","timeShift":"","timeShiftUrl":"","total":"","id":"1"}
一、目标:提取"name":"频道名称"内容和"playUrl":"rstp地址",并按频道名称,rstp地址一个节目一行进行保存,即生成TXT格式直播源
这里只列出我需要用到的字符和解释
| 字符 | 描述 |
| \n | 匹配一个换行符 |
| . | 匹配除换行符(\n、\r)之外的任何单个字符 |
| + | 匹配前面的子表达式一次或多次。 |
1、原文中就只有一行,首先需要将节目按每个频道一行进行匹配,此时需要用到字符\n,表示一个换行符。
{"callSign":全部替换为\n{"callSign":,即在{"callSign":前增加一个换行符
执行后如下:
2、删除频道名称前面所有的字符:{"callSign":至"name":"的字符,用表达式.+"name":"替换为空白,表示从每行从开始字符至"name":"替换为空白,即删除每行开始至"name":"的字符。
全部替换执行后:
3、将节目源后的所有字符删除,即;igmp至行结束全部字符删除,用表达式;igmp:.+替换为空白,表示从;igmp:至行结束全部删除。
全部替换执行后:
4、最后需要将节目名称和源链接之前的字符替换为,,即","num":"1","playUrl":"替换为,,使用表达式","num":"[0-9]+","playUrl":"替换为,,表示","num":"中间是数字","playUrl":"全部替换为逗号。
全部替换完后就生成了TXT格式的直播源了:
二、将生成的TXT直播源转成m3u格式直播源
此时有两种方式
1、直接用前面推文的工具TeleList进行格式转换:
资源:IPTV工具(IPTV源测试)节目源格式转换,附黑龙江节目源
2、继续用正则表达式进行处理,首先需要知道m3u格式直播源格式,m3u直播源格式如下:
#EXTINF:-1,节目名称节目网址
1)首先将节目网址单独一行,使用表达式,替换为\n,即将逗号替换为换行符:
全部替换执行后:
2)节目名称前添加#EXTINF:-1,,使用表达式\n替换为\n#EXTINF:-1,,即表示在换行符后添加#EXTINF:-1,。
全部替换后发现在网址前面也增加了#EXTINF:-1,:
3)删除节目源前面的#EXTINF:-1,,使用表达式#EXTINF:-1,rtsp:替换为rtsp:,即删除节目源前的#EXTINF:-1,。
全部替换后:
4)最后再首行加入#EXTM3U,文件另存为m3u或者m3u8格式即可。
三、题外:这个步骤可能比较繁琐,对于高手来说只需一个命令就可获取到所需要的信息,但对于小白的我来说还是不错了, 学习的过程就是提升的经历。
没有评论:
发表评论