直播源自动检测工具iptv-m3u-maker
【申明】:本文不提供任何播放列表或其他数字内容。屏幕截图中的频道和图片仅供演示和说明之用。
老苏以前介绍过 IPTV Checker
,能对直播源进行有效性检测
文章传送门:用Jellyfin➕xTeVe播放和录制IPTV
今天要介绍的 iptv-m3u-maker
功能是一样的,所不同的是,IPTV Checker
是个桌面端应用,需要自己运行,而 iptv-m3u-maker
是服务,可以自动运行,不需要人工干预
从源码中
crontab
的时间表达式看,任务将在每周日的午夜(凌晨00:00
)执行一次。
如果你等不及,可以在修改完直播源文件后,直接点 抓取
开始运行检测
软件的工作流程:
收集网络上现有的一些网友共享的直播源, 将其汇总后.
对每个连接进行测试, 同时记录当前网络对该连接的延迟, 同时对其标题进行一定的格式化.
最终, 针对当前网络生成一份可用的, 同类速度最优的 “播放列表”.
将其输出为 m3u 文件
程序内置服务器功能, 本地运行访问:
http://{你的IP}:9527/m3u
源代码有点老,起码 3
年没更新了,而且也还有不少问题,不过不影响其核心功能的使用
构建镜像
如果你不想自己构建,可以跳过,直接阅读下一章节
官方提供了 Dockerfile
,但原生的代码在编译成镜像之后,会报错👇
1 | FileNotFoundError: [Errno 2] No such file or directory: './plugins/dotpy_source' |
老苏参考了 Issue #47
对代码做了调整,相应的 Dockerfile
也做了微调,取消了直接从 github
上下载代码,而是使用了本地修改后的代码
1 | FROM python:3.7 |
主要的变动包括:
- 删除了
http
目录下演示用的数据tv.json
和tv.m3u
; - 删除了
python/plugins
目录下dotpy_source
文件,改为由我们自己提供,具体格式后年会提到; - 修改
dotpy.py
中sourcePath
的值,由'./plugins/dotpy_source'
改为了'/srv/iptv/python/plugins/dotpy_source'
删除数据是为了让软件成为更纯粹的工具,避免不必要的麻烦~~~
构建镜像和容器运行的基本命令如下👇
1 | # 下载代码 |
准备文件
首先需要准备一个需要检测的直播源文件,比如叫 playlist.txt
,格式很简单
1 | 名称1,url1 |
你可以参考源代码中的 dotpy_source
文件,文件地址:https://github.com/EvilCult/iptv-m3u-maker/blob/master/python/plugins/dotpy_source
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 iptv-m3u-maker
,选择第三个 wbsu2003/iptv-m3u-maker
,版本选择 latest
。
卷
在 docker
文件夹中,创建一个新文件夹 iptv-m3u-maker
,并将我们前面准备好的 playlist.txt
放入当前文件夹内
文件 | 装载路径 | 说明 |
---|---|---|
docker/iptv-m3u-maker/playlist.txt |
/srv/iptv/python/plugins/dotpy_source |
待检测的播放列表源文件 |
【注意】:是
添加文件
不是添加文件夹
端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
本地端口 | 容器端口 |
---|---|
9527 |
9527 |
默认没有对外暴露端口,需要自己添加
点 +
号添加
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
1 | # 新建文件夹 iptv-m3u-maker |
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 iptv-m3u-maker |
运行
在浏览器中输入 http://群晖IP:9527
就能看到主界面
抓取
:手动启动对playlist.txt
的有效性检测;列表
:下载检测完成后的可用列表;状态
:查看检测日志;
容器启动时,会自动对 playlist.txt
中的地址依次进行检测,所以你进入 状态
会看到日志
第一次运行,在结束之前,点 列表
是会报错。之后,你下载的只是上一次的结果
只有看到 抓取完成
才行
状态
页面不会自动刷新,需要手动刷
这个时候下载的 tv.m3u
才是正确的本次抓取成功的结果
将下载的 tv.m3u
导入 IPTVnator
,基本上可以秒开,因为针对的是同一个网络做的有效性检测,所以还是比较精准的
文章传送门:跨平台IPTV播放器IPTVnator
参考文档
EvilCult/iptv-m3u-maker: IPTV 国内+国外 电视台直播源m3u文件, 收集&汇总&本地源脚本
地址:https://github.com/EvilCult/iptv-m3u-makerDocker运行报错 · Issue #47 · EvilCult/iptv-m3u-maker
地址:https://github.com/EvilCult/iptv-m3u-maker/issues/47IPTV-Projects | EvilCult.Dev
地址:https://evilcult.dev/07/19/2019/IPTV-Projects/