Revue
简体中文

指南

在 Apple TV 上看电视直播:导入 M3U 播放列表和节目单

在 Apple TV 上用 Revue 看电视直播,先在 设置 › M3U 播放列表(IPTV) › 添加 M3U 播放列表 填写播放列表地址,保存后即可加载频道。设置节目单时,在 设置 › 节目单(EPG) › 源地址 填写 XMLTV 地址。Revue 会优先按 tvg-id、再按频道名将节目匹配到对应频道。

Revue 不自带任何频道,只播放你自己添加的播放列表。请只添加你有权观看的内容。

准备

  • 搭载 tvOS 26 或更高版本的 Apple TV,并从 App Store 安装 Revue。Revue 可免费下载,提供 7 天免费试用。之后可一次性购买 Revue Pro:美区 9.99 美元,其他地区以 App Store 标价为准。
  • 一个以 http:// 或 https:// 开头的 M3U 播放列表地址。Revue 无法打开本地存储里的播放列表文件,也不支持 Xtream Codes 和 Stalker 登录。
  • 可选:一个 XMLTV 节目单地址,普通的 .xml 或 gzip 压缩的 .xml.gz 均可。

想先测试一下,可以使用我们的测试播放列表:https://revue.vastlogic.dev/playlists/demo.m3u。里面包含几条 Apple 公开的示例视频。它们是点播短片,不是电视直播,也没有节目单数据。

第一步:添加 M3U 播放列表

  1. 打开设置。若 Revue 中尚未添加任何来源,直接选择屏幕上的「设置」。若已有来源,按遥控器的返回键(旧款遥控器为 MENU 键)呼出侧栏,再选择最下方的「设置」。
  2. 选择「M3U 播放列表(IPTV)」,再选择「添加 M3U 播放列表」。
  3. 选择「地址」。在新页面中选中输入框,打开键盘,输入播放列表地址,然后选择「确定」。如果地址未写 http://,Revue 会自动补全。
  4. 可选:选择「名称」,输入一个名称。留空时 Revue 会使用文件名,例如 …/iptv.m3u 会显示为 iptv。
  5. 选择「保存」。

Revue 会把新播放列表设为当前源,并加载频道。保存时 Revue 不会检查地址能否打开。如果频道未能加载,频道页会显示「无法加载播放列表」和具体原因,排查方法见频道黑屏、卡顿、没声音怎么办。

用遥控器输入长地址通常较慢。屏幕出现键盘时,可以改用 iPhone 输入:点击 iPhone 上弹出的键盘通知,或打开控制中心里的 Apple TV 遥控器。

Revue 的「添加播放列表」页面,已填好演示播放列表地址和名称 Demo

你可以添加多个播放列表,每个播放列表在侧栏里都是一个独立的来源。开启 iCloud 同步后,你的其他 Apple TV 也会同步出现相同的播放列表。

第二步:核对频道列表

Revue 根据播放列表里的 #EXTINF 行生成频道列表:

播放列表里的内容 在 Revue 里的效果
group-title 每个分组各占一行,顺序按其在文件中首次出现的位置排列。没有分组的频道归入单独的一行。
tvg-logo 频道卡片的图标。没有图标时,卡片显示频道名的前两个字。
最后一个逗号后面的文字 频道名。此处为空时,Revue 会使用 tvg-name。
tvg-id 用于匹配节目单的键(见下文)。

一条典型的频道配置如下:

#EXTM3U
#EXTINF:-1 tvg-id="news.example" tvg-logo="https://example.com/logo/news.png" group-title="新闻",示例新闻高清
https://example.com/live/news.m3u8

Revue 只读取 tvg-id、tvg-name、tvg-logo 和 group-title 这四个属性,其他属性一律忽略,例如 catchup、user-agent 和 #EXTVLCOPT 行。只列出流地址、不带 #EXTINF 的纯地址列表也能使用,此时频道名就是地址本身。

如需重新加载播放列表,在频道列表页按遥控器的播放/暂停键。离开 App 几分钟后再返回,Revue 也会自动重新加载。

Revue 的频道列表,分三组,每张频道卡片都有台标

