1, 'url' => $finalUrl, 'header' => ['User-Agent' => $UA] ]); exit; } // 2. 视频详情 (detail) if (!empty($ids)) { $pathParts = explode('/', trim($ids, '/')); $realId = end($pathParts); $token = getToken($ids); $apiUrl = $HOST . "/libs/VodInfo.api.php?type=ct&id=$realId&token=$token"; $json = json_decode(fetch($apiUrl, $ids), true); $data = $json['data']; // 处理解析线路 $parsesArr = []; foreach (($data['playapi'] ?? []) as $p) { if (isset($p['url'])) { $parsesArr[] = (strpos($p['url'], '//') === 0) ? "https:" . $p['url'] : $p['url']; } } $parsesStr = implode(',', $parsesArr); $playFrom = []; $playUrls = []; foreach (($data['playinfo'] ?? []) as $site) { $playFrom[] = $site['cnsite']; $urls = []; foreach ($site['player'] as $ep) { // 将解析接口封装在 URL 后面,供 play 阶段调用 $urls[] = $ep['no'] . '$' . $ep['url'] . '@' . $parsesStr; } $playUrls[] = implode('#', $urls); } $vod = [ 'vod_id' => $ids, 'vod_name' => $data['title'], 'vod_pic' => $data['img'], 'vod_remarks' => $data['remark'], 'vod_year' => $data['year'], 'vod_area' => $data['area'], 'vod_actor' => $data['actor'], 'vod_director' => $data['director'], 'vod_content' => $data['content'] ?? '', 'vod_play_from' => implode('$$$', $playFrom), 'vod_play_url' => implode('$$$', $playUrls) ]; echo json_encode(['list' => [$vod]], JSON_UNESCAPED_UNICODE); exit; } // 3. 搜索 (search) if (!empty($wd)) { $path = '/search/' . urlencode($wd); $token = getToken($path); $apiUrl = $HOST . "/libs/VodList.api.php?search=" . urlencode($wd) . "&token=$token"; $resp = json_decode(fetch($apiUrl, $path), true); $data = mq_xor_codec($resp['data'], $KEY, true); // 搜索数据需要解密 $list = []; if (isset($data['vod_all'])) { foreach ($data['vod_all'] as $item) { foreach ($item['show'] as $v) { $list[] = [ 'vod_id' => $v['url'], 'vod_name' => $v['title'], 'vod_pic' => $v['img'], 'vod_remarks' => $v['remark'] ]; } } } echo json_encode(['list' => $list, 'page' => $pg], JSON_UNESCAPED_UNICODE); exit; } // 4. 分类列表 (category) if (!empty($t)) { $typeKey = explode('/', trim($t, '/'))[1] ?? 'movie'; $token = getToken($t); $apiUrl = $HOST . "/libs/VodList.api.php?type=$typeKey&rank=rankhot&page=$pg&token=$token"; $resp = json_decode(fetch($apiUrl, $t), true); $list = []; foreach (($resp['data'] ?? []) as $v) { $list[] = [ 'vod_id' => $v['url'], 'vod_name' => $v['title'], 'vod_pic' => $v['img'], 'vod_remarks' => $v['remark'] ]; } echo json_encode(['list' => $list, 'page' => intval($pg)], JSON_UNESCAPED_UNICODE); exit; } // 5. 首页 (homeVod) $token = getToken('/'); $apiUrl = $HOST . "/libs/VodList.api.php?home=index&token=$token"; $resp = json_decode(fetch($apiUrl), true); $list = []; if (isset($resp['data']['movie'])) { foreach ($resp['data']['movie'] as $section) { foreach ($section['show'] as $v) { $list[] = [ 'vod_id' => $v['url'], 'vod_name' => $v['title'], 'vod_pic' => $v['img'], 'vod_remarks' => $v['remark'] ]; } } } echo json_encode([ 'class' => [ ['type_id' => '/type/movie', 'type_name' => '电影'], ['type_id' => '/type/tv', 'type_name' => '电视剧'], ['type_id' => '/type/va', 'type_name' => '综艺'], ['type_id' => '/type/ct', 'type_name' => '动漫'] ], 'list' => array_slice($list, 0, 30) ], JSON_UNESCAPED_UNICODE);