# 广播电台 / 电视 / 播客 开放平台接入方案备忘录

> 最后更新：2026-05-08 | 用途：U-Desk 生态链接 — 音频流媒体模块可行性评估

---

## 一、平台总览对比

| 平台 | 类型 | 费用 | 中文内容 | 桌面端适配 | 合规性 | 接入难度 | 评级 |
|------|------|------|----------|------------|--------|----------|------|
| **Radio Browser API** | 国际电台 | 免费 | 中 | 极高(RESTful) | 高 | 极低 | **A** |
| **Apple iTunes Search API** | 播客索引 | 免费 | 高 | 极高(HTTP) | 高 | 低 | **A-** |
| **喜马拉雅开放平台** | 国内音频 | 商务合作 | 极高 | 中低(Web嵌入) | 高 | 高 | B- |
| **蜻蜓FM开放平台** | 国内音频 | 商务合作 | 极高 | 低 | 高 | 高 | C+ |
| **CCTV 嵌入** | 电视 | 不定 | 极高 | 中 | 中风险 | 中 | C- |
| **TuneIn API** | 国际电台 | 不开放 | 低 | 无 | - | - | D |
| **荔枝FM / 云听** | 国内音频 | 无API | 高 | 无 | - | - | D |
| **IPTV/电视直播** | 电视 | 无合法方案 | 极高 | 无 | - | - | D |

---

## 二、Radio Browser API（强烈推荐 ⭐⭐⭐）

### 基本信息
- **官网**：https://www.radio-browser.info
- **API 地址**：https://api.radio-browser.info
- **协议**：开源项目（GitLab），可自由用于免费和商业软件
- **版本**：v0.7.44（2026-05-08 验证：API 在线，`/json/stats` 端点可能已迁移，但核心 station 接口正常）
- **当前规模**：27,000+ 可用电台 / 80+ 国家 / 59+ 语言
- **验证状态**：✅ **已验证在线** — `de1.api.radio-browser.info/json/stations/topclick` 返回实时数据（2026-05-08 15:26 UTC）

### 核心能力

#### 列表类接口
| 接口 | 说明 |
|------|------|
| `/json/countries` | 按国家列出电台 |
| `/json/codecs` | 编码格式列表 (MP3/AAC+/OGG) |
| `/json/states` | 按州/省列出 |
| `/json/languages` | 语言列表 (含 ISO 639 代码) |
| `/json/tags` | 标签/流派列表 (jazz/pop/rock/news) |
| `/json/stations` | 全部电台列表 |

#### 搜索类接口
| 接口 | 说明 |
|------|------|
| `/json/stations/search` | **高级搜索**：name/country/language/tag/codec/bitrate/geo 多维度组合查询 |
| `/json/stations/byname/{term}` | 按名称搜索 |
| `/json/stations/bycountry/{code}` | 按国家搜索 (`CN`=中国) |
| `/json/stations/bylanguage/{lang}` | 按语言搜索 (`chinese`) |
| `/json/stations/bytag/{tag}` | 按标签搜索 |

#### 排行类接口
| 接口 | 说明 |
|------|------|
| `/json/stations/topclick` | 最热门电台 |
| `/json/stations/topvote` | 最高评分电台 |
| `/json/stations/lastclick` | 最近被点击的 |

#### 交互类接口
| 接口 | 说明 |
|------|------|
| `/json/url/{uuid}` | 点击计数 + 获取播放 URL |
| `/json/vote/{uuid}` | 为电台投票 |
| `/json/add` | 添加新电台到数据库 |

#### 运维类接口
| 接口 | 说明 |
|------|------|
| `/json/stats` | 服务器统计 |
| `/json/servers` | 镜像服务器列表（可自建） |
| `/json/config` | 服务器配置 |

### 数据结构关键字段
```json
{
    "stationuuid": "唯一ID",
    "name": "电台名称",
    "url": "原始流地址",
    "url_resolved": "已解析的直接播放URL ← 核心字段",
    "homepage": "电台主页",
    "favicon": "图标",
    "tags": ["标签"],
    "countrycode": "CN",
    "language": "chinese",
    "codec": "MP3",
    "bitrate": 128,
    "lastcheckok": true,
    "clickcount": 24小时点击量
}
```

### 输出格式
JSON / XML / CSV / M3U / PLS / XSPF / TTL（7种！）

