第一步:获取需要提取的页面地址
例如:https://app.mediatrack.cn/reviews/1543832988196802560/1543832495462551552?inviteid=78QGrenJy
第二步:提测试该页面取视频播放或下载地址
第三步:把解析地址推送给播放器
上述地址只是范例,需要该网站次类型页面都可生效
针对这个网站,需要在本站做代理,通过post请求接口获取m3u8的网址,然后需要请求m3u8网址,将授权的url和视频ts的url全部修改为本站的代理就可以实现播放了。效果如下
跨域是无法操作 iframe里面的元素的, 如果一定要这样,可以加一层 nginx代理别人的网站 同域放到iframe 就可以操作了
iframe加载的都是外部的了啊,监控不了啊
跨域的确实无法操作的,你是要那视频播放么?你可以想办法调用他的视频地址呀
别人的网站???能改代码不?能改的话可以用postMessage + onmessage
需要开一个静态代理
<html class="html">
<head>
<title>test</title>
<style>
.body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
.html {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
.d01 {
width: 100%;
height: 17%;
position: absolute;
top: 0%;
bottom: '';
left: '';
right: '';
margin: 0 auto;
background-color: #0e0f14;
}
</style>
</head>
<body class="body">
<iframe id="myframe"
src="https://app.mediatrack.cn/reviews/1543832988196802560/1543832495462551552?inviteid=78QGrenJy"
style="width:100%;height:100%" frameborder="no" marginwidth="0" marginheight="0" scrolling="no"
allowtransparency="yes">
</iframe>
<div id=d01 class="d01"></div>
<script>
var el = document.getElementById('myframe');
window.onload = function () {
console.log('加载成功')
document.onkeydown = function (e) {
if (e.keyCode == 13) {
console.log('按下了')
FullScreen(el)
}
}
}
// /进入全屏
function FullScreen(ele) {
if (ele.requestFullscreen) {
ele.requestFullscreen();
} else if (ele.mozRequestFullScreen) {
ele.mozRequestFullScreen();
} else if (ele.webkitRequestFullScreen) {
ele.webkitRequestFullScreen();
}
}
</script>
</html>
需要后端做代理。
目前抓到的获取地址接口在POST https://jayce.api.mediatrack.cn/v3/public/reviews/视频[id],但是有限定CORS,前端无法直接访问。
幸运的是里面隐藏了一个mp4。
js没有权限获取别人网页内容,安全性考虑。建议php
目前看你的需求
是需要获取一个url,然后播放出来
或许可以尝试JS调用后端REST API接口 + nginx反向代理的形式来解决
1、js调用一个后端的REST API接口,Python或者其他语言 直接node.js也行,
接口的作用在与解析这个url网址,然后获取到里面的内容
2、另外,nginx反向代理,
将比如/api/
的代理请求映射到另一个网站里面,防止跨域问题。
如有问题,及时沟通
浏览器插件
firefox的插件advanced video downloader有类似功能