GitHub

您所在的位置:网站首页 声鉴卡在线测试微信 GitHub

GitHub

2024-06-24 17:21| 来源: 网络整理| 查看: 265

IPTV-M3U-Checker2 直播源批量检测程序 简介

针对目前个人使用的痛点,实现多个直播源自动化定时检测,便于及时替换失效源。一般不会出现大规模失效,除非同一域名/ip挂了,那么替换即可。

本项目改自AlexKwan1981/iptv-m3u8-checker,感谢!

增加了钉钉群机器人(可选),可以配合定时任务,实现直播源的定时检测与通知,使用Office Web Viewer展示测试结果。

增加了直播源连接速度、视频文件格式解析测试(占用资源和时间可能较长,参数testspeed>0),注意部分linux机器没有显卡无法安装cv2模块,所以视频文件格式解析可能无法检测出结果。参考项目chaichunyang/m3u-tester,感谢!

目前支持.txt和'.m3u'直播源的检测。

增加了多线程检测(默认开5个线程)。

检测结果可以给各种播放器支持的格式(包括标准txt格式,m3u格式,以及diyp支持的txt格式)。

txt格式主要是(节目名,url),一行一条; m3u格式带(分组、名称、url)(不含logo地址); diyp支持的txt格式主要跟标准txt格式区别是,同一个节目如果有多个url地址的话,一行内用#隔开。

同时支持按照playlists/sortlist.xlsx文件进行排序和筛选,字段包括:

- 节目名称(title),比如CCTV-1, CCTV-1 综合,CCTV1,CCTV-1 4K等等 - 节目统一名称(uniquename),比如CCTV-1。 - 分组名称(tvgroup),比如1.央视,前面带数字1主要是排序方便。 - 排序(tvorder),同一分组内的排序次序。显示时按照tvgroup,tvorder进行排序。注意uniquename和tvorder最好一致,不然一个节目可能分拆成多条记录显示。 支持将检测结果文件输出到指定目的地,目前只支持copy到目的路径,未来可支持http/ssh等方式copy。 主要功能

对直播源进行批量检测,并(可选)通过钉钉群机器人及时反馈检测结果,同时输出给各种播放器支持的格式。

1.检查本地文件夹(playlists)内所有文件

ctype=0x01; myList=iptv.getPlaylist()

2.检查外部指定文件

ctype=0x02; myList=iptv.getPlaylist(ctype=ctype,checkfile_list=checkfile_list)

2.2.检查外部指定文件;除了在预设清单(tvorders)里面的节目外, 允许关键字清单的节目加入

ctype=0x10|0x02; myList=iptv.getPlaylist(ctype=ctype,checkfile_list=checkfile_list,keywords=keywords)

3.检查本地文件夹,加上外部指定文件

ctype=0x01|0x02; myList=iptv.getPlaylist(ctype=ctype,checkfile_list=checkfile_list)

3.2.【默认】检查本地文件夹,加上外部指定文件;除了在预设清单(tvorders)里面的节目外, 允许关键字清单的节目加入

ctype=0x01|0x02|0x10; myList=iptv.getPlaylist(ctype=ctype,checkfile_list=checkfile_list,keywords=keywords)

将待检测的直播源文件放置到playlists/文件夹下:

支持在线直链(如raw.githubusercontent.com,gitee.com/*/raw/等,可添加多个),自动下载至playlists/文件夹,文件名相同则直接覆盖(类似自动更新) 支持多个本地文件 目前仅支持.txt格式、'.m3u'格式

直播源检测

对每个连接进行测试,同时记录当前网络对该连接的延迟(参考EvilCult/iptv-m3u-maker) 支持测试有效直播源的连接速度 将失效的直播源以文本形式通过钉钉群机器人通知 钉钉群通知展示 通过DataFrame.to_excel()在output/目录下生成全部测试结果的Excel 预览,以链接形式通过钉钉群机器人发送 钉钉群通知展示 生成的文件名以测试时间命名,防止直播源泄露 使用方法

本项目基于 python3 进行开发

模块安装 Requirements pip3 install pandas pip3 install requests pip3 install DingtalkChatbot pip3 install openpyxl pip3 install cv2, opencv-python * 国内可以使用-i参数加快下载速度 如:pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

主要参数 (myconfig.json)

-testspeed:是否开启直播源连接速度测试,默认关闭(开启可能增加耗时与资源占用)

0:关闭 1:开启 >100:开启并且筛选分辨率低于该数字的作为无效来源

-ctype:检查类型(可以组合)

1(0x01):检查本地playlists文件夹下的.txt,.m3u文件 2(0x02):检查外部文件,对应checkfile_list参数 4(0x04):检查上次检查的节目源(保存在sqlite3数据库中) 8(0x08):只检测,不保存/更新结果 16(0x10):只检查在预设清单(sortlists.xlsx)里面tvorder智能群助手->添加机器人->添加机器人->自定义->添加

获得secret secret

获得webhook secret

运行 python main.py 为了方便没有python环境的用户(Windows),已经编译成exe文件,直接下载main.rar,解压后运行main.exe即可。 常用参数配置(myconfig.json) 只检测本地文件: { "testspeed":1, "ctype":1, } 检测外部文件,同时按sortlists.xlsx文件进行限制: { "testspeed":1, "ctype":18, "checkfile_list":["https://github.com/users/project1/raw/master/iptv.txt", "C:\\Users\\admin\\Desktop\\live.m3u"], "otype":7, "keywords":["江西"] }

sortlists.xlsx文件修改:

title tvgroup uniquename url memo tvorder CCTV-1综合 1.央视 CCTV-1 https:///url1.com 1 CCTV-1 1.央视 CCTV-1 https:///url2.com 1 CCTV1 1.央视 CCTV-1 https:///url3.com 1 CCTV1 HD 1.央视 CCTV-1 https:///url4.com 1 CCTV-2 1.央视 CCTV-2 https:///url5.com 2 四海钓鱼 1.央视 四海钓鱼 https:///url6.com 9999

注意:

同一个节目频道(比如cctv-1),uniquename和tvorder必须相同。其中uniquename是最终显示的节目名称 同一个节目频道(比如cctv-1),title最好都慢慢搜录进来,避免搜索的时候因为不在这个xls文件列表清单内而被剔除 检测时,系统会自动对url相同的进行去重,只保留一个,哪一个?我也不知道。 tvorder=9999, 默认不检测该节目

也可配合crontab等定时执行

* 检测直链时,自动下载至playlists/,而后检测该目录下所有文件 注意事项

使用Nginx或Apache等,请注意增加对除了.xlsx外文件的访问权限,以免数据丢失

nginx可使用如下配置

location ~ \.(py|pyc|txt|sqlite3)$ { deny all; } 待优化内容 增加对输出copy的支持(支持ssh/ftp等网络方式) 增加对微信推送的支持 ……


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3