Python初学者,能力有限,还请见谅。
针对目前个人使用
的痛点,实现直播源自动化定时检测
,便于及时替换失效源。一般不会出现大规模失效,除非同一域名/ip挂了,那么替换即可。如果是需要初次检测某一(大量)直播源,请使用其他工具。
本项目改自AlexKwan1981/iptv-m3u8-checker,感谢!
增加了钉钉群机器人,可以配合定时任务,实现直播源的定时检测与通知,使用Office Web Viewer
展示测试结果。
增加了直播源连接速度测试(占用资源和时间可能较长,默认关闭),参考项目chaichunyang/m3u-tester,感谢!
基于个人能力和.m3u
文件自身标签的原因,暂时删除了对.m3u
文件的支持(原项目也不完全支持),目前仅支持.txt
直播源的检测。(有许多在线工具/软件能较好地将.m3u
转为.txt
)
对直播源进行批量检测,并通过钉钉群机器人及时反馈检测结果。
-
将待检测的直播源文件放置到
playlists/
文件夹下:- 支持在线直链(如
raw.githubusercontent.com
,gitee.com/*/raw/
等,可添加多个),自动下载至playlists/
文件夹,文件名相同则直接覆盖(类似自动更新) - 支持多个本地文件
- 目前仅支持
.txt
格式,详见playlists文件下的demo示例
- 支持在线直链(如
-
直播源检测
- 对每个连接进行测试,同时记录当前网络对该连接的延迟(参考EvilCult/iptv-m3u-maker)
- 支持测试有效直播源的连接速度
- 将失效的直播源以文本形式通过钉钉群机器人通知
- 通过
DataFrame.to_excel()
在output/
目录下生成全部测试结果的Excel 预览,以链接形式通过钉钉群机器人发送
- 生成的文件名以
测试时间+token
命名,防止直播源泄露
本项目基于 python3.7 进行开发
- 模块安装 Requirements
pip3 install pandas
pip3 install requests
pip3 install DingtalkChatbot
pip3 install openpyxl
* 国内可以使用-i参数加快下载速度
如:pip3 install DingtalkChatbot -i https://pypi.tuna.tsinghua.edu.cn/simple
-
钉钉群机器人配置
- 群设置->智能群助手->添加机器人->添加机器人->自定义->添加
- 获得
secret
- 获得
webhook
-
主要参数
webhook
:填入钉钉群自定义机器人的token
修改main.py第23行 webhook = 'https://oapi.dingtalk.com/robot/send?access_token=这里填写自己钉钉群自定义机器人的token'
secret
:创建机器人勾选“加签”选项所设置的密钥
修改main.py第24行 secret = 'SEC11b9...这里填写自己的加密设置密钥' # 创建机器人勾选“加签”选项时使用
SpeedTest
:是否开启直播源连接速度测试,默认关闭(开启可能增加耗时与资源占用)
修改main.py第29行 SpeedTest = True # default False
your_domain
:生成的excel文件所在服务器域名/ip
修改main.py第31行 注意添加 http / https your_domain = 'https://list.domain.com' 如果没有服务器 / 不需要通知,请将your_domain置为空值 your_domain = ''
playlist_file
= 'playlists/' 直播源源文件存放路径delay_threshold
= 5000
响应延迟阈值,单位毫秒,超过这个阈值则认为直播源质量较差
-
运行
只检测本地文件:python3 main.py
检测直链文件:python3 main.py https://raw.githubusercontent.com.txt https://gitee.com/a/b/raw.txt http://c.txt
也可配合crontab等定时执行
* 检测直链时,自动下载至playlists/,而后检测该目录下所有文件
使用Nginx或Apache等,请注意增加对除了.xlsx
外文件的访问权限,以免数据丢失
nginx可使用如下配置
location ~ \.(py|pyc|txt|sqlite3)$ {
deny all;
}
- 增加对telegram bot的支持(争取
- 部分直播源测速问题
- 代码优化
- ……