楼主大大,这边需要批量下载视频需要用到 你给的 FIDDLER JS发送给 M3U8下载器的方法,目前研究了你的脚本,自己改了 确实可以发成功,但是你写的配置格式实在看不懂,所以来请假。先说明情况,目前 下载了M3U8 鼠标拖到 下载器,然后再拖KEY进去提示识别16位自动设置位KEY,每一次都是第一次下载失败,第二次拖进去就可以下载。
脚本我是这样改的 [Java] 纯文本查看 复制代码 static function upm3u8(index1: int,index2: int,data1: String,data2: String) {
FiddlerObject.log("upm3u8:"+data1);
FiddlerObject.log("upkey:"+data2);
var Content: byte[] = System.Text.Encoding.UTF8.GetBytes('{"type":2,"data":"#KEY,'+data2+'\r\n'+'#NKEY'+ index1 + ',' + data1 +'"}');
var oRQH: HTTPRequestHeaders = new HTTPRequestHeaders("/", ['Host: 127.0.0.1:8787','Content-Length: '+Content.length.ToString(), 'Content-Type: application/json;charset=utf-8']);
oRQH.HTTPMethod = "POST";
var oSD = new System.Collections.Specialized.StringDictionary();
var newSession = FiddlerApplication.oProxy.SendRequestAndWait(oRQH, Content, oSD, null);
var second_res = newSession.GetResponseBodyAsString();
FiddlerApplication.Log.LogString(second_res);
}
static function OnBeforeRequest(oSession: Session) {
//拦截m3u8并推送
//var gjc=".m3u8";
var gjc="3.m3u8?pid";
if(oSession.fullUrl.IndexOf(gjc)!=-1 && oSession.fullUrl!=downm3u8){
downm3u8=oSession.fullUrl
m3u8name =oSession.id
FiddlerObject.log("getUrl:"+oSession.fullUrl);
oSession.url="";
}
var gjc1="key?token";
if(oSession.fullUrl.IndexOf(gjc1)!=-1 && oSession.fullUrl!=downkey){
downkey=oSession.fullUrl.replace("playsafe/v1102/", "")
keyname =oSession.id
FiddlerObject.log("m3u8url:"+downm3u8);
FiddlerObject.log("keyurl:"+downkey);
upm3u8(m3u8name,keyname,downm3u8,downkey);
oSession.url="";
}
然后目前问题是 您的软件配置是如下?:
#KEY,data2
#NKEY
testm3u8,data
这样么?按这个弄了 然后软件提升自定义KEY 然后 后面是M3U8 key下载失败。无法理解。不知道哪里错了 |