### U-Desk 集成方式
```
Go 后端 → HTTP GET radio-browser API → JSON → Vue 展示电台列表
                                              ↓ 点击播放
                                    url_resolved 字段 = 直接可播放的 MP3/AAC 流
```

- **Go 有现成库**：`goradios`
- **零成本、零审核、零依赖**
- 工作量估算：2-3天（含 UI）

### 特别优势
- 支持按 `countrycode=CN` 筛选中文电台
- 用户可添加自定义电台（`/json/add`）
- 可自建镜像服务器（完全自主可控）
- 支持 M3U/PLS 导出（兼容各类播放器）

---

## 三、Apple iTunes Search API — 播客发现（推荐 ⭐⭐⭐）

### 基本信息
- **文档**：https://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api/ （⚠️ 国内访问可能超时，需翻墙；API 端点本身通常可达）
- **API 端点**：`https://itunes.apple.com/search` 和 `https://itunes.apple.com/lookup`
- **费用**：免费（速率限制约 20次/分钟）

### 核心能力

#### 搜索参数
| 参数 | 说明 | 示例 |
|------|------|------|
| `term` | 搜索关键词 | `news`, `故事`, `科技` |
| `media` | 媒体类型 | `podcast` |
| `entity` | 实体类型 | `podcast`, `podcastAuthor` |
| `country` | 国家代码 | `cn` |
| `limit` | 返回数量 | 25 |

#### 使用示例
```
# 搜索中文新闻播客
GET https://itunes.apple.com/search?term=news&country=cn&media=podcast&limit=25

# 搜索特定作者
GET https://itunes.apple.com/search?term=故事&entity=podcastAuthor&country=cn
```

#### 返回数据关键字段
```json
{
    "collectionName": "播客名称",
    "artistName": "作者",
    "feedUrl": "RSS订阅地址 ← 核心：获取音频的入口",
    "artworkUrl60": "小封面",
    "artworkUrl100": "大封面",
    "releaseDate": "发布日期",
    "primaryGenreName": "分类"
}
```

### 播放流程
```
iTunes Search API → 获取 feedUrl (RSS)
                    ↓
              解析 RSS XML → 提取 episode 列表
                              ↓
                        enclosure URL → 音频播放
```

### U-Desk 集成方式
1. Go 后端调用 Search API → 获取播客列表和 RSS 地址
2. 解析 RSS XML 提取 episode 音频 URL
3. 前端播放器播放音频流
4. 实现 20次/分钟速率限制的客户端缓存

### 中文播客覆盖
- iTunes Podcast 目录包含大量中文播客（大陆/台湾/香港创作者）
- 覆盖新闻/故事/科技/商业/教育等各领域

### 工作量估算：3-4天（含 RSS 解析逻辑）

---

## 四、喜马拉雅开放平台（备选 ⭐⭐）

### 基本信息
- **官网**：https://open.ximalaya.com/
- **定位**：国内最大音频分享平台（纽交所上市）
- **商务热线**：(021)50179077-8806 / -8803

### 核心能力
- 音频内容分发 SDK/API
- 支持移动应用、智能硬件、车载、网页/小程序接入
- 内容类型：有声书、课程、播客、相声评书、新闻资讯、亲子儿童、景点导览
- AI 制作专区

### 接入方式
| 方式 | 说明 |
|------|------|
| 移动应用 SDK | Android/iOS/Flutter |
| 智能硬件 SDK | IoT 设备 |
| **网页/小程序 JS SDK** | ← U-Desk 的可行路径 |

### 费用模式
- **商务合作模式**，需"立即入驻"申请后商谈
- 通常为分成或流量付费模式
- 有运营中心（内容中心/数据中心/活动中心）

### U-Desk 适配路径
通过 Wails WebView 加载喜马拉雅 H5/JS SDK 播放器
- 技术层面工作量：1-2天
- 商务层面周期不确定（需审批）

### 注意事项
- 开发者文档页面部分返回 404，生态维护程度一般
- 但"网页/小程序"接入通道确实存在

---

## 五、蜻蜓FM开放平台（低优先级）

### 基本信息
- **官网**：https://open.qingting.fm
- 能力：SDK/API/H5嵌入式播放器
- 内容：直播流、点播、有声书、相声评书、全国电台

### 问题
- 主要面向 B 端大客户（车企、智能硬件厂商）
- 对独立桌面应用开发者门槛较高
- 文档需入驻后才可查看完整内容
- Windows 桌面端无原生支持

