首页 > 解决方案 > 如何使用 jwplayer 获取在线流媒体视频的源 url

问题描述

我一直在努力获取该视频的流媒体源。

https://vidnode.net/streaming.php?id=MTU3MjM2&title=Hostiles&typesub=SUB&sub_es=true&sub=L2hvc3RpbGVzL2hvc3RpbGVzLnZ0dA==

它正在使用 jwplayer,我可以通过 chrome 开发人员工具查看它的源代码。

https://video.xx.fbcdn.net/v/t42.9040-2/10000000_187709758618199_5004280148501987328_n.mp4?_nc_cat=0&efg=eyJybHIiOjE1MDAsInJsYSI6NDA5NiwidmVuY29kZV90YWciOiJzdmVfaGQifQ%3D%3D&rl=1500&vabr=571&oh=0bdc32a88a81edb15ea8470c6dc1b9fd&oe=5B00DA98

但是有什么方法可以让我通过 php 以编程方式抓取并获取它?任何帮助将不胜感激。

标签: phpcurlweb-scrapingvideo-streamingjwplayer

解决方案


视频的来源就在页面的 HTML 中,在以下script部分:

    <div id="myVideo"></div>
    <script type="text/JavaScript">
        var playerInstance = jwplayer("myVideo");
        var countplayer = 1;
        var countcheck = 0;
        playerInstance.setup({
            sources:[{file: 'https://video.xx.fbcdn.net/v/t42.9040-2/10000000_187709758618199_5004280148501987328_n.mp4?_nc_cat=0&efg=eyJybHIiOjE1MDAsInJsYSI6NDA5NiwidmVuY29kZV90YWciOiJzdmVfaGQifQ%3D%3D&rl=1500&vabr=571&oh=0bdc32a88a81edb15ea8470c6dc1b9fd&oe=5B00DA98',label: 'auto P','type' : 'mp4'}],

您只需file要从第一个sources数组中获取值。

preg_match("/sources:\[{file:\ '(.*?)'/s", $html, $match);
echo($match[1]);

给出了寻求的结果:

https://video.xx.fbcdn.net/v/t42.9040-2/10000000_187709758618199_5004280148501987328_n.mp4?_nc_cat=0&efg=eyJybHIiOjE1MDAsInJsYSI6NDA5NiwidmVuY29kZV90YWciOiJzdmVfaGQifQ%3D%3D&rl=1500&vabr=571&oh=0bdc32a88a81edb15ea8470c6dc1b9fd&oe=5B00DA98

推荐阅读