denobisipsis / adownloader

Automatically exported from code.google.com/p/atresdownloader
32 stars 16 forks source link

This method doesn't seem to work on the movie channel? #92

Open banxiaduhuo opened 7 years ago

banxiaduhuo commented 7 years ago

I combined the http://data.video.qiyi.com/videos with "l" in json, and got a video clip ~6 minutes. But when I tried it on the movie channel, it returned an error:405 Not Allowed, nginx/1.9.4. "l" in json like this: "scrsz": "1280x688", "fs": [ { "b": 30322151, "msz": 1756, "d": 192075, "s": 0, "l": "/v0/20170328/47/55/066a38eb99ac7aebfecd3df878ace9fe.f4v ...", "e": 0 }, { }, ... ]

banxiaduhuo commented 7 years ago

It seems VIP movies doesn't work. The url captured using Chrome has more parameters:

&t=1491482401_9c61bf746dfaf294095184abd60cd136&cid=afbe8fd3d73448c9&ib=3&ptime=360000&ibt=7dd3aac7160b1c63ad3e4f4e08e83df0&vid=c271893476cf527c25f1a057da0ae550&QY00001=12345678&qyid=fbxnjcizo4pmzv2gjhkuqxikltxvcx4h&qypid=589265100_11&pv=0.1&ran=271

&ran can be deleted directly &t、&ibt、&qypid seems need to calculate. Do you know how to calculate?

denobisipsis commented 7 years ago

vipdata. If you have a valid vip account i cant test it

$qdsc=extrae($link,'&qd_sc','=','&');
$qd_ip=extrae($link,'&qd_ip','=','&');
$qd_scc=extrae($link,'&qd_scc','=','&');
$qd_tm=extrae($link,'&qd_tm','=','&');
$qd_k=extrae($link,'&qd_k','=','&');

$call="http://api.vip.iqiyi.com/services/cknsp.action"; $post="qd%5Findex=1&platform=01010021010010000000&deviceId=&qd%5Fuid=0&version=3%2E0&tvid=$tvid&qd%5Fsc=$qdsc&filename=$rid&qd%5Fip=$qd_ip&qd%5Fvip=0&shareFlag=0&qd%5Fstert=0&playType=main&qd%5Fvipdyn=2&qd%5Fvipres=2&qd%5Fscc=$qd_scc&uid=&qd%5Fsrc=01010031010010000000&qd%5Faid=$tvid&qd%5Ftm=$qd_tm&qd%5Fk=$qd_k&aid=$tvid&qd%5Ftvid=$tvid";

                    $vipdata=json_decode(curl($call,$prox,$url,$headers,0,$post));

                    $t=$vipdata->data->t;

                    if ($t) 
                        {                                           
                        $ptime=$vipdata->data->ptime;

                        $last="&t=$t&cid=afbe8fd3d73448c9&ib=4&ptime=$ptime&ibt=";              

                        $ibt=$computevf->getvf($t.$rid);

                        $last.=$ibt;
                        $cookie="QY00001=".$vipdata->data->u;

                        $last.="&$cookie";
                                                    }
banxiaduhuo commented 7 years ago

@denobisipsis OK, thank you very much, I will try~

ckz1211 commented 7 years ago

@denobisipsis
I use your code: $ibt=$computevf->getvf($t.$rid); with my VIP cookie, but it still 405 Not Allowed Are you sure that code about ibt is OK?

denobisipsis commented 7 years ago

Without vip account i get the free chunks from vip streams with this ibt. But i need an account to be sure.

ckz1211 commented 7 years ago

$ibt=$computevf->getvf($t.$rid); As I understood, $t=1492089836_98dea2a4713e235a3d397e6e6c1b4242;// from curl_post $rid=8d8f95a850747e3575f978055e518c92;//I think it is filename. $ibt=$computevf->getvf(1492089836_98dea2a4713e235a3d397e6e6c1b42428d8f95a850747e3575f978055e518c92); but b6b7cb36c771a6eae553fb6f68b22745 is not right. Such as http://data.video.qiyi.com/videos/v0/20170412/48/f3/8d8f95a850747e3575f978055e518c92.hml?qd_tvid=650156600&qd_vipres=2&qd_index=1&qd_aid=206296001&qd_stert=0&qd_scc=238cc37e1726c6349c2dd9d63aa099e4&qd_sc=501df1ca74900aa376a992736f8774c1&qd_ip=75b52be4&qd_k=3b75b067b3eadfe6cc3476a384c7b09d&qd_src=01010031010000000000&qd_vipdyn=2&qd_uid=1405568913&qd_tm=1492089836211&qd_vip=1&t=1492089836_98dea2a4713e235a3d397e6e6c1b4242&cid=afbe8fd3d73448c9&ib=3&ptime=0&ibt=b6b7cb36c771a6eae553fb6f68b22745&vid=817f468215350eebe531b6dcac25236b&QY00001=1405568913&ran=383&qyid=bd8bc673310c53f8009303968074cfae&qypid=650156600_11&pv=0.1

