如何使用C#获取.mp4视频的直接URL?

我需要一些能从mp4engine中提取链接的algorythm.

Here is the example of a page I want to scrap.

在这种情况下,期望的输出将是:http://mp4engine.com:182/d/a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbte2flb4i4hrz6/.hack_Roots(配音)第001-360p.mp4页

我试图使用HtmlAgilityPack来获取播放器代码,但是它是p,a,c,k,e,d,我无法在我的C#Windows Phone 8.1项目中执行它.我想过使用Jurassic包来执行JS,但它似乎不适用于WinPhone8.1

这是我使用HAP获得的脚本:

<script type='text/javascript'>eval(function(p,d){while(c--    )if(k[c])p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c]);return p} ('15("14").13({f:"0://2.1:e/d/c/.b (a) 9 8- 7.6",12:"0://2.1/4/h.g",11:"0://2.1/i/10/z.y",x:"w",v:u,t:s,5:"0",r:"0://2.1/4/q /p",o:[{3:"n",m:"0://2.1/4/h.g"},{3:"l",k:{f:\'0://2.1:e/d/c/.b (a) 9 8- 7.6\',\'5\':\'0\'}},{3:"j"}],});',36,42,'http|com|mp4engine|type|player|provider|mp4|360p|001|Episode|dub|hack_Roots|a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbte2flb4i4hrz6||182|file|swf|jw6||download|config|html5|src|flash|modes|six|skins|skin|420|height|722|width|1484|duration|jpg|hahgl235zwv2|00000|image|flashplayer|setup|flvplayer|jwplayer'.split('|')))

我也尝试使用内置的WebView控件:

WebView wv = new WebView();
//... navigation to string and all that
var res = await wv.InvokeScriptAsync("eval",null);

不幸的是,该函数返回空字符串(res =“”)

我也搜索了我可以解码的base64字符串,但页面似乎没有.

我该怎么做才能获得视频网址?

解决方法

在< div id =“player_code”...内,最后一个< script>标记包含视频URL所在的混淆javascript代码.这个 site可以解密这段代码,结果如下所示:

jwplayer("flvplayer").setup({
    file: "http://mp4engine.com:182/d/a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbsg7asjwghgk4p/.hack_Roots (dub) Episode 001-360p.mp4",flashplayer: "http://mp4engine.com/player/jw6.swf",image: "http://mp4engine.com/i/00000/hahgl235zwv2.jpg",duration: "1484",width: 722,height: 420,provider: "http",skin: "http://mp4engine.com/player/skins/six",modes: [{
        type: "flash",src: "http://mp4engine.com/player/jw6.swf"
    },{
        type: "html5",config: {
            file: 'http://mp4engine.com:182/d/a2chmyndcqqgkpskitclvbgu5pgwxve2vmlrdsctpwbsg7asjwghgk4p/.hack_Roots (dub) Episode 001-360p.mp4','provider': 'http'
        }
    },{
        type: "download"
    }],});

如您所见,file:包含视频URL.因此,在您的C#代码中,您可以下载该页面HTML代码,查找最后一个< script>在< div id =“player_code”中标记...并使用同一网站上列出的C# port对其进行取消混淆.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...