至于现在还能不能用不知道自行测试
虾米播放器转json,仅供学习用途
优化了一处字符串转hex(其实也可以固定字符串),修改的目的是更好理解原理
接口地址如下:地址/?v=
以下是部分代码
<?php
error_reporting(0);
header('Content-type: text/json;charset=utf-8');
$v = $_GET['v'] ?? '';
if (!$v or $v == 'null') {
die ('{
"code": "400",
"success": "0",
"msg": "url为空"
}');}
$c = curl_init();
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 30);
$time = round(microtime(true)*1000);
curl_setopt($c, CURLOPT_POSTFIELDS, 'wap=0&url='.encrypt($v).'&time='.encrypt($time).'&key='.encrypt(sign(md5($time.$v))));
curl_setopt($c, CURLOPT_URL, 'https://59.153.166.174:4433/xmflv.js');
curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36');
curl_setopt($c, CURLOPT_HTTPHEADER,['origin: https://jx.xmflv.com']);
$data = json_decode(curl_exec($c));
curl_close($c);
$ip = $data->ip;
$iptime = $data->iptime;
$key = $data->aes_key;
$iv = $data->aes_iv;
$vurl = openssl_decrypt($data->url,'AES-128-CBC',$key,0,$iv);
$html = openssl_decrypt($data->html,'AES-128-CBC',$key,0,$iv);
if($html){ preg_match_all('/<div class=\"title\">(.*?)<\/div>|<div class=\"title-info\">(.*?)<\/div>/is',$html,$html2); }
if(!$vurl[0][0]){
$msg = $data->msg;
$msg = preg_replace("/<br>/i"," ",$msg);
die ('{
"code": "404",
"success": "0",
"msg": "解析失败",
"Server_msg": "'.$msg.'"
}');}
$vurl = preg_replace("/name=XMFLV&/i","",$vurl);
die(json_encode(["code" => 200,"success" => 1,"msg" => "解析成功","ip" => $ip,"iptime" => $iptime,"url" => $vurl,"name" => $html2[1][0] ,"synopsis" => $html2[2][1],"header" => ["origin" => "https://jx.xmflv.com"]],JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES));
function encrypt($input) {
$charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";
$randomIndex = mt_rand(0, 64);
$randomChar = $charset[$randomIndex];
$fullHash = md5(bin2hex('TG:XMFLV') . $randomChar);
$hashStart = $randomIndex % 8;
$hashSubstr = substr($fullHash, $hashStart, $hashStart + 7);
$base64Data = strtr(base64_encode($input), '+/', '-_');
$encrypted = '';
$hashPointer = 0;
for ($i = 0; $i < strlen($base64Data); $i++) {
if ($hashPointer >= strlen($hashSubstr)) $hashPointer = 0;
$originalChar = $base64Data[$i];
$originalPos = strpos($charset, $originalChar);
$hashValue = ord($hashSubstr[$hashPointer]);
$newPos = ($randomIndex + $originalPos + $hashValue) % 64;
$encrypted .= $charset[$newPos];
$hashPointer++;
}
return generateSignedHex(encodeURI($randomChar . $encrypted));
}
}

不错不错,很详细!
教程不错!
https://cccimg.com/view.php/60d24926ca7a812d3962afc7b73f284b.jpg
这个链接是付款后的截图,带有北京时间
从新下载即可
dfsfsdtryrt
测试订单撒旦撒神丢
输入方式地方
发顺丰大苏打