denobisipsis commented 7 years ago

ok, you need to change &ib=3 to 4.

But give me a valid account and i will check it!

ckz1211 commented 7 years ago

@denobisipsis Thank you! It works! Since the original browser use ib=3 , I used ib=3 too... About the VIP account, I will mail to you. Your mail is?

denobisipsis commented 7 years ago

Thank you! Use froheweihnachten2014@gmail.com

Daniel-Yen commented 7 years ago

I got the final link and it's such as

{"t":"CMNET|GuangDong-120.230..","httpsock":"1","h":"-463","l":"http://117.148.174.135/20170808/a0/e2/13e9b6f7286b87cfe6bf42ceca47a366.f4v?key=084091618bb165e60a21ce4f5a21038db&dis_k=006d20696317a02e9b04df2d74024aa91&dis_t=1502851301&dis_dz=CMNET-GuangDong&dis_st=42&src=iqiyi.com&uuid=78e6b4c1-5993b0e5-f0&qd_ip=78e6b4c1&ibt=bf56820a5555ec2d4afbf63ff7a33707&qd_uid=0&qd_tm=1502851298673&qd_vipdyn=2&ptime=360000&QY00001=1023108576&qd_tvid=678278900&qd_stert=0&qd_p=78e6b4c1&qd_k=6cf3d8452d9931d3db8d7079b87bd08b&cid=afbe8fd3d73448c9&qd_index=1&qd_vip=0&qd_src=01010031010000000000&ib=4&qd_vipres=2&qd_aid=678278900","z":"hangzhou7_cmnet"}

When I visit the "l",

http://117.148.174.135/20170808/a0/e2/13e9b6f7286b87cfe6bf42ceca47a366.f4v?key=084091618bb165e60a21ce4f5a21038db&dis_k=006d20696317a02e9b04df2d74024aa91&dis_t=1502851301&dis_dz=CMNET-GuangDong&dis_st=42&src=iqiyi.com&uuid=78e6b4c1-5993b0e5-f0&qd_ip=78e6b4c1&ibt=bf56820a5555ec2d4afbf63ff7a33707&qd_uid=0&qd_tm=1502851298673&qd_vipdyn=2&ptime=360000&QY00001=1023108576&qd_tvid=678278900&qd_stert=0&qd_p=78e6b4c1&qd_k=6cf3d8452d9931d3db8d7079b87bd08b&cid=afbe8fd3d73448c9&qd_index=1&qd_vip=0&qd_src=01010031010000000000&ib=4&qd_vipres=2&qd_aid=678278900

It reponse "502 error",It seems doesn't work,Am I right?

And can I get the final m3u8 link? @denobisipsis

denobisipsis commented 7 years ago

without account i cannot verify it. Anyway post the url of the video

Daniel-Yen commented 7 years ago

