Update:
小白或者不想折腾的用户可以直接使用 http://ip:port/itv_proxy.m3u 订阅,无需 nginx 或者 dns 配置,流量全部经过 pixman 代理,这种方式建议运行在家中内网设备上。
下面的方法需要一些动手能力,根据你的情况来选择。
中国移动 iTV 平台目前可用的直播系列有以下几种:
对应的 m3u8 域名为: gslbserv.itv.cmvideo.cn,访问后会 302 跳转到 cache.ott.{CHANNEL_ID}.itv.cmvideo.cn 这样的域名。
而 cache.ott 开头的这个域名在非移动网络下会被解析到 1.1.1.1 这个 cloudflare 的 dns 服务 ip,所以无法访问,但是我们可以手动将这个域名映射到移动网络下响应的 CDN 节点 ip,然而这样带来的一个新问题就是 ip 可能会变动,当很多人使用同一个 ip 可能会导致此 CDN 节点负载太高。
所以我这边购买了 dnsany.com 这个域名,定时同步中国移动 ott 域名在全国各个大区的 CDN 列表,按照大区分区域解析,用户只需要将域名映射到 dnsany.com 这个域名上,就可以一劳永逸地观看 iTV 平台直播,也不用担心 ip 失效。
声明: 禁止将 dnsany.com 域名使用在其他项目中,否则将停止解析。

目前 pixman/pixman 镜像已内置我整理过的 iTV 可用频道列表 (去掉了购物频道、低于 1080p、重复质量的频道),如果你有更高质量的 id 或者其他频道,可以在评论区回复,我将更新到镜像内置源里。
对于播放设备来说,需要将 iTV ott 的域名指向 dnsany.com 对应的域名,比较方便的方式是使用代理软件,因为系统默认的 hosts 格式必须是 ip 地址 {TAB} 域名 的形式,一般不会支持 域名 {TAB} 域名 这种别名的方式。除了使用代理软件,还有一些其他方式,我也列在帖子后面。
映射域名后,订阅链接就是 http://ip:port/itv.m3u,pixman 不会代理 ts 请求。
根据你实际情况来选择,如果下面没有列出某个软件,你可以在评论区回复我配置方式。
Ps: 不管任何代理软件,都需要将 dnsany.com 和 cmvideo.cn 这两个主域名列入直连分流,比如
DOMAIN-SUFFIX,cmvideo.cn,DIRECT
DOMAIN-SUFFIX,dnsany.com,DIRECT
文档: https://manual.nssurge.com/dns/local-dns-mapping.html
[Host]
cache.ott.ystenlive.itv.cmvideo.cn = pixman.io.ystenlive.dnsany.com
cache.ott.bestlive.itv.cmvideo.cn = pixman.io.bestlive.dnsany.com
cache.ott.wasulive.itv.cmvideo.cn = pixman.io.wasulive.dnsany.com
cache.ott.fifalive.itv.cmvideo.cn = pixman.io.fifalive.dnsany.com
cache.ott.hnbblive.itv.cmvideo.cn = pixman.io.hnbblive.dnsany.com
文档: https://wiki.metacubex.one/config/dns/hosts/
# 开启 TCP 并发连接可使用延迟最低的 CDN 节点
tcp-concurrent: true
use-hosts: true
hosts:
cache.ott.ystenlive.itv.cmvideo.cn: pixman.io.ystenlive.dnsany.com
cache.ott.bestlive.itv.cmvideo.cn: pixman.io.bestlive.dnsany.com
cache.ott.wasulive.itv.cmvideo.cn: pixman.io.wasulive.dnsany.com
cache.ott.fifalive.itv.cmvideo.cn: pixman.io.fifalive.dnsany.com
cache.ott.hnbblive.itv.cmvideo.cn: pixman.io.hnbblive.dnsany.com
APP 首页底部配置页面,Hosts,新增 Host 映射,类型选择 本地值,域名填写 cache.ott.ystenlive.itv.cmvideo.cn,本地值填写 pixman.io.ystenlive.dnsany.com,保存,然后再次新增映射,总共五个域名都要映射一下,对应关系参考上面 Clash Meta 的配置
[dns]
alias = /cache.ott.ystenlive.itv.cmvideo.cn/pixman.io.ystenlive.dnsany.com
alias = /cache.ott.bestlive.itv.cmvideo.cn/pixman.io.bestlive.dnsany.com
alias = /cache.ott.wasulive.itv.cmvideo.cn/pixman.io.wasulive.dnsany.com
alias = /cache.ott.fifalive.itv.cmvideo.cn/pixman.io.fifalive.dnsany.com
alias = /cache.ott.hnbblive.itv.cmvideo.cn/pixman.io.hnbblive.dnsany.com
如果以上代理软件的方法全部不能使用,那可以直接将 IP 写入 Hosts 文件,最好是每个域名都找一个 ip 映射,命令类似
$ ping pixman.io.ystenlive.dnsany.com
从响应的 ip 里随便选一个,然后修改 Hosts 文件类似:
1.1.1.1 cache.ott.ystenlive.itv.cmvideo.cn
2.2.2.2 cache.ott.bestlive.itv.cmvideo.cn
3.3.3.3 cache.ott.wasulive.itv.cmvideo.cn
4.4.4.4 cache.ott.fifalive.itv.cmvideo.cn
5.5.5.5 cache.ott.hnbblive.itv.cmvideo.cn
这个方法有个缺点,就是 ip 可能会变化,如果一个 CDN ip 失效了,那只能修改 Hosts 为新的 ip
同时此方法也可用于非 Clash Meta 内核的 Clash 代理软件,配置文件类似:
hosts:
cache.ott.ystenlive.itv.cmvideo.cn: 1.1.1.1
cache.ott.bestlive.itv.cmvideo.cn: 2.2.2.2
cache.ott.wasulive.itv.cmvideo.cn: 3.3.3.3
cache.ott.fifalive.itv.cmvideo.cn: 4.4.4.4
cache.ott.hnbblive.itv.cmvideo.cn: 5.5.5.5
以上就是三网通用的播放移动 iTV 平台的方法,Enjoy it ~

