if (!function_exists('mhru_upload_one_link')) { function mhru_upload_one_link($link) { $results = []; if (!$link) return ['Lỗi' => 'Chưa nhập link Google Drive!']; // ====== ĐỔI API KEY CHO ĐÚNG TỪNG HOST CỦA BẠN ====== $hydrax_key = '30a7a14de65deefd9220093e5a3aa1e7'; $dood_key = '204936hck7bjv63ovp1n22'; $vidloz_key = '8Nj1xBzcPj5YRjncZQ9VevyebCqfeX84M65kIksCyN5ZOLl4koyfDEJlMbFzS9ZN'; $mix_email = 'samguku05@gmail.com'; $mix_key = 'nJZU2JaGJHMANjc7j2iz'; $streamtape_user = 'a229c764e0688fb6c248'; $streamtape_pass = 'KL0GlyRoqXT0rv1'; $netu_key = 'nJZU2JaGJHMANjc7j2iz'; // Hydrax $drive_id = mhru_get_drive_id($link); if ($hydrax_key && $drive_id) { $hydrax_api = "https://api.hydrax.net/$hydrax_key/drive/$drive_id"; $hydrax_res = @file_get_contents($hydrax_api); $hydrax_json = json_decode($hydrax_res, true); $results['Hydrax'] = isset($hydrax_json['slug']) ? 'https://hydrax.net/watch/' . $hydrax_json['slug'] : (isset($hydrax_json['msg']) ? $hydrax_json['msg'] : 'Lỗi hoặc thiếu API KEY'); } else { $results['Hydrax'] = 'Lỗi hoặc thiếu Drive ID!'; } // Doodstream if ($dood_key) { $dood_api = "https://doodapi.com/api/upload/url?key=$dood_key&url=" . urlencode($link); $dood_res = @file_get_contents($dood_api); $dood_json = json_decode($dood_res, true); $results['Doodstream'] = isset($dood_json['result']['filecode']) ? 'https://doodstream.com/e/' . $dood_json['result']['filecode'] : (isset($dood_json['msg']) ? $dood_json['msg'] : 'Lỗi hoặc thiếu API KEY'); } // Vidl0z if ($vidloz_key) { $vidloz_api = "https://vidloz.com/api/remote_upload?key=$vidloz_key&url=" . urlencode($link); $vidloz_res = @file_get_contents($vidloz_api); $vidloz_json = json_decode($vidloz_res, true); $results['Vidl0z'] = isset($vidloz_json['result']['file_code']) ? 'https://vidloz.com/v/' . $vidloz_json['result']['file_code'] : (isset($vidloz_json['msg']) ? $vidloz_json['msg'] : 'Lỗi hoặc thiếu API KEY'); } // Mixdrop if ($mix_key && $mix_email) { $mixdrop_error = ''; $tmp_file = mhru_download_drive_file($link, $mixdrop_error); if ($tmp_file) { $url = 'https://ul.mixdrop.ag/api'; $cfile = class_exists('CURLFile') ? new CURLFile($tmp_file) : '@' . $tmp_file; $post = [ 'email' => $mix_email, 'key' => $mix_key, 'file' => $cfile ]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 900); $result = curl_exec($ch); curl_close($ch); @unlink($tmp_file); $json = json_decode($result, true); $results['Mixdrop'] = isset($json['result']['url']) ? $json['result']['url'] : ($json['msg'] ?? 'Upload lỗi!'); } else { $results['Mixdrop'] = $mixdrop_error; } } // Streamtape if ($streamtape_user && $streamtape_pass) { $st_api = "https://api.streamtape.com/file/remote_upload?login=$streamtape_user&key=$streamtape_pass&url=" . urlencode($link); $st_res = @file_get_contents($st_api); $st_json = json_decode($st_res, true); $results['Streamtape'] = isset($st_json['result']['id']) ? 'ID: ' . $st_json['result']['id'] . ' (Kiểm tra trạng thái/đợi hoàn tất)' : (isset($st_json['msg']) ? $st_json['msg'] : 'Lỗi hoặc thiếu API KEY'); } // Netu if ($netu_key) { $netu_api = "https://apiv2.netu.tv/upload/url?key=$netu_key&url=" . urlencode($link); $netu_res = @file_get_contents($netu_api); $netu_json = json_decode($netu_res, true); $results['Netu'] = isset($netu_json['result']['filecode']) ? 'https://netu.tv/view/' . $netu_json['result']['filecode'] : (isset($netu_json['msg']) ? $netu_json['msg'] : 'Lỗi hoặc thiếu API KEY'); } return $results; } } add_action('wp_ajax_mhru_upload_one_link', 'mhru_upload_one_link_ajax'); add_action('wp_ajax_nopriv_mhru_upload_one_link', 'mhru_upload_one_link_ajax'); function mhru_upload_one_link_ajax() { $link = isset($_POST['video_drive']) ? trim($_POST['video_drive']) : ''; $results = mhru_upload_one_link($link); wp_send_json($results); }