Maybe I ignore the "curl($call,$prox,$url,$headers,0,$post)" before, I use the code like this:

    $post = "qd%5Findex=1&platform=01010021010010000000&deviceId=&qd%5Fuid=0&version=3%2E0&tvid=$tvid&qd%5Fsc=$qdsc&filename=$rid&qd%5Fip=$qd_ip&qd%5Fvip=0&shareFlag=0&qd%5Fstert=0&playType=main&qd%5Fvipdyn=2&qd%5Fvipres=2&qd%5Fscc=$qd_scc&uid=&qd%5Fsrc=01010031010010000000&qd%5Faid=$tvid&qd%5Ftm=$qd_tm&qd%5Fk=$qd_k&aid=$tvid&qd%5Ftvid=$tvid";

    $call="http://api.vip.iqiyi.com/services/cknsp.action";

    $vipdata = $this->httprequest($call, $post, true);`

$call: url $post: post data true: decode json or not

Must I need to put the $headers and other else parameters into the httprequest()? What the parameters mean in the "curl($call,$prox,$url,$headers,0,$post)"?

PS: I had send the VIP account info to your gmail.

denobisipsis commented 7 years ago

ok.

the call should be

$call="http://api.vip.iqiyi.com/services/cknsp.action?aid=$tvid&cid=afbe8fd3d73448c9&qdScc=$qd_scc&deviceId=&playType=&platform=01012001020000000000&version=3.0&P00001=$P00001&tvid=$tvid&qdVipres=2&filename=$rid&qdIndex=$qd_index&uid=$uid&qd_tvid=$tvid&qd_vipres=2&qd_index=$qd_index&qd_aid=$tvid&qd_stert=$qd_stert&qd_scc=$qd_scc&qd_sc=$qdsc&qd_p=$qd_ip&qd_ip=$qd_ip&qd_k=$qd_k&qd_src=1702633101b340d8917a69cf8a4b8c7c&qd_vipdyn=2&qd_uid=$uid&qd_tm=$qd_tm&qd_vip=1&shareFlag=0";

foreach part foreach quality.

You need to fill $uid and $P00001, codes which easily you found sniffing iqiyi web with debugger. With these codes there is no need to make the process of login.

also

$qdsc=extrae($link,'&qd_sc','=','&'); $qd_ip=extrae($link,'&qd_ip','=','&'); $qd_scc=extrae($link,'&qd_scc','=','&'); $qd_tm=extrae($link,'&qd_tm','=','&'); $qd_k=extrae($link,'&qd_k','=','&'); $qd_index=extrae($link,'&qd_index','=','&'); $qd_stert=extrae($link,'&qd_stert','=','&');

compute ibt as

$ibt=md5($t.$rid."t6hrq6k0n6n6k6qdh6tje6wpb62v7654");

denobisipsis commented 7 years ago

Trying http://www.iqiyi.com/v_19rr6ym2ek.html?fc=87bbded392d221f5

i get

Qual 1920x816 has 23 parts and 1.18GB Qual 1184x504 has 12 parts and 315.79MB Qual 504x216 has 12 parts and 78.76MB Qual 848x360 has 12 parts and 208.11MB Qual 1280x544 has 23 parts and 597.42MB Qual 3840x1632 has 23 parts and 3.05GB

Daniel-Yen commented 7 years ago

I use the code like this:

    $qdsc = $this->getStrBetweeen($link,'qd','_sc=','&');
    $qd_ip = $this->getStrBetweeen($link,'qd_ip','=','&');
    $qd_scc = $this->getStrBetweeen($link,'qd_scc','=','&');
    $qd_tm = $this->getStrBetweeen($link,'qd_tm','=','&');
    $qd_k = $this->getStrBetweeen($link,'qd_k','=','&');                        
    $qd_index = $this->getStrBetweeen($link,'qd_index','=','&');
    $qd_stert = $this->getStrBetweeen($link,'qd_stert','=','&');

    $rid = $this->getFileName($link);

    $uid = "23387*****";
    $P00001 = "a_str_from_sniffing";
    $post = "aid=$tvid&cid=afbe8fd3d73448c9&qdScc=$qd_scc&deviceId=&playType=&platform=01012001020000000000&version=3.0&P00001=$P00001&tvid=$tvid&qdVipres=2&filename=$rid&qdIndex=$qd_index&uid=$uid&qd_tvid=$tvid&qd_vipres=2&qd_index=$qd_index&qd_aid=$tvid&qd_stert=$qd_stert&qd_scc=$qd_scc&qd_sc=$qdsc&qd_p=$qd_ip&qd_ip=$qd_ip&qd_k=$qd_k&qd_src=1702633101b340d8917a69cf8a4b8c7c&qd_vipdyn=2&qd_uid=$uid&qd_tm=$qd_tm&qd_vip=1&shareFlag=0";

    $call="http://api.vip.iqiyi.com/services/cknsp.action?".$post;
    $vipdata = $this->httprequest($call, null, true);
    #print_r($vipdata);

    $t = $vipdata['data']['t'];
    $ptime = $vipdata['data']['ptime'];
    $ibt = md5($t.$rid."t6hrq6k0n6n6k6qdh6tje6wpb62v7654");

    $last = "&t=$t&cid=afbe8fd3d73448c9&ib=4&ptime=$ptime&ibt=$ibt";                         
    $cookie = "QY00001=".$vipdata['data']['u'];
    $last .= "&$cookie";

    $final_link = 'http://data.video.iqiyi.com'.$link.$last;

and I visited the final link, it response:

{"code":"D2004"}

I don't know what's wrong...

denobisipsis commented 7 years ago

take url

http://www.iqiyi.com/v_19rr6ym2ek.html?fc=87bbded392d221f5

call apicache and json_decode

http://cache.video.qiyi.com**/vms?key=fvip&src=1702633101b340d8917a69cf8a4b8c7c&tvId=694827200&vid=9edf41f3455becdb988532e0040a07b5&vinfo=1&tm=506&qyid=&puid=2338708489&authKey=edde608c46ca7560c33bcdf166480cc9&um=1&pf=b6c13e26323c537d&thdk=&thdt=&rs=1&k_tag=1&qdv=3**&vf=988dbfa0ef15d9bafa9ab9388b1b4cf7

where vf=md5($cache."u6fnp3eok0dpftcq9qbr4n9svk8tqh7u");

take

$apicache->data->vp->tkl[0]->vs[0]->fs

which are the parts of quality "3840x1632"

fs[0]->l is

/v0/20170719/31/2f/cea1d123179c1e0f4f3f1acee1ddc1e0.f4v?qd_tvid=694827200&qd_vipres=2&qd_index=1&qd_aid=694827200&qd_stert=0&qd_scc=7bf1184fe871dd8796c5e770f27a8bc9&qd_sc=8f2fcb359a080b152c976618defdcb03&qd_p=5aa46545&qd_ip=5aa46545&qd_k=988dbfa0ef15d9bafa9ab9388b1b4cf7&qd_src=1702633101b340d8917a69cf8a4b8c7c&qd_vipdyn=2&qd_uid=2338708489&qd_tm=1502952109497&qd_vip=1

Then call apiservices and json_decode

http://api.vip.iqiyi.com/services/cknsp.action?aid=694827200&cid=afbe8fd3d73448c9&qdScc=7bf1184fe871dd8796c5e770f27a8bc9&deviceId=&playType=&platform=**01012001020000000000**&version=3.0&P00001=$P00001&tvid=694827200&qdVipres=2&filename=cea1d123179c1e0f4f3f1acee1ddc1e0&qdIndex=1&uid=$uid&qd_tvid=694827200&qd_vipres=2&qd_index=1&qd_aid=694827200&qd_stert=0&qd_scc=7bf1184fe871dd8796c5e770f27a8bc9&qd_sc=7bf1184fe871dd8796c5e770f27a8bc9&qd_p=$ip&qd_ip=$ip&qd_k=988dbfa0ef15d9bafa9ab9388b1b4cf7&qd_src=**1702633101b340d8917a69cf8a4b8c7c**&qd_vipdyn=2&qd_uid=$uid&qd_tm=1502952109497&qd_vip=1&shareFlag=0

Take data->t

1502952111_3ec559035ac934706b0281e699776547

and data->ptime

and compute ibt as md5($t.$rid."t6hrq6k0n6n6k6qdh6tje6wpb62v7654");

call to obtain the link

http://data.video.qiyi.com/videos/v0/20170719/31/2f/cea1d123179c1e0f4f3f1acee1ddc1e0.f4v?qd_tvid=694827200&qd_vipres=2&qd_index=1&qd_aid=694827200&qd_stert=0&qd_scc=7bf1184fe871dd8796c5e770f27a8bc9&qd_sc=8f2fcb359a080b152c976618defdcb03&qd_p=$ip&qd_ip=$ip&qd_k=988dbfa0ef15d9bafa9ab9388b1b4cf7&qd_src=1702633101b340d8917a69cf8a4b8c7c&qd_vipdyn=2&qd_uid=$uid&qd_tm=1502952109497&qd_vip=1&t=1502952111_3ec559035ac934706b0281e699776547&cid=afbe8fd3d73448c9&ib=3&ptime=$ptime&ibt=7131fe3e916edfa176dcdebbb5b99314**&QY00001=$uid**

In the last call dont forget to add QY00001

Daniel-Yen commented 7 years ago

Wow, I got it!

I think the main reason for doesn't work are the following aspects:

1.There are two different domain: qiyi.com & iqiyi.com. 2.Call the apicache begin with "http://cache.video.qiyi.com/jp/vms", the right one is "http://cache.video.qiyi.com/vms". 3.The parameters &platform、&qd_src、&ib. 4.The last call begin with "http://data.video.qiyi.com/v0/", the right one is "http://data.video.qiyi.com/videos/v0/".

Anyway,thank you for your patience!!!!!!!!!! @denobisipsis

lki2019 commented 7 years ago

Boss, is there a direct online analysis of 271 VIP video website? My friend has a member account, would like to download 1080P or 4K video, Will the big brother how to operate, Is there an online analytical URL for finished products? Thank you