nullboy 发表于 2023-12-11 14:17

分享python tvbox直播源和m3u源互相转换工具(保留分组,添加tvg-name和tvg-logo)

本帖最后由 nullboy 于 2023-12-12 13:19 编辑

由于个人使用爱好经常要在tvbox直播源和m3u格式相互转换,网上的在线转换工具没有保留分组,并且没有Logo,所以索性自己用python 写了一个工具

比如初始是这样的tvbox源
央视,#genre#
CCTV-1综合,https://www.test.com/demo.php?id=cctv1
CCTV-1综合,https://www.test.com/demo.php?id=cctv1b
CCTV-2财*,https://www.test.com/demo.php?id=cctv2
CCTV-3综艺,https://www.test.com/demo.php?id=cctv3
CCTV-4欧洲,https://www.test.com/demo.php?id=cctv4o
CCTV-4美洲,https://www.test.com/demo.php?id=cctv4a
卫视,#genre#
江苏卫视,https://www.test.com/demo.php?id=jsws
湖南卫视,https://www.test.com/demo.php?id=hunws
测试,#genre#
测试未找到,https://www.test.com/demo.php?id=test运行后得到M3U格式源

#EXTM3U x-tvg-url="http://epg.51zmt.top:8000/e.xml"
#EXTINF:-1 tvg-name="CCTV1" tvg-logo="http://epg.51zmt.top:8000/tb1/CCTV/CCTV1.png" group-title="央视",CCTV-1综合
https://www.test.com/demo.php?id=cctv1
#EXTINF:-1 tvg-name="CCTV1" tvg-logo="http://epg.51zmt.top:8000/tb1/CCTV/CCTV1.png" group-title="央视",CCTV-1综合
https://www.test.com/demo.php?id=cctv1b
#EXTINF:-1 tvg-name="CCTV2" tvg-logo="http://epg.51zmt.top:8000/tb1/CCTV/CCTV2.png" group-title="央视",CCTV-2财*
https://www.test.com/demo.php?id=cctv2
#EXTINF:-1 tvg-name="CCTV3" tvg-logo="http://epg.51zmt.top:8000/tb1/CCTV/CCTV3.png" group-title="央视",CCTV-3综艺
https://www.test.com/demo.php?id=cctv3
#EXTINF:-1 tvg-name="CCTV4EUO" tvg-logo="http://epg.51zmt.top:8000/tb1/CCTV/CCTV4EUO.png" group-title="央视",CCTV-4欧洲
https://www.test.com/demo.php?id=cctv4o
#EXTINF:-1 tvg-name="CCTV4AME" tvg-logo="http://epg.51zmt.top:8000/tb1/CCTV/CCTV4AME.png" group-title="央视",CCTV-4美洲
https://www.test.com/demo.php?id=cctv4a
#EXTINF:-1 tvg-name="江苏卫视" tvg-logo="http://epg.51zmt.top:8000/tb1/ws/jiangsu.png" group-title="卫视",江苏卫视
https://www.test.com/demo.php?id=jsws
#EXTINF:-1 tvg-name="湖南卫视" tvg-logo="http://epg.51zmt.top:8000/tb1/ws/hunan.png" group-title="卫视",湖南卫视
https://www.test.com/demo.php?id=hunws
#EXTINF:-1 group-title="测试",测试未找到
https://www.test.com/demo.php?id=test

tvg-name 和 tvg-logo 数据信息来自 http://epg.51zmt.top:8000/

使用方法:
txt_to_m3u.py 将tvbox源转成m3u源

m3u_to_txt.py 将m3u源转成tvbox源

打开相应文件,修改source_file 和 target_file 文件,运行程序即可

2023年12月11日17点55分:
有个小问题,m3u首行epg地址的右边引号漏掉了,已修复

2023年12月12日13点18分:
两个脚本添加跳过空行,防止程序报错



bg7cat 发表于 2023-12-11 14:47

思考·················

lst344 发表于 2023-12-11 16:40

感谢楼主

wlan7 发表于 2023-12-11 17:40

你的这个分组“央视,#genre#”根本是某个系列播放器的专用格式,并且是毫无意义的定义,要不是它传播的广泛,完全不能接受这个格式。

nullboy 发表于 2023-12-11 17:45

wlan7 发表于 2023-12-11 17:40
你的这个分组“央视,#genre#”根本是某个系列播放器的专用格式,并且是毫无意义的定义,要不是它传播的广泛 ...

我标题都说了tvbox直播源了

wlan7 发表于 2023-12-11 17:47

本帖最后由 wlan7 于 2023-12-11 17:48 编辑

nullboy 发表于 2023-12-11 17:45
我标题都说了tvbox直播源了
嗯,支持大佬的创作。:loveliness:

黄河飞鱼 发表于 2023-12-11 17:56

感谢这么好的工具

aming.ou 发表于 2023-12-11 20:01

频道名字和tag_name转换,是技术活,值

nullboy 发表于 2023-12-12 13:21

bug fix: 添加跳过空行,防止程序报错

xiaren2 发表于 2023-12-12 13:51

这个怎么用?

kio 发表于 2023-12-12 17:39

    from channel_data import get_channel_by_name, get_channel_by_tvg_name
ModuleNotFoundError: No module named 'channel_data'

我试了一下,报错。
由于我不是很懂PY,
pip3 install channel_data
后还是无法运行。不知道怎么回事。

nullboy 发表于 2023-12-12 17:55

kio 发表于 2023-12-12 17:39
我试了一下,报错。
由于我不是很懂PY,
pip3 install channel_data


那个channel_data就在iptv_tools根目录下面啊,解压后进入python脚本所在目录,然后右键在终端打开,执行命令 python txt_to_m3u.py

kio 发表于 2023-12-12 18:06

nullboy 发表于 2023-12-12 17:55
那个channel_data就在iptv_tools根目录下面啊,解压后进入python脚本所在目录,然后右键在终端打开,执行 ...

感谢回复,好了。

湛蓝夜下 发表于 2023-12-13 21:25

非常感谢楼主分享

letitbe2019 发表于 2023-12-19 00:32

谢谢分享
页: [1] 2
查看完整版本: 分享python tvbox直播源和m3u源互相转换工具(保留分组,添加tvg-name和tvg-logo)