首頁 後端開發 php教程 解析获取优酷视频真实下载地址的PHP源代码_php技巧

解析获取优酷视频真实下载地址的PHP源代码_php技巧

May 17, 2016 am 08:58 AM
優酷視頻 獲取

复制代码 代码如下:

//--调用方法/demo.php?url=http://v.youku.com/v_show/id_XMzkyODA2NTEy.html
echo getYoukuFlv($_GET['url']);

function getYoukuFlv($url){
    preg_match("#id_(.*?)\.html#",$url,$out);
    $id=$out[1];
    $content=get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/'.$id);
    $data=json_decode($content);
    foreach($data->data[0]->streamfileids AS $k=>$v){
    $sid=getSid();
    $fileid=getfileid($v,$data->data[0]->seed);
    $one=($data->data[0]->segs->$k);
    if($k == 'flv' || $k == 'mp4') return "http://f.youku.com/player/getFlvPath/sid/{$sid}_00/st/{$k}/fileid/{$fileid}?K={$one[0]->k}";
    continue;
    }

function get_curl_contents($url, $second = 5){
    if(!function_exists('curl_init')) die('php.ini未开启php_curl.dll');
    $c = curl_init();
    curl_setopt($c,CURLOPT_URL,$url);
    $UserAgent=$_SERVER['HTTP_USER_AGENT'];
    curl_setopt($c,CURLOPT_USERAGENT,$UserAgent);
    curl_setopt($c,CURLOPT_HEADER,0);
    curl_setopt($c,CURLOPT_TIMEOUT,$second);
    curl_setopt($c,CURLOPT_RETURNTRANSFER, true);
    $cnt = curl_exec($c);
    $cnt=mb_check_encoding($cnt,'utf-8')?iconv('gbk','utf-8//IGNORE',$cnt):$cnt; //字符编码转换
    curl_close($c);
    return $cnt;
}
function getSid() {
    $sid = time().(rand(0,9000)+10000);
    return $sid;
}
function getkey($key1,$key2){
    $a = hexdec($key1);
    $b = $a ^ 0xA55AA5A5;
    $b = dechex($b);
    return $key2.$b;
}
function getfileid($fileId,$seed) {
    $mixed = getMixString($seed);
    $ids = explode("*",$fileId);
    unset($ids[count($ids)-1]);
    $realId = "";
    for ($i=0;$i     $idx = $ids[$i];
    $realId .= substr($mixed,$idx,1);
    }
    return $realId;
}
function getMixString($seed) {
    $mixed = "";
    $source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890";
    $len = strlen($source);
    for($i=0;$i    $seed = ($seed * 211 + 30031) % 65536;
    $index = ($seed / 65536 * strlen($source));
    $c = substr($source,$index,1);
    $mixed .= $c;
    $source = str_replace($c, "",$source);
    }
    return $mixed;
}
?>
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
優酷影片怎麼取消連續包月 優酷影片怎麼取消連續包月 Mar 20, 2024 pm 03:07 PM

取消優酷影片連續包月可透過以下步驟進行:進入個人中心,點擊“會員中心”和“自動續費”,再選擇“取消自動續費”即可完成取消操作。系統會提示取消成功,會員到期後不再扣除費用。

如何在Python中取得檔案副檔名? 如何在Python中取得檔案副檔名? Sep 08, 2023 pm 01:53 PM

Python中的檔案副檔名是附加在檔案名稱末尾的後綴,用來表示檔案的格式或類型。它通常由三個或四個字元組成,檔案名稱後面跟著一個句點,例如“.txt”或“.py”。作業系統和程式利用檔案副檔名來確定檔案的類型以及應如何處理它。被識別為純文字檔案。 Python中的檔案副檔名在讀取或寫入檔案時至關重要,因為它建立了檔案格式以及讀取和寫入資料的最佳方法。例如,「.csv」檔案副檔名是讀取CSV檔案時使用的副檔名,而csv模組則用於處理該檔案。 Python中取得檔案副檔名的演算法在Python中操作檔名字串來

優酷會員可以登入幾個設備 優酷會員可以登入幾個設備 Mar 20, 2024 pm 02:48 PM

優酷會員最多可登入 5 個設備,但同一時間只能在 2 台設備上觀看。若超過設備上限,會員權益將暫時無法使用。因此,使用者需控制登入設備數量不超過 5 台,以免被其他設備擠下線。

優酷連續包月怎麼關閉自動續費 優酷連續包月怎麼關閉自動續費 Mar 20, 2024 pm 03:00 PM

優酷連續包月自動續費關閉教程:打開優酷App,進入個人中心,點擊“會員中心”和“自動續費”,然後點擊右上角的“取消自動續費”按鈕,再選擇“是”即可取消自動續費。

谷歌安全碼在哪裡獲取 谷歌安全碼在哪裡獲取 Mar 30, 2024 am 11:11 AM

谷歌驗證器是一種用於保護使用者帳戶安全的工具,其金鑰是用於產生動態驗證碼的重要資訊。如果忘記了谷歌驗證器的金鑰,只能透過安全碼進行驗證,那麼下文站小編就會為大家帶來谷歌安全碼在哪裡取得的詳細內容介紹,希望能幫助到大家,想要了解的用戶們就請跟著下文繼閱讀吧!首先開啟手機設置,進入設定頁面。下拉頁面,找到Google。進入Google頁面,點選Google帳號。進入帳號頁面,點選驗證碼下方的檢視。輸入密碼或使用指紋驗證身分。取得Google安全碼,利用安全碼驗證Google身分。

優酷影片可以登入幾個設備 優酷影片可以登入幾個設備 Mar 22, 2024 pm 01:45 PM

優酷影片的同一VIP帳號最多可在5個裝置上登錄,但同一時間只能在2台裝置上同時觀看。若同時有第3台設備觀看,VIP權益將暫時失效。用戶需控制登入設備數量不超過5台,否則其他設備將被擠下線。

garena怎麼改頭像 Garena怎麼修改頭像 方法教程 garena怎麼改頭像 Garena怎麼修改頭像 方法教程 Sep 21, 2024 pm 03:20 PM

Garena怎麼修改頭像?其實很簡單,下面我來帶給大家Garena怎麼修改頭像的方法教學。首先我們打開軟體,然後選擇上方的頭像框,進行點擊,在彈出來的下拉框中,選擇更改頭像。此時會彈出來我們可選的頭像框,這裡可以選擇我們喜歡的頭像。接下來我們選擇下方的儲存,即可儲存頭像。如果我們想要設定自訂頭像,可以在頭像設定視窗中點擊上傳,然後選擇載入頭像,然後選擇我們想要設定的圖片。當我們上傳完畢後,點選儲存就可以修改頭像了。

如何在Java中取得LinkedHashSet的最後一個元素? 如何在Java中取得LinkedHashSet的最後一個元素? Aug 27, 2023 pm 08:45 PM

從Java中的LinkedHashSet中檢索最後一個元素意味著檢索其集合中的最後一個元素。儘管Java沒有內建方法來幫助檢索LinkedHashSets中的最後一個項,但存在多種有效的技術,可以提供靈活性和便利性,有效地檢索此最後一個元素而不破壞插入順序-這是Java開發人員必須在其應用程式中有效處理的問題。透過將這些策略有效地應用於他們的軟體專案中,他們可以實現滿足此要求的最佳解決方案LinkedHashSetLinkedHashSet是Java中的一種高效資料結構,它結合了HashSet和

See all articles