此页面概述了如何为IPTV存储库做出贡献,并解释了维护项目的开发流程。有关系统中使用的脚本和工具的详细技术信息,请参阅脚本和工具。有关添加特定流的信息,请参阅添加和修复流。
IPTV项目欢迎社区的贡献,以帮助维护和扩展其公开可用的IPTV频道集合。贡献者可以提交新的流、报告损坏的流或帮助改进代码库。
在向存储库贡献之前,请确保您的提交符合这些要求
| 要求 | 描述 |
|---|---|
| 流稳定性 | 链接必须至少稳定运行一分钟 |
| 流ID | 每个流都应具有来自iptv-org.github.io的有效频道ID |
| 唯一性 | 流不应已存在于存储库中 |
| 流格式 | 不得指向Xtream Codes服务器 |
| 描述格式 | 必须遵循流描述方案 |
来源: CONTRIBUTING.md11-27 CONTRIBUTING.md102-141
所有流条目必须遵循此模板格式
#EXTINF:-1 tvg-id="STREAM_ID",CHANNEL_NAME (QUALITY) [LABEL]
STREAM_URL
其中组成部分是
| 属性 | 描述 | 必填 | 示例值 |
|---|---|---|---|
STREAM_ID | 来自iptv-org数据库的频道ID | 可选 | ExampleTV.us |
CHANNEL_NAME | 完整的频道名称 | 必填 | Example TV |
QUALITY | 最高流质量 | 可选 | 1080p, 720p, 480p |
LABEL | 可用性信息 | 可选 | 地理限制, 非24/7 |
STREAM_URL | 流的URL | 必填 | https://example.com/stream.m3u8 |
如有必要,可以通过属性或#EXTVLCOPT标签指定额外的HTTP头。
来源: CONTRIBUTING.md9-100 CONTRIBUTING.md159-188
要向播放列表中添加新的流链接
streams/目录中相应的国家文件中提交前,请验证
要报告损坏的流
您可以使用VLC播放器或内置测试脚本测试流
频道所有者或其代表可以请求移除
IPTV项目使用强大的脚本和GitHub Actions工作流系统来维护质量并自动化例行流程。
该项目使用Node.js脚本来自动化维护任务。主要脚本包括:
| 脚本 | 描述 |
|---|---|
playlist:format | 格式化播放列表(标准化URL、删除重复项、排序链接) |
playlist:update | 使用已批准的issue更改更新播放列表 |
playlist:generate | 从内部源生成所有公共播放列表 |
playlist:validate | 检查ID和链接是否有错误 |
playlist:lint | 检查语法错误 |
playlist:test | 测试播放列表中的链接 |
api:generate | 为API存储库生成JSON数据 |
readme:update | 更新README.md播放列表列表 |
要运行脚本,请在安装Node.js后使用npm run <script-name>。
GitHub Actions工作流自动化了系统的维护
| 工作流 | 触发器 | 功能 |
|---|---|---|
check | 新的pull request | 验证更改,以防止错误合并 |
format | 手动 | 格式化播放列表以保持一致性 |
update | 每日和手动 | 使用新更改更新播放列表并部署到GitHub Pages |
这些工作流确保了代码质量、一致性,并自动化了部署过程。
了解存储库结构对于贡献者至关重要
| 目录 | 描述 |
|---|---|
.github/ | Issue模板和工作流配置 |
.readme/ | 用于生成README.md的文件 |
scripts/ | 用于自动化的Node.js脚本 |
streams/ | 按国家组织的流文件(主要贡献目标) |
tests/ | 脚本测试文件 |
在添加或修改流时,贡献者将主要处理streams/目录中的文件,这些文件按国家代码组织。
在为IPTV项目做出贡献时
遵循这些实践有助于维护存储库的一致性和质量。