×

IPTV-API

Kevin Kevin 发表于2025-05-27 09:26:48 浏览22 评论0

抢沙发发表评论

微信截图_20250527092626.jpg

特点

  • ✅ 自定义模板,支持别名,生成您想要的频道

  • ✅ 支持RTMP推流(live/hls),提升播放体验

  • ✅ 支持多种获取源方式:本地源、组播源、酒店源、订阅源、关键字搜索

  • ✅ 支持回放类接口获取与生成

  • ✅ 支持EPG功能,显示频道预告内容

  • ✅ 接口测速验效,获取延迟、速率、分辨率,过滤无效接口

  • ✅ 偏好设置:IPv4、IPv6、接口来源排序优先级与数量配置、白名单、黑名单、归属地与运营商过滤

  • ✅ 定时执行,北京时间每日 6:00 与 18:00 执行更新

  • ✅ 支持多种运行方式:工作流、命令行、GUI 软件、Docker(amd64/arm64/arm v7)

配置

配置项描述默认值
open_driver开启浏览器运行,若更新无数据可开启此模式,较消耗性能False
open_epg开启EPG功能,支持频道显示预告内容True
open_empty_category开启无结果频道分类,自动归类至底部False
open_filter_resolution开启分辨率过滤,低于最小分辨率(min_resolution)的接口将会被过滤,GUI用户需要手动安装FFmpeg,程序会自动调用FFmpeg获取接口分辨率,推荐开启,虽然会增加测速阶段耗时,但能更有效地区分是否可播放的接口True
open_filter_speed开启速率过滤,低于最小速率(min_speed)的接口将会被过滤True
open_hotel开启酒店源功能,关闭后所有酒店源工作模式都将关闭False
open_hotel_foodie开启 Foodie 酒店源工作模式True
open_hotel_fofa开启 FOFA、ZoomEye 酒店源工作模式False
open_local开启本地源功能,将使用模板文件与本地源文件中的数据True
open_m3u_result开启转换生成 m3u 文件类型结果链接,支持显示频道图标True
open_multicast开启组播源功能,关闭后所有组播源工作模式都将关闭False
open_multicast_foodie开启 Foodie 组播源工作模式True
open_multicast_fofa开启 FOFA 组播源工作模式False
open_online_search开启关键字搜索源功能False
open_request开启查询请求,数据来源于网络(仅针对酒店源与组播源)False
open_rtmp开启RTMP推流功能,需要安装FFmpeg,利用本地带宽提升接口播放体验False
open_service开启页面服务,用于控制是否启动结果页面服务;如果使用青龙等平台部署,有专门设定的定时任务,需要更新完成后停止运行,可以关闭该功能True
open_speed_test开启测速功能,获取响应时间、速率、分辨率True
open_subscribe开启订阅源功能False
open_supply开启补偿机制模式,用于控制当频道接口数量不足时,自动将不满足条件(例如低于最小速率)但可能可用的接口添加至结果中,从而避免结果为空的情况True
open_update开启更新,用于控制是否更新接口,若关闭则所有工作模式(获取接口和测速)均停止True
open_update_time开启显示更新时间True
open_url_info开启显示接口说明信息,用于控制是否显示接口来源、分辨率、协议类型等信息,为$符号后的内容,播放软件使用该信息对接口进行描述,若部分播放器(如PotPlayer)不支持解析导致无法播放可关闭False
open_use_cache开启使用本地缓存数据,适用于查询请求失败场景(仅针对酒店源与组播源)True
open_history开启使用历史更新结果(包含模板与结果文件的接口),合并至本次更新中True
open_headers开启使用M3U内含的请求头验证信息,用于测速等操作,注意:只有个别播放器支持播放这类含验证信息的接口,默认为关闭False
app_port页面服务端口,用于控制页面服务的端口号8000
cdn_urlCDN代理加速地址,用于订阅源、频道图标等资源的加速访问
final_file生成结果文件路径output/result.txt
hotel_num结果中偏好的酒店源接口数量10
hotel_page_num酒店地区获取分页数量1
hotel_region_list酒店源地区列表,"全部"表示所有地区全部
isp接口运营商,用于控制结果中只包含填写的运营商类型,支持关键字过滤,英文逗号分隔,不填写表示不指定运营商
ipv4_num结果中偏好的 IPv4 接口数量5
ipv6_num结果中偏好的 IPv6 接口数量5
ipv6_support强制认为当前网络支持IPv6,跳过检测False
ipv_type生成结果中接口的协议类型,可选值:ipv4、ipv6、全部、all全部
ipv_type_prefer接口协议类型偏好,优先将该类型的接口排在结果前面,可选值:ipv4、ipv6、自动、autoipv6,ipv4
location接口归属地,用于控制结果只包含填写的归属地类型,支持关键字过滤,英文逗号分隔,不填写表示不指定归属地,建议使用靠近使用者的归属地,能提升播放体验
local_file本地源文件路径config/local.txt
local_num结果中偏好的本地源接口数量10
min_resolution接口最小分辨率,需要开启 open_filter_resolution 才能生效1920x1080
max_resolution接口最大分辨率,需要开启 open_filter_resolution 才能生效1920x1080
min_speed接口最小速率(单位M/s),需要开启 open_filter_speed 才能生效0.5
multicast_num结果中偏好的组播源接口数量10
multicast_page_num组播地区获取分页数量1
multicast_region_list组播源地区列表,"全部"表示所有地区全部
online_search_num结果中偏好的关键字搜索接口数量0
online_search_page_num关键字搜索频道获取分页数量1
origin_type_prefer结果偏好的接口来源,结果优先按该顺序进行排序,逗号分隔,例如:local,hotel,multicast,subscribe,online_search;local:本地源,hotel:酒店源,multicast:组播源,subscribe:订阅源,online_search:关键字搜索;不填写则表示不指定来源,按照接口速率排序
recent_days获取最近时间范围内更新的接口(单位天),适当减小可避免出现匹配问题30
request_timeout查询请求超时时长,单位秒(s),用于控制查询接口文本链接的超时时长以及重试时长,调整此值能优化更新时间10
speed_test_limit同时执行测速的接口数量,用于控制测速阶段的并发数量,数值越大测速所需时间越短,负载较高,结果可能不准确;数值越小测速所需时间越长,低负载,结果较准确;调整此值能优化更新时间10
speed_test_timeout单个接口测速超时时长,单位秒(s);数值越大测速所需时间越长,能提高获取接口数量,但质量会有所下降;数值越小测速所需时间越短,能获取低延时的接口,质量较好;调整此值能优化更新时间10
speed_test_filter_host测速阶段使用Host地址进行过滤,相同Host地址的频道将共用测速数据,开启后可大幅减少测速所需时间,但可能会导致测速结果不准确False
source_file模板文件路径config/demo.txt
subscribe_num结果中偏好的订阅源接口数量10
time_zone时区,可用于控制更新时间显示的时区,可选值:Asia/Shanghai 或其它时区编码Asia/Shanghai
urls_limit单个频道接口数量10
update_interval定时执行更新时间间隔,单位小时,设置0或空则只运行一次,不作用于工作流12
update_time_position更新时间显示位置,需要开启 open_update_time 才能生效,可选值:top、bottom,top: 显示于结果顶部,bottom: 显示于结果底部top

