基於 CatVod 的開源 Android 影音應用程式,同時支援 Android TV 大螢幕與手機兩種使用情境,並且透過外部配置靈活擴展內容。
| 項目 | 值 |
|---|---|
| package | com.fongmi.android.tv |
| minSdk | 24(Android 7.0 Nougat) |
| abi | arm64-v8a、armeabi-v7a |
| flavor | leanback(電視版)、mobile(手機版) |
TV/
├── app/ 主應用程式(含兩套 UI Flavor)
├── catvod/ 爬蟲抽象層(Spider 介面、OkHttp 網路棧)
├── quickjs/ QuickJS JavaScript 引擎
├── chaquo/ Chaquopy Python 引擎
app/src/main/ 為兩個版本共用的業務邏輯,app/src/leanback/ 與 app/src/mobile/ 各自實作對應 UI。
- 核心:ExoPlayer(Media3)+ FFmpeg 軟解,硬解 / 軟解自動降級切換
- 渲染:SurfaceView / TextureView
- DRM:Widevine、PlayReady、ClearKey,支援
#KODIPROP宣告 - 彈幕:DanmakuFlameMaster,與播放時間軸精確同步,支援遠端推送
- 字幕:SRT / SSA / ASS 外掛字幕、系統 CaptioningManager、遠端即時注入
- 其他:倍速、多縮放比例、畫中畫(PiP)、背景音訊、片頭 / 片尾自動跳過
- 多站點分類瀏覽,Filter 篩選(年份 / 地區 / 類型等)
- 多站點並行搜尋,關鍵字自動繁轉簡提升相容性
- 播放失敗自動換源:解析器 → 線路 → 搜尋其他站 → 下一站點
- 觀看記錄(保留 60 天)、收藏、無痕模式
- 電視版使用遙控器操作;手機版支援手勢(亮度 / 音量 / 進度)、上下滑切集、螢幕旋轉與鎖定
- 支援 M3U、TXT(
#genre#分組)、JSON 三種直播源格式 - EPG:XMLTV 格式(支援
.gz),每 6 小時自動刷新 - 追看 / 時移:
append、pltv等多種類型 - 頻道收藏、隱藏分組密碼保護
- 特殊引擎:TVBus、ForceTech
支援三種語言撰寫爬蟲:
- Java JAR(DexClassLoader)
- JavaScript(QuickJS)
- Python(Chaquopy)
透過 api 欄位指定爬蟲,ext 欄位傳入初始化參數。完整 API 規格見 SPIDER.md。
- DoH:DNS over HTTPS,支援 Bootstrap IP
- 代理:HTTP / HTTPS / SOCKS4 / SOCKS5,依 host 正則規則動態選擇
- Hosts:DNS 解析覆蓋,支援萬用字元
* - CORS 注入:依 host 規則在回應中注入自訂標頭
- 廣告攔截:
ads黑名單,符合域名直接攔截 - WebView 嗅探:Sniffer 以 regex 攔截媒體 URL;支援 UA 偽裝
- DMC(投放端):手機版,掃描區域網路 DLNA 設備並投放媒體
- DMR(被投放端):電視版,作為 DLNA Renderer 接收其他設備投放
使用 Cling 2.1.1(UPnP),支援 play / pause / stop / seek 控制。
應用啟動後綁定本地 HTTP 伺服器(NanoHTTPD),埠號從 9978 起自動偵測至 9998,可用於播放控制、推送字幕 / 彈幕、多裝置同步等。完整端點說明見 LOCAL.md。
Vod 配置為應用主要入口,透過 URL 或本地路徑載入,頂層欄位定義:
- 點播站點(
sites)、解析規則(parses) - 直播來源(
lives) - 網路設定(
doh、proxy、hosts、ads)
Live 配置可內嵌或獨立存放。完整欄位說明見 CONFIG.md。
| 文件 | 說明 |
|---|---|
| CONFIG.md | Vod / Live 完整配置欄位說明 |
| SPIDER.md | Spider 所有方法規格與回傳格式 |
| LOCAL.md | 本地 HTTP API 所有端點完整說明 |
| LIVE.md | 直播來源格式完整說明 |