Update:
现已在 Docker 支持: https://pixman.io/topics/31
myTV SUPER 是香港的流媒体平台,注册用户可以看免费的一些频道,比如翡翠台、TVB Plus 等,如果要在 iptv 软件里播放的话,需要使用程序做一个转换,下面是使用 cloudflare workers 来代理的方法,这个代码也支持付费频道,但是需要你自己开通了会员。
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request))
})
const api_token = '你的 TOKEN';
async function get_mytvsuper(channel) {
const headers = {
'Accept': 'application/json',
'Authorization': `Bearer ${api_token}`,
'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
'Host': 'user-api.mytvsuper.com',
'Origin': 'https://www.mytvsuper.com',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5.2 Safari/605.1.15',
'Referer': 'https://www.mytvsuper.com/',
'X-Forwarded-For': '210.6.4.148',
}
const params = new URLSearchParams();
params.append('platform', 'android_tv');
params.append('network_code', channel);
const response = await fetch(`https://user-api.mytvsuper.com/v1/channel/checkout?${params}`, { headers });
if (response.status != 200) {
return null;
}
const json = await response.json();
const profiles = json.profiles || [];
let play_url = '';
for (let i of profiles) {
if (i.quality === 'high') {
play_url = i.streaming_path;
break;
}
}
if (!play_url) {
return null;
}
return play_url.split('&p=')[0];
}
async function handleRequest(request) {
const url = new URL(request.url);
const path = url.pathname.split('/');
const id = path.pop();
const redirect_url = await get_mytvsuper(id) || 'https://nolive.livednow.com/nolive.m3u8';
let cacheControl = 'public, max-age=10'
if (redirect_url !== 'https://nolive.livednow.com/nolive.m3u8') {
cacheControl = 'public, max-age=43200'
}
const response = new Response(null, {
status: 302,
headers: {
Location: redirect_url,
'Cache-Control': cacheControl,
},
});
return response;
}
播放链接类似:https://DOMAIN/{ID},例如翡翠台 4k: https://DOMAIN/JUHD
完整的 m3u 文件可以访问 https://assets.livednow.com/m3u/mytvsuper.m3u 获取,注意将里边的 https://mytvsuper.livednow.com 替换成你自己的域名。
登录 myTV SUPER 官网后,打开开发者工具 - Network,过滤 https://www.mytvsuper.com/api/auth/getSession/self/ 这个 api 的请求,查看 Response 中的 token 字段,如下图

我有一个点不理解:本机浏览器 无代理访问 worker经历以下步骤: 1.worker服务器发出获取节目源请求 2.获取到的源url(也就是代码的redirect_url)以重定向响应返回给浏览器
这时候浏览器会以没挂代理的状态去请求这个redirect_url,那没挂代理肯定访问不通呀。所以我测试的结果也是一定要挂梯子才能看得了。 我不太理解为什么大家可以呢....
那不就和免代理的想法背道而驰了吗。我是由于挂梯子看电视会耗费很多流量。
但是本地能直连worker,而worker又能访问得了外网,所以理论上应该是能够完全不够挂梯子的。我琢磨琢磨
播放url返回给你的东西应该是302跳转,worker服务器没有给你做反代,所以等于你本地是直连播放url,ban了国区正好能活得久
感谢大佬,但是用o11推流失败了
[autorestart in 29s]
Error: Get "http://hk4-edge27-1.edgeware.tvb.com:80/session/6510cb52-4289-11ef-bd05-00505692d62f/__cl/slocalr21/__c/ott_J_hevc/__op/cenc_m/__f/index.mpd?token=59b8exxxxxxx:" EOF
显示这个问题,请问知道什么原因吗?
"interactive_channels": [
{
"network_code": "C2",
"channel_no": "83II",
"name_tc": "互動窗2",
"name_en": "Interactive Window 2"
},
{
"network_code": "C3",
"channel_no": "83I",
"name_tc": "互動窗1",
"name_en": "Interactive Window 1"
}
],
增加C2和C3频道,license 怎么获取的
我尝试从https://wv.drm.tvb.com/wvproxy/mlicense?contentid=ott_J_h264 来获取license,但是是一堆乱码,
......4...Q..R.P..u..-U.....Q..R.P..u..-U.... .(.8[email protected]............. .(.0.p.x..V..Z...]x.AM.3([email protected].3..F#.....Q..P2.....uu..Y..][email protected]2..S.i..#..{...=..l ..P..'G.7$.L..q ._..L..fe.;hZ$Eh.R.q.Q....Rw..~pcA.../.S. .(.B...kc16....' ......b. .....2$d457c65f-95c1-430d-8ebf-5be588dc3bfe8.P.. `{.R.E....g.Wv. ].).......K.X=.."..e.Vz4.......y4.9.....G.;[email protected]]...UA..;T.."[.eP.T0..r.....s...m..?y...nb...fS]C'..z.:.m9......=.Q.u...'.-R.:2.019.0.5 Built on Jun 5 2024 15:13:38 (1717625618)@user1' ....r....L.......^...@............................................................................................................+..*.mm+u...>.y.t..=3..`..u!`..GX.
这个怎么转换成license
需要香港的原生ip才行,在https://www.mytvsuper.com/api/auth/getSession/self/中, 地区显示的是HK,才可以
"country_code": "HK",
当你正确获取到token之后,就可以不用代理观看了
你好,感谢分享文章。成功搭建起来
但是关于获取完整的 m3u 文件 我看文章:完整的 m3u 文件可以访问 https://assets.livednow.com/m3u/mytvsuper.m3u 获取
我输入https://mydomain.com/m3u/mytvsuper.m3u
无法获取到。 请问怎么获取完整列表~ 我输入https://mydomain.com/J 是能播放到翡翠台的。