感谢Coding大佬!修改hosts的确非常方便!iOS端的代理软件非常容易操作,但Windows 11稍微复杂了些(v2rayN设置没有效果),最后是直接修改系统hosts解决问题了,最后让ChatGPT写了个脚本,每天自动ping一次,获取结果。如何哪天播放不了了(希望IP不要更换太频繁,哈~),再次修改一次hosts。 再次感谢大佬造福大众的项目!
我在server 2022的wsl2里部署的docker,因为宿主机平时要挂PT,没有开代理,拉取镜像时用的这个:docker stop pixman && docker rm pixman && docker rmi dockerproxy.cn/pixman/pixman && docker pull dockerproxy.cn/pixman/pixman && docker run -d --name=pixman --restart=always -p 5050:5000 -e http_proxy=http://10.0.1.1:7890 -e https_proxy=http://10.0.1.1:7890 dockerproxy.cn/pixman/pixman 10.0.1.1上有shellcrash代理软件,我现在在mac电脑上能看,但是在iphone上就看不了,这是怎么回事? 还有就是,要正常收看itv的话,是docker所在宿主机还有播放终端都得同时开代理么,还是只要镜像运行起来,在播放设备里有代理环境即可?
播放设备上第二种不行呢,是不是下次拉取镜像时去掉 -e http_proxy=http://10.0.1.1:7890 -e https_proxy=http://10.0.1.1:7890这两行也没影响?
update:去掉之后重新拉取镜像,几个设备上用方案二都可以了。
大佬 镜像拉取失败 Error response from daemon: Get "https://registry-1.docker.io/v2/:" read tcp 198.18.0.1:46294->198.18.0.6:443: read: connection reset by peer
不论是江苏移动线路或是江苏电信线路用代理,其中的中国移动itv(itv.m3u)都没办法播放。只能用itv_proxy.m3u才可以播放。
itv 支持 24 小时回放,希望能补上啦。 回放参数是
index.m3u8?channel-id=bestzb&Contentid=5000000004000002226&livemode=4&stbId=4&starttime=20241011T184900.00Z&endtime=20241011T190000.00Z
一般播放器检测到 TVOD 字段的话,就会请求类似于 playseek=20241011184900-20241011190000 的回放 URL。
我的环境是主路由没开梯子。局域网建立AdGuard Home服务器,用DNS 重写功能。看itv的设备dns设成AdGuard Home服务器的ip。即可观看itv。 感谢大佬的项目。