### 结论：优先级低于喜马拉雅

---

## 六、电视/IPTV（当前不可行）

### CCTV 央视网
- **无公开开发者 API**
- 可能存在 iframe 嵌入方案（灰色地带）
- 版权严格管控，合规风险高
- 评级：C-（仅作为外部链接实验）

### 各省市 IPTV
- 三大运营商分别运营，无统一 API
- 专有传输协议（IGMP/RTP/RTSP），需专用机顶盒
- **完全不存在合法的桌面端接入途径**
- 评级：D

### EPG 数据源（国际参考）
- [epg-guide.com](https://epg-guide.com)：免费 EPG 数据，XMLTV 格式
- 仅覆盖欧洲（意大利为主），不支持中文电视台
- 技术成熟但无中文内容，参考价值有限

### 结论：**电视模块暂不纳入 MVP**

---

## 七、荔枝FM / 云听

| 平台 | 状态 | 原因 |
|------|------|------|
| 荔枝FM (lizhi.fm) | ❌ 无公开 API | 官网无 developer/open 入口 |
| 云听 (yunting.fm) | ❌ 服务不稳定 | 访问时 500 错误，且无 API |

---

## 八、最终推荐组合方案

### 第一优先级（MVP 即可上线）

| 平台 | 用途 | 工作量 | 成本 |
|------|------|--------|------|
| **Radio Browser API** | 全球网络电台收听 | 2-3天 | 免费 |
| **iTunes Search API** | 播客发现与播放 | 3-4天 | 免费 |

### 第二优先级（后续迭代）

| 平台 | 用途 | 工作量 | 前置条件 |
|------|------|--------|----------|
| **喜马拉雅 Web 嵌入** | 国内有声书/课程 | 1-2天技术 + 商务周期 | 商务合作审批 |
| **央视网链接** | 电视直播快捷入口 | 0.5天 | 关注版权政策 |

### 不推荐
- ~~TuneIn~~ — 不开放第三方 API
- ~~IPTV/电视直播~~ — 无合法接入途径
- ~~荔枝FM/云听~~ — 无可用 API

---

## 九、U-Desk 广播/播客模块架构建议

```
U-Desk 生态链接 - 音频流媒体模块
├── RadioService (Go)
│   ├── StationSearch()     → Radio Browser /stations/search
│   ├── TopStations()       → /stations/topclick
│   ├── StationsByCountry() → /stations/bycountry/CN
│   ├── StationsByTag()     → /stations/bytag/{tag}
│   └── PlayStation()       → /json/url/{uuid} → url_resolved 直播流
│
├── PodcastService (Go)
│   ├── SearchPodcasts()    → iTunes Search API (media=podcast)
│   ├── GetPodcastDetail()  → iTunes Lookup API
│   ├── ParseFeed()         → RSS XML → episode 列表
│   └── PlayEpisode()       → enclosure URL → 音频播放
│
├── AudioPlayer (Vue Component)
│   ├── RadioPanel.vue      → 电台浏览/搜索/播放/收藏
│   ├── PodcastPanel.vue    → 播客发现/订阅/播放/下载
│   └── MiniPlayer.vue      -> 底部栏迷你播放器
│
└── QuickLinks (Vue)
    └── LinkCard.vue        → 央视网/喜马拉雅等外部链接卡片
```

### 与文件管理器的融合点
- 浏览文件时底部迷你播放器持续播放电台/播客
- 收藏夹统一管理（收藏的电台/播客/文件混合展示）
- 右键菜单："搜索相关播客内容"

---

## 十、合规要点总结

| 平台 | 合规要求 |
|------|---------|
| Radio Browser | 开源协议友好，商用无限制，仅需合理 User-Agent |
| iTunes API | 遵守 Apple 使用条款（速率限制 + 展示要求） |
| 喜马拉雅 | 必须走正式商务流程，签订合作协议 |
| 央视网 | 以外部链接方式最安全，避免深度集成 |

---

*Sources:*
- *Radio Browser: https://www.radio-browser.info / https://api.radio-browser.info*
- *iTunes Search API: https://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api/*
- *喜马拉雅开放平台: https://open.ximalaya.com/*
- *蜻蜓FM开放平台: https://open.qingting.fm*
- *EPG Guide: https://epg-guide.com*
