本文档提供了有关向 IPTV 存储库添加新流或修复现有流的全面说明。它涵盖了流贡献的整个工作流程,从提交方法到处理它们的自动化流程。
有关播放列表系统整体组织的信息,请参阅 播放列表系统。有关流处理和验证的技术细节,请参阅 流处理。
IPTV 存储库主要通过两种方式接受流贡献:GitHub Issues 和 Pull Requests。所有贡献在添加到存储库之前都会经过验证和处理。
在添加新流之前,请确保您已完成以下准备步骤
channelId 或 channelId@feedId)批准后,流将在下一个更新周期自动添加。
streams/ 目录中找到相应的国家/地区特定文件来源:CONTRIBUTING.md10-31 scripts/commands/playlist/update.ts153-222
存储库中的所有流都必须遵循此特定格式
#EXTINF:-1 tvg-id="STREAM_ID",CHANNEL_NAME (QUALITY) [LABEL]
STREAM_URL
其中
| 属性 | 描述 | 必填 | 有效值 |
|---|---|---|---|
STREAM_ID | 流的 ID | 可选 | <channel_id> 或 <channel_id>@<feed_id> |
CHANNEL_NAME | 频道的全名 | 必填 | 除了 ,、[、] 之外的任何字符 |
QUALITY | 最高流质量 | 可选 | 2160p、1080p、720p、480p 等。 |
LABEL | 限制说明 | 可选 | 地理限制 或 非 24/7 |
STREAM_URL | 流 URL | 必填 | 有效 URL |
适用于需要自定义 HTTP 标头的流
#EXTINF:-1 tvg-id="ExampleTV.us" http-referrer="http://example.com/" http-user-agent="Mozilla/5.0",Example TV
http://example.com/stream.m3u8
或者
#EXTINF:-1 tvg-id="ExampleTV.us",Example TV
#EXTVLCOPT:http-referrer=http://example.com/
#EXTVLCOPT:http-user-agent=Mozilla/5.0
http://example.com/stream.m3u8
存储库提供了多种修复现有流问题的方法。
如果流的元数据不正确
要报告损坏的流
来源:CONTRIBUTING.md32-61 scripts/commands/playlist/update.ts101-151
当您提交用于添加或修复流的问题时,系统会在批准后处理这些请求。
该系统使用多个组件来处理与流相关的问题
根据问题类型,系统会执行不同的操作
实际处理由 playlist:update 命令处理,该命令通过 GitHub Actions 自动运行。
来源:scripts/core/issueLoader.ts1-36 scripts/core/issueParser.ts1-49 scripts/models/issue.ts1-20 scripts/commands/playlist/update.ts1-226
为了确保存储库中流的质量,在提交任何流之前进行彻底测试非常重要
此命令会检查播放列表中的所有流并显示其状态。
[Geo-blocked] 标签进行指示。[Not 24/7] 标记这些。如果您想通过查找和报告损坏的流来提供帮助
playlist:test 脚本以自动检查流该系统通过 report:create 命令维护潜在问题的报告,该命令用于识别无效或有问题的流。
来源:CONTRIBUTING.md63-91 scripts/commands/report/create.ts1-176