视频解析:获取视频地址并播放

第一步:获取需要提取的页面地址

例如:https://app.mediatrack.cn/reviews/1543832988196802560/1543832495462551552?inviteid=78QGrenJy

第二步:提测试该页面取视频播放或下载地址

第三步:把解析地址推送给播放器

上述地址只是范例,需要该网站次类型页面都可生效

针对这个网站,需要在本站做代理,通过post请求接口获取m3u8的网址,然后需要请求m3u8网址,将授权的url和视频ts的url全部修改为本站的代理就可以实现播放了。效果如下

img

跨域是无法操作 iframe里面的元素的, 如果一定要这样,可以加一层 nginx代理别人的网站 同域放到iframe 就可以操作了

iframe加载的都是外部的了啊,监控不了啊

跨域的确实无法操作的,你是要那视频播放么?你可以想办法调用他的视频地址呀

别人的网站???能改代码不?能改的话可以用postMessage + onmessage

需要开一个静态代理

img



<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有类似功能