快乐404
发布于 2025-02-05 / 41 阅读
0
0

在NAS上部署IPTV电视直播源更新工具guovern/iptv

iptv-api(完整版本):性能要求较高,更新速度较慢,稳定性、成功率高;修改配置open_driver = False可切换到Lite 版本运行模式(推荐酒店源、组播源、关键字搜索使用此版本)

  • iptv-api:lite(精简版本):轻量级,性能要求低,更新速度快,稳定性不确定(推荐订阅源使用此版本)

1. 拉取镜像

  • iptv-api

docker pull guovern/iptv-api:latest

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

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

docker pull guovern/iptv-api:lite

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

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

2. 运行容器

  • iptv-api

docker run -d -p 8000:8000 guovern/iptv-api
  • iptv-api:lite

docker run -d -p 8000:8000 guovern/iptv-api:lite

挂载(推荐):

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

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

  • iptv-api

-v /etc/docker/config:/iptv-api/config
-v /etc/docker/output:/iptv-api/output
  • iptv-api:lite

-v /etc/docker/config:/iptv-api-lite/config
-v /etc/docker/output:/iptv-api-lite/output
注意:如果重新拉取镜像进行更新版本后,涉及到配置文件变更或增加新配置时,务必覆盖主机的旧配置文件(config目录),因为主机的配置文件是无法自动更新的,否则容器还是以旧配置运行。

环境变量:

  • 端口

-e APP_PORT=8000
  • 定时执行时间

-e UPDATE_CRON1="0 22 * * *"
-e UPDATE_CRON2="0 10 * * *"

3. 更新结果

  • 接口地址:ip:8000

  • m3u 接口:ip:8000/m3u

  • txt 接口:ip:8000/txt (影视仓,TVbox,派大星用此类型接口,m3u接口每条线路都会显示成1个频道)

  • 接口内容:ip:8000/content

  • 测速日志:ip:8000/log


4.配置

配置项

描述

默认值

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_local

开启本地源功能,将使用模板文件与本地源文件中的数据

True

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_supply

开启补偿机制模式,用于控制当频道接口数量不足时,自动将不满足条件(例如低于最小速率)但可能可用的接口添加至结果中,从而避免结果为空的情况

True

open_update

开启更新,用于控制是否更新接口,若关闭则所有工作模式(获取接口和测速)均停止

True

open_update_time

开启显示更新时间

True

open_url_info

开启显示接口说明信息,用于控制是否显示接口来源、分辨率、协议类型等信息,为$符号后的内容,播放软件使用该信息对接口进行描述,若部分播放器(如PotPlayer)不支持解析导致无法播放可关闭

False

open_use_cache

开启使用本地缓存数据,适用于查询请求失败场景(仅针对酒店源与组播源)

True

open_history

开启使用历史更新结果(包含模板与结果文件的接口),合并至本次更新中

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

自动

local_file

本地源文件路径

config/local.txt

local_num

结果中偏好的本地源接口数量

10

min_resolution

接口最小分辨率,需要开启 open_filter_resolution 才能生效

1920x1080

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

结果偏好的接口来源,结果优先按该顺序进行排序,逗号分隔,例如:local,hotel,multicast,subscribe,online_search;local:本地源,hotel:酒店源,multicast:组播源,subscribe:订阅源,online_search:关键字搜索;不填写则表示不指定来源,按照接口速率排序

recent_days

获取最近时间范围内更新的接口(单位天),适当减小可避免出现匹配问题

30

request_timeout

查询请求超时时长,单位秒(s),用于控制查询接口文本链接的超时时长以及重试时长,调整此值能优化更新时间

10

sort_timeout

单个接口测速超时时长,单位秒(s);数值越大测速所属时间越长,能提高获取接口数量,但质量会有所下降;数值越小测速所需时间越短,能获取低延时的接口,质量较好;调整此值能优化更新时间

10

sort_duplicate_limit

相同域名接口允许重复执行次数,用于控制执行测速、获取分辨率时的重复次数,数值越大结果越准确,但耗时会增加

3

source_file

模板文件路径

config/demo.txt

subscribe_num

结果中偏好的订阅源接口数量

10

time_zone

时区,可用于控制更新时间显示的时区,可选值:Asia/Shanghai 或其它时区编码

Asia/Shanghai

urls_limit

单个频道接口数量

10

update_time_position

更新时间显示位置,需要开启 open_update_time 才能生效,可选值:top、bottom,top: 显示于结果顶部,bottom: 显示于结果底部

top

5.项目地址

https://github.com/Guovin/iptv-api


评论