开发文档 / Developer Reference

FongMi /TV
开发完全指南

涵盖直播订阅(TXT / M3U / JSON)、点播站点(JAR / JS / Python Spider)、配置文件结构,以及 Spider 编写完整教程。

Based on FongMi/TV · 2026
直播配置
📺 直播订阅格式

TXT(#genre#)· M3U / M3U8 · JSON 直播格式 · EPG 节目单 · 多线路 · DRM 加密 · 最佳实践

点播配置
🎬 点播站点配置

sites[] 字段详解 · type 类型 · Vod 对象格式 · 播放信息 · Filter 筛选系统 · parses[] 解析器 · 全局网络字段

Spider 编写
🕷️ Spider 编写指南

JAR(Java/Kotlin) · JS(QuickJS) · Python(Chaquopy) · 全方法接口参考 · req / pd / pdfh 工具函数 · 调试技巧

01

项目概览与架构

FongMi/TV 是一个面向 Android TV 与手机的开源影视 + 直播平台。它本身不内置任何资源,所有内容来自外部「接口」(配置文件 JSON)。直播功能由 ExoPlayer(Media3) + FFmpeg 软解 驱动,支持自动硬解 → 软解降级;点播功能由动态加载的 Spider 驱动,支持 JAR / JS / Python 三种运行时。

技术栈一览

模块 技术 说明
播放器 ExoPlayer (Media3) 硬解 / 软解自动切换
软解 FFmpeg 处理特殊编码流(HEVC / AV1 等)
DRM Widevine / PlayReady / ClearKey 支持 #KODIPROP 声明与 JSON drm 字段
EPG XMLTV (.xml / .gz) 每 6 小时自动刷新,tvg-id 精确匹配
本地服务 NanoHTTPD 端口 9978–9998,供 Spider proxy() 使用
JAR Spider Android DexClassLoader 动态加载 classes.dex,运行 Java/Kotlin Spider
JS Spider QuickJS(ES2020+) 内置 req / pd / pdfh / CryptoJS / cheerio
Python Spider Chaquopy (Python 3) 支持 requests / BeautifulSoup / lxml

配置文件加载流程

02

主配置文件骨架

无论是直播还是点播,入口都是唯一一个主配置 JSON 文件。以下是包含所有顶层字段的最小可用骨架:

JSON config.json — 顶层骨架(直播 + 点播 + 解析器)
{
  // ── 全局 Spider 包(所有 type=3/1/2 站点默认使用)
  "spider": "https://cdn.example.com/spider.jar",

  // ── 点播站点列表 → 详见"点播配置"页
  "sites": [
    {
      "key": "demo", "name": "演示站",
      "type": 3, "api": "csp_Demo"
    }
  ],

  // ── 直播源列表 → 详见"直播配置"页
  "lives": [
    {
      "name": "默认直播",
      "url":  "https://cdn.example.com/live.m3u",
      "epg":  "https://epg.example.com/e.xml"
    }
  ],

  // ── 解析器列表 → 详见"点播配置"页 parses[] 章节
  "parses": [
    { "name": "通用解析", "type": 1, "url": "https://jx.example.com/?url=" }
  ],

  // ── 触发解析器的 URL 关键词
  "flags": ["youku.com", "iqiyi.com", "bilibili.com"],

  // ── 广告 URL 黑名单关键词
  "ads": ["ad.example.com"],

  // ── URL 重写规则
  "rules": [{ "regex": "\\bhttp://", "replace": "https://" }],

  // ── 全局 EPG
  "epg": "https://epg.example.com/all.xml",

  // ── 壁纸 / 公告
  "wallpaper": "https://cdn.example.com/bg.jpg",
  "notice":    "2026-01-01 更新"
}
ℹ️ Depot 聚合壳
也可以提供一个 Depot JSON(含 "urls":[{name,url}...] ),App 会让用户从中选择,或聚合多个子配置——这是"壳"的常用分发方式。