快速上手

命令行

pip install pipenv
pipenv install --dev

启动更新:

pipenv run dev

启动服务:

pipenv run service

GUI 软件

  1. 下载IPTV-API 更新软件,打开软件,点击启动,即可进行更新

  2. 或者在项目目录下运行以下命令,即可打开 GUI 软件:

pipenv run ui

微信截图_20250527160020.jpg

Docker

1. 拉取镜像

docker pull guovern/iptv-api:latest

🚀 代理加速(推荐国内用户使用):

docker pull docker.1ms.run/guovern/iptv-api:latest

2. 运行容器

docker run -d -p 8000:8000 guovern/iptv-api
挂载(推荐):

实现宿主机文件与容器文件同步,修改模板、配置、获取更新结果文件可直接在宿主机文件夹下操作

以宿主机路径/etc/docker 为例:

-v /etc/docker/config:/iptv-api/config
-v /etc/docker/output:/iptv-api/output
环境变量:
变量描述默认值
APP_HOST服务host地址,可修改使用公网域名"http://localhost"
APP_PORT服务端口8000

3. 更新结果

接口描述
/默认接口
/m3um3u 格式接口
/txttxt 格式接口
/ipv4ipv4 默认接口
/ipv6ipv6 默认接口
/ipv4/txtipv4 txt接口
/ipv6/txtipv6 txt接口
/ipv4/m3uipv4 m3u接口
/ipv6/m3uipv6 m3u接口
/content接口文本内容
/log测速日志
  • RTMP 推流:

[!NOTE]

  1. 如果需要对本地视频源进行推流,可在config目录下新建livehls(推荐)文件夹

  2. live文件夹用于推流live接口,hls文件夹用于推流hls接口

  3. 将以频道名称命名的视频文件放入其中,程序会自动推流到对应的频道中

  4. 可访问 http://localhost:8080/stat 查看实时推流状态统计数据

推流接口描述
/live推流live接口
/hls推流hls接口
/live/txt推流live txt接口
/hls/txt推流hls txt接口
/live/m3u推流live m3u接口
/hls/m3u推流hls m3u接口
/live/ipv4/txt推流live ipv4 txt接口
/hls/ipv4/txt推流hls ipv4 txt接口
/live/ipv4/m3u推流live ipv4 m3u接口
/hls/ipv4/m3u推流hls ipv4 m3u接口
/live/ipv6/txt推流live ipv6 txt接口
/hls/ipv6/txt推流hls ipv6 txt接口
/live/ipv6/m3u推流live ipv6 m3u接口
/hls/ipv6/m3u推流hls ipv6 m3u接口

gitee地址:https://gitee.com/zyqwwj/iptv-api

群贤毕至

访客