第三步:设置节目单(EPG)

  1. 进入 设置 › 节目单(EPG),确认「自动获取节目单」已打开。它默认是打开的。
  2. 选择「源地址」,填入 XMLTV 地址。若要添加备用地址,请用英文逗号隔开。Revue 会按顺序依次尝试,使用第一个可用地址。
  3. 选择「立即更新」。更新完成后,这一行会显示更新时间、频道数和节目数。

修改地址前,请先了解这几点:

  • Revue 不会从播放列表里读取节目单地址。 部分播放列表在第一行用 x-tvg-url 或 url-tvg 写了节目单地址,需要你手动将其复制到「源地址」中。
  • 整个 App 只有一份节目单。 所有播放列表共用它,Revue 不会把几份节目单合并起来。
  • 源地址中预填了默认地址。 默认地址不一定覆盖你的频道,可以替换为你自己的地址。若想恢复默认,把地址清空即可;也可以长按「源地址」,选择「恢复默认源」。
  • 节目单会自动更新。 当数据超过 6 小时,或者节目单里最后一个节目已经播完,Revue 会重新下载。若更新失败,Revue 会继续使用旧数据。

Revue 的「节目单(EPG)」页面:自动获取节目单、源地址和立即更新

节目单显示在哪里

打开频道或换台时,右上角会出现一个信息面板,几秒后自动隐藏。有节目单数据时,面板会显示正在播出的节目、起止时间、播出进度,以及「接下来」播出的节目。按遥控器的右键可以再次显示面板,按上下键可在当前分组内换台。

Revue 不在频道卡片上显示节目信息,也没有所有频道的完整节目表格。

Revue 播放频道时,右上角面板显示当前节目、进度条和「接下来」

Revue 如何将节目匹配到频道

Revue 按下面的顺序依次尝试匹配,命中一条就停:

  1. 频道的 tvg-id 和 XMLTV 里某个 <channel> 的 id 完全相同。
  2. 频道的 tvg-id 和某个频道的 <display-name> 相同。
  3. 频道名和某个 <display-name> 相同。
  4. 频道名去掉画质后缀后,和某个 <display-name> 相同。画质后缀包括「超高清」「高清」「超清」「标清」「蓝光」「频道」,以及 HD、FHD、UHD。

比对名称时,Revue 不区分大小写和全角半角,也会忽略空格、-、_、括号这类分隔符,但保留 +。注意第 4 步不会去掉 4K 和 8K。因此「示例新闻 高清」能匹配到「示例新闻」,但「示例 4K」匹配不到「示例」。

如果只有 tvg-name,Revue 不会用它来匹配。如果 XMLTV 里有几个频道用了同一个名字,Revue 也不会使用该名字匹配。一条都匹配不上时,该频道就不会显示节目单,Revue 不会强行匹配。

节目对不上频道时怎么排查

现象 检查方法
「立即更新」显示「尚未获取节目单」,或者更新失败 在同一网络下用浏览器打开该地址。「所有候选地址都不可用」表示 Apple TV 无法下载任何一个地址。「XMLTV 格式无法解析」或「gzip 数据损坏」表示文件不是有效的 XMLTV。
更新成功了,但某个频道没有节目单 打开 XMLTV 文件,找到该频道的 <channel>,将其 id 填入频道的 tvg-id。这是最可靠的解决办法。
节目对不上,或者时间差了几个小时 查看 XMLTV 里 start 和 stop 的时间。带时区偏移(比如 +0800)的时间会自动换算;不带偏移的,按 Apple TV 的时区解析。同时也检查一下 Apple TV 设置里的时区。
节目单过一段时间就没了 XMLTV 文件通常只覆盖几天。确认该地址会定期更新。最后一个节目播完后,Revue 会重新下载。
一个播放列表有节目单,另一个没有 所有播放列表共用一份节目单。换一份能同时覆盖两个播放列表频道的节目单。

常见问题

能从 U 盘或本地文件导入播放列表吗? 不能。Revue 只支持从 http:// 和 https:// 地址打开播放列表。你可以把文件放到局域网里的电脑或 NAS 上,使用其地址。

支持 Xtream Codes 吗? 不支持。Revue 不支持 Xtream Codes 和 Stalker 登录。如果同样的频道还提供 M3U 地址,使用 M3U 地址添加即可。

支持回看或录制吗? 不支持。Revue 会忽略播放列表里的回看属性,也不支持录制。