Skip to content
This repository has been archived by the owner on Jan 11, 2023. It is now read-only.

IPTV-M3U-Checker with DingtalkChatbot 自动化、定时、批量检测IPTV直播源.m3u的连通性与连接速度,并通过钉钉群机器人以文本形式显示失效源、在线Excel预览全部检测结果。

License

Notifications You must be signed in to change notification settings

sec-an/IPTV-M3U-Checker-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPTV-M3U-Checker 直播源批量检测程序

简介

Python初学者,能力有限,还请见谅。

针对目前个人使用的痛点,实现直播源自动化定时检测,便于及时替换失效源。一般不会出现大规模失效,除非同一域名/ip挂了,那么替换即可。如果是需要初次检测某一(大量)直播源,请使用其他工具。

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

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

增加了直播源连接速度测试(占用资源和时间可能较长,默认关闭),参考项目chaichunyang/m3u-tester,感谢!

基于个人能力和.m3u文件自身标签的原因,暂时删除了对.m3u文件的支持(原项目也不完全支持),目前仅支持.txt直播源的检测。(有许多在线工具/软件能较好地将.m3u转为.txt

主要功能

对直播源进行批量检测,并通过钉钉群机器人及时反馈检测结果。

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

    • 支持在线直链(如raw.githubusercontent.comgitee.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
    secret
    • 获得webhook
    secret
  • 主要参数

    • 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的支持(争取
  • 部分直播源测速问题
  • 代码优化
  • ……

About

IPTV-M3U-Checker with DingtalkChatbot 自动化、定时、批量检测IPTV直播源.m3u的连通性与连接速度,并通过钉钉群机器人以文本形式显示失效源、在线Excel预览全部检测结果。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages