IPTV Explorer一款IPTV 直播源探索与检测工具

IPTV Explorer 📡

IPTV 直播源探索与检测工具 — 自动搜索、智能过滤、批量检测、导出播放列表

IPTV Explorer 是一款基于 Electron 构建的桌面工具,专为 IPTV 直播源爱好者设计。它能够自动从多个在线来源搜索直播源,通过内置的频道白名单进行智能过滤,并使用 ffprobe 引擎进行批量连通性检测,最终生成高质量的播放列表。


✨ 功能特点

🔍 多源探索

自动从以下来源搜索 IPTV 直播源:

  • iptv-org — 全球最大的 IPTV 源仓库,覆盖数千个频道
  • 恩山论坛 — 中文 IPTV 爱好者社区,持续更新国内源
  • GitHub — 扫描 GitHub 上的公开 IPTV 源项目

✅ 智能检测

采用两阶段检测引擎确保源质量:

  1. HTTP HEAD 探测 — 快速检查 URL 是否可达(非阻塞,高并发)
  2. ffprobe 流分析 — 深度探测流媒体信息,获取:
    • 延迟(连接时间)
    • 分辨率(清晰度)
    • 码率(传输质量)
    • 编码格式(H.264/H.265 等)

🎯 综合评分

基于多项指标自动评分(满分 100):

指标 权重 说明
延迟 30分 连接速度越快分数越高
分辨率 30分 1080p 满分,720p 次之
编码格式 10分 H.265 优于 H.264
码率 15分 码率越高画质越好
连通性 15分 源稳定可用性

📋 频道白名单

内置 全国电视节目频道列表(1084 个频道),覆盖:

  • 央视系列(CCTV-1 ~ CCTV-17、CCTV-5+、CGTN 等)
  • 省级卫视(湖南卫视、浙江卫视、江苏卫视、东方卫视等)
  • 地级市频道(覆盖全国主要城市)
  • 支持自定义关键词过滤(白名单/黑名单)

🌐 IP 归属地识别

自动根据 URL 解析频道归属地:

  • DNS 域名关键词匹配(如 cztv.com → 浙江)
  • IP 前缀库匹配(预先解析的 37 个 IP 段)
  • 覆盖 130+ 域名映射

🖥️ 界面预览

42011780659684.webp

0d501780659927.webp

b34a1780660009.webp

cf711780660018.webp

导航

简洁的四页导航布局:

页面 功能
直播源探索 在线搜索直播源、实时日志、结果导出
直播源检测 批量连通性检测、评分筛选、状态统计
源管理 统一管理所有频道、搜索/筛选/批量操作
设置 白名单管理、爬虫参数、检测参数配置

主要操作流程

1️⃣ 探索 → 2️⃣ 检测 → 3️⃣ 导出

🚀 快速开始

下载安装

从附件中下载最新版本的安装包 IPTV_Explorer_Setup_1.0.0.exe,双击安装即可使用。

从源码运行

# 克隆仓库
git clone https://github.com/yourname/iptv-explorer.git
cd iptv-explorer

# 安装依赖
npm install

# 启动开发模式
npm start

# 构建安装包
npm run build

系统要求

  • 操作系统:Windows 10/11 64位
  • 磁盘空间:安装包 135MB,解压后约 500MB(含 ffprobe 引擎)
  • 网络连接:探索功能需要互联网访问

📖 使用指南

