IPTV-API项目介绍
IPTV-API 是一个功能强大且灵活的直播源获取与验证工具,支持高度自定义频道列表、多种直播源获取方式、接口测速与过滤,并提供多种运行方式(命令行、GUI、Docker 等)。无论是个人用户还是企业开发者,都可以通过该项目快速获取高质量的直播源,并实现自动化更新与管理。主要功能如下:
-
自定义频道:
-
支持自定义模板,生成用户想要的频道列表。
-
默认生成的频道包括:
-
📺 央视频道
-
💰 央视付费频道
-
📡 卫视频道
-
🏠 广东频道
-
🌊 港·澳·台频道
-
🎬 电影频道
-
🎥 咪咕直播
-
🏀 体育频道
-
🪁 动画频道
-
🎮 游戏频道
-
🎵 音乐频道
-
🏛 经典剧场
-
-
-
自动获取直播源:
-
支持多种获取源方式:
-
组播源
-
酒店源
-
订阅源
-
关键字搜索
-
-
-
测速验效:
-
对获取的直播源进行测速,验证延迟、速率、分辨率,并过滤无效接口。
-
-
偏好设置:
-
支持 IPv6 优先。
-
可配置接口来源的排序优先级与数量。
-
支持接口白名单功能。
-
-
定时任务:
-
每天北京时间 6:00 和 18:00 自动执行更新任务。
-
部署前请参考通用教程
点此查看飞牛NAS部署各种Docker应用通用教程
本项目的docker-compose配置文件如下,每行配置都写有注释,可按要求修改。主要是修改端口和挂载路径。
# 定义服务
services:
# iptv-api(完整版本)
iptv-api:
# 使用的 Docker 镜像(完整版本)
image: guovern/iptv-api:latest
# 指定容器的名称
container_name: iptv-api
# 挂载卷(将主机目录映射到容器目录)
volumes:
# 将主机的 /vol2/1000/docker2/iptv-api/config 目录挂载到容器的 /iptv-api/config 目录
- /vol2/1000/docker2/iptv-api/config:/iptv-api/config
# 将主机的 /vol2/1000/docker2/iptv-api/output 目录挂载到容器的 /iptv-api/output 目录
- /vol2/1000/docker2/iptv-api/output:/iptv-api/output
# 端口映射(将主机端口映射到容器端口)
ports:
# 将主机的 7116 端口映射到容器的 8000 端口
- "7116:8000"
# 设置容器的重启策略
restart: always
# 环境变量(可选):修改配置 open_driver = False 可切换到 Lite 版本运行模式,设置为True是完整版本。完整版本初始化的时候需要漫长的等待。
environment:
- open_driver=True
- 完整版本:性能要求较高,更新速度较慢,稳定性、成功率高;修改配置 open_driver = False 可切换到 Lite 版本运行模式(推荐酒店源、组播源、关键字搜索使用此版本)
- lite精简版本:轻量级,性能要求低,更新速度快,稳定性不确定(推荐订阅源使用此版本)
-
详细配置
如果需要设置某个配置,可以在上面的配置文件最后一行后面再另起一行或者多行进行添加,比如可以添加- open_hotel = True,添加或者修改配置后在飞牛的docker里的compose里面删除项目重建。本项目参数很多,可以多次尝试选择自己需要的参数。
配置项 描述 默认值 open_driver 开启浏览器运行,若更新无数据可开启此模式,较消耗性能 False open_empty_category 开启无结果频道分类,自动归类至底部 False open_filter_resolution 开启分辨率过滤,低于最小分辨率(min_resolution)的接口将会被过滤,GUI用户需要手动安装FFmpeg,程序会自动调用FFmpeg获取接口分辨率,推荐开启,虽然会增加测速阶段耗时,但能更有效地区分是否可播放的接口 True open_filter_speed 开启速率过滤,低于最小速率(min_speed)的接口将会被过滤 True open_hotel 开启酒店源功能,关闭后所有酒店源工作模式都将关闭 True open_hotel_foodie 开启 Foodie 酒店源工作模式 True open_hotel_fofa 开启 FOFA、ZoomEye 酒店源工作模式 True open_keep_all 开启保留所有检索结果,会保留非模板频道名称的结果,推荐手动维护时开启 False open_m3u_result 开启转换生成 m3u 文件类型结果链接,支持显示频道图标 True open_multicast 开启组播源功能,关闭后所有组播源工作模式都将关闭 True open_multicast_foodie 开启 Foodie 组播源工作模式 True open_multicast_fofa 开启 FOFA 组播源工作模式 True open_online_search 开启关键字搜索源功能 False open_proxy 开启代理,自动获取免费可用代理,若更新无数据可开启此模式 False open_request 开启查询请求,数据来源于网络(仅针对酒店源与组播源) False open_service 开启页面服务,用于控制是否启动结果页面服务;如果使用青龙等平台部署,有专门设定的定时任务,需要更新完成后停止运行,可以关闭该功能 True open_sort 开启排序功能(响应速度、日期、分辨率) True open_subscribe 开启订阅源功能 False open_update 开启更新,用于控制是否更新接口,若关闭则所有工作模式(获取接口和测速)均停止 True open_update_time 开启显示更新时间 True open_url_info 开启显示接口说明信息,用于控制是否显示接口来源、分辨率、协议类型等信息,为$符号后的内容,播放软件使用该信息对接口进行描述,若部分播放器(如PotPlayer)不支持解析导致无法播放可关闭 True open_use_cache 开启使用本地缓存数据,适用于查询请求失败场景(仅针对酒店源与组播源) True open_use_old_result 开启使用历史更新结果(包含模板与结果文件的接口),合并至本次更新中 True app_port 页面服务端口,用于控制页面服务的端口号 8000 final_file 生成结果文件路径 output/result.txt hotel_num 结果中偏好的酒店源接口数量 10 hotel_page_num 酒店地区获取分页数量 1 hotel_region_list 酒店源地区列表,”全部”表示所有地区 全部 ipv4_num 结果中偏好的 IPv4 接口数量 5 ipv6_num 结果中偏好的 IPv6 接口数量 5 ipv6_support 强制认为当前网络支持IPv6,跳过检测 False ipv_type 生成结果中接口的协议类型,可选值:ipv4、ipv6、全部、all 全部 ipv_type_prefer 接口协议类型偏好,优先将该类型的接口排在结果前面,可选值:ipv4、ipv6、自动、auto 自动 min_resolution 接口最小分辨率,需要开启 open_filter_resolution 才能生效 1920×1080 min_speed 接口最小速率(单位M/s),需要开启 open_filter_speed 才能生效 0.2 multicast_num 结果中偏好的组播源接口数量 10 multicast_page_num 组播地区获取分页数量 1 multicast_region_list 组播源地区列表,”全部”表示所有地区 全部 online_search_num 结果中偏好的关键字搜索接口数量 0 online_search_page_num 关键字搜索频道获取分页数量 1 origin_type_prefer 结果偏好的接口来源,结果优先按该顺序进行排序,逗号分隔,例如:hotel,multicast,subscribe,online_search;hotel:酒店源,multicast:组播源,subscribe:订阅源,online_search:关键字搜索;不填写则表示不指定来源,按照接口速率排序 recent_days 获取最近时间范围内更新的接口(单位天),适当减小可避免出现匹配问题 30 request_timeout 查询请求超时时长,单位秒(s),用于控制查询接口文本链接的超时时长以及重试时长,调整此值能优化更新时间 10 sort_timeout 单个接口测速超时时长,单位秒(s);数值越大测速所属时间越长,能提高获取接口数量,但质量会有所下降;数值越小测速所需时间越短,能获取低延时的接口,质量较好;调整此值能优化更新时间 10 source_file 模板文件路径 config/demo.txt subscribe_num 结果中偏好的订阅源接口数量 10 urls_limit 单个频道接口数量 10
完整版本安装后需要大概半小时左右时间进行升级和配置,请耐心等待。安装后使用飞牛IP加设置的端口访问,比如我的是http://192.168.2.146:7116
测试了下效果,给的源速度很快很稳。下面是这个项目的几个url,把里面的IP和端口换成你自己的即可. 详细教程可查看官方文档 https://github.com/Guovin/iptv-api
- 接口地址: http://192.168.2.146:7116
- M3u 接口: http://192.168.2.146:7116/m3u
- Txt 接口: http://192.168.2.146:7116/txt
- 接口内容: http://192.168.2.146:7116/content
- 测速日志: http://192.168.2.146:7116/log
部署完成了,但是tvbox一直都提示解析错误怎么办
格式问题 这个项目导出的格式看下是否符合tvbox要求,在本地测试是正常的。