第一步:探索直播源

  1. 打开软件,进入 直播源探索 页面
  2. 配置搜索参数:
    • 频道白名单:输入关键词过滤(如 CCTV, 卫视, 湖南
    • 来源选择:勾选要搜索的来源(iptv-org / 恩山论坛 / GitHub)
    • 并发数:控制搜索速度(建议 3-10)
  3. 点击 开始探索,实时查看日志
  4. 探索完成后,结果会显示在左侧表格中

第二步:检测直播源

  1. 点击 送入检测 将探索结果导入检测页面
  2. 或直接点击 导入文件 加载已有的播放列表
  3. 配置检测参数:
    • 并发检测数:同时检测的频道数(建议 10-20)
    • 超时时间:单次检测最大等待时间(建议 10-30秒)
    • 最低评分:仅保留评分高于此值的频道
  4. 点击 开始检测,进度条实时显示检测进度
  5. 检测完成后可查看各频道的延迟、分辨率、码率等信息

第三步:导出播放列表

支持两种导出格式:

  • TXT 格式频道名,URL(每行一个)
  • M3U 格式:标准播放列表,兼容 VLC、PotPlayer 等播放器

源管理

源管理 页面可以:

  • 浏览所有已保存的频道
  • 搜索特定频道
  • 手动添加频道(支持自定义名称和 URL)
  • 批量选中进行检测或删除
  • 导出选中频道

⚙️ 配置说明

频道过滤

配置 说明
白名单 只有名称包含白名单关键词的频道才会保留
黑名单 排除名称包含黑名单关键词的频道
内置白名单 随应用打包的 1084 个中文频道列表

爬虫设置

配置 说明
恩山论坛最大页面数 搜索的论坛页数(默认 10)
GitHub 最低 Star 数 筛选 GitHub 项目的最低星数(默认 5)

检测设置

配置 说明
默认并发数 检测阶段的并发连接数(默认 10)
默认超时时间 单次检测超时秒数(默认 10 秒)

🛠️ 技术架构

┌─────────────────────────────────────────────┐
│              Electron (主进程)                │
│  ┌─────────┐  ┌──────────┐  ┌────────────┐ │
│  │ main.js  │  │ probe.js │  │ validator  │ │
│  │ (IPC)    │  │ (ffprobe)│  │ .js (检测)  │ │
│  └─────────┘  └──────────┘  └────────────┘ │
│  ┌──────────┐  ┌──────────┐  ┌────────────┐ │
│  │database  │  │ http.js  │  │geo-location│ │
│  │ .js(持久)│  │(网络请求) │  │ .js (归属)  │ │
│  └──────────┘  └──────────┘  └────────────┘ │
├─────────────────────────────────────────────┤
│              Electron (渲染进程)              │
│  ┌──────────┐  ┌──────────┐  ┌────────────┐ │
│  │app.js    │  │index.html│  │ style.css  │ │
│  │(UI逻辑)   │  │(界面结构) │  │ (样式)     │ │
│  └──────────┘  └──────────┘  └────────────┘ │
├─────────────────────────────────────────────┤
│                preload.js                    │
│          (contextBridge 安全桥接)             │
└─────────────────────────────────────────────┘

技术栈

组件 技术
桌面框架 Electron 42
运行环境 Node.js + Chromium
流检测引擎 ffprobe(FFmpeg 套件)
网络请求 axios + cheerio(HTML 解析)
并发控制 p-limit
数据持久化 JSON 文件存储
安装程序 NSIS(Nullsoft Scriptable Install System)

核心模块

  • main.js — Electron 主进程入口,IPC 通信中枢
  • probe.js — ffprobe 包装器,负责流媒体探测与信息提取
  • validator.js — 检测引擎,两阶段验证 + 综合评分
  • database.js — 数据持久层,使用 JSON 文件存储频道和配置
  • http.js — HTTP 工具集,HEAD/GET 探测与重试逻辑
  • geo-location.js — IP 归属地识别模块
  • preload.js — 安全的进程间通信桥接
  • app.js — 渲染进程 UI 逻辑

📁 项目结构

iptv-explorer/
├── main.js                     # 主进程入口
├── preload.js                  # 预加载脚本(contextBridge)
├── package.json                # 项目配置
├── start.bat                   # 快捷启动脚本
├── sources.json                # 在线来源配置
├── bin/                        # ffprobe 引擎
│   ├── ffprobe.exe
│   ├── ffmpeg.exe
│   ├── avcodec-60.dll
│   ├── avformat-60.dll
│   └── ... (其他 DLL)
├── assets/
│   └── 全国电视节目频道列表.txt   # 内置频道白名单
├── src/
│   ├── main/
│   │   ├── main.js             # IPC 处理、窗口管理
│   │   ├── database.js         # 数据持久化
│   │   ├── probe.js            # ffprobe 探测
│   │   ├── validator.js        # 检测引擎
│   │   └── discover.js         # 搜索引擎
│   ├── renderer/
│   │   ├── app.js              # 渲染进程 UI
│   │   ├── index.html          # 界面结构
│   │   └── style.css           # 暗色主题样式
│   └── utils/
│       ├── http.js             # HTTP 工具
│       ├── geo-location.js     # IP 归属地
│       ├── geo-location.json   # 归属地映射数据
│       └── whitelist.js        # 白名单过滤器
└── build/                      # 构建输出
    └── IPTV_Explorer_Setup_1.0.0.exe

❓ 常见问题

搜索不到直播源?

  • 检查网络连接是否正常
  • 尝试增加恩山论坛的搜索页数
  • 调整频道白名单关键词,使用更宽泛的关键词
  • GitHub 来源可能需要代理访问

检测结果为空/全部离线?

  • 检查 ffprobe 引擎是否正确加载(查看日志)
  • 降低并发数,避免被服务器限流
  • 增加超时时间
  • 部分 IPTV 源有时效性,建议重新探索

安装包被杀毒软件拦截?

  • 因打包了 ffprobe 等可执行文件,部分杀毒软件可能误报
  • 请放心使用,本项目为开源软件
  • 可添加信任或从源码自行构建

如何迁移数据?

  • 数据文件位于软件安装目录下的 iptv-data.jsoniptv-config.json
  • 重装前备份这两个文件即可

📝 更新日志

v1.0.0

  • 🎉 首个正式版本
  • 🔍 多来源直播源探索(iptv-org / 恩山论坛 / GitHub)
  • ✅ 两阶段流检测引擎(HTTP + ffprobe)
  • 🎯 综合评分系统(延迟 / 分辨率 / 码率 / 编码 / 连通性)
  • 📋 内置 1084 个频道白名单
  • 🌐 IP 归属地自动识别
  • 📥 TXT / M3U 格式导出
  • ⚙️ 可自定义的过滤与检测参数
  • 📦 完整的 Windows 安装程序

🙏 致谢


⚖️ 许可声明

本项目仅供学习和研究使用。使用者应遵守当地法律法规,不得将本项目用于任何非法用途。

  • IPTV 直播源均来自公开网络资源,版权归原作者所有
  • 项目仅提供工具,不存储或分发任何受版权保护的内容
  • 如果使用本工具侵犯了您的权益,请联系我们删除相关内容

免责声明:本工具仅用于技术研究和学习目的。请勿将其用于侵犯他人权益或违反法律法规的活动。

0 0

评论区 (2)

发表评论

共有 2 条评论

avatar
北城以北深海未眠1 个月前

之前为了找稳定点的CCTV源,手动测了一下午,眼睛都快瞎了。这工具自带评分和ffprobe检测,直接省了80%的功夫,真该早点看到。

avatar
熬夜看球的老王1 个月前

这工具太实用了,之前我都是手动一个个试源,累得够呛。那个综合评分机制挺科学的,延迟和分辨率权重给得合理,省了不少筛选时间。