Heim php教程 php手册 PHP嗅探youku视频的真实flv文件地址!

PHP嗅探youku视频的真实flv文件地址!

May 25, 2016 pm 04:44 PM
explode foreach iconv preg_match substr

认识几个做视频网站的站长他们的视频电影都是来自于我们国内的几大视频网站了,有一站长要我帮助它做一个可以自动测试出youku视频网站的flv真实地址,下面我整理了一下午解决了此问题非常的不错,大家可参考一下。

这个是借力打力,只是抓去朋友网的内容!!!

不过相当好用哦!

看代码:

<?php
$videourl = &#39;http://v.youku.com/v_show/id_XMjA5MjQ0OTQ0.html&#39;;
function get_content($url, $data) {
    if (is_array($data)) {
        $data = http_build_query($data, &#39;&#39;, &#39;&&#39;);
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $result = curl_exec($ch);
    return $result;
}
$str = get_content(&#39;http://share.pengyou.com/json.php?mod=usershare&act=geturlinfo&#39;, array(
    &#39;url&#39; => $videourl
));
$str = json_decode($str);
var_dump($str);
?>
Nach dem Login kopieren

这个测试出来的只是swf文件并不是我们要的flv文件了,后来参考一站长的写法进行了改进

核心代码:

<?php
function fetch_youku_flv($url) {
    preg_match("#id_(.*?).html#", $url, $out);
    $id = $out[1];
    $content = get_curl_contents(&#39;http://v.youku.com/player/getPlayList/VideoIDS/&#39; . $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 == &#39;flv&#39; || $k == &#39;mp4&#39;) 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(&#39;curl_init&#39;)) die(&#39;php.ini未开启php_curl.dll&#39;);
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, $url);
    $UserAgent = $_SERVER[&#39;HTTP_USER_AGENT&#39;];
    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, &#39;utf-8&#39;) ? iconv(&#39;gbk&#39;, &#39;utf-8//IGNORE&#39;, $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 < count($ids); ++$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 < $len; ++$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;
}
?>
Nach dem Login kopieren

调用方法:

<?php
$url = &#39;http://v.youku.com/v_show/id_XMzg2OTQ3MjQw.html&#39;;
echo fetch_youku_flv($url);
?>
Nach dem Login kopieren

访问: http://xiaomizhou.net/demo/flv.php?url=http://v.youku.com/v_show/id_XMzg2OTQ3MjQw.html

输出的结果是:http://f.youku.com/player/getFlvPath/sid/138035737110468_00/st/flv/fileid/03000201004F97EF4A2E350467A09DB266E872-5522-225F-DC45-40B4E1F9BE49?K=c2a4327df2bb5a65261d40ea

这个是可以直接下载的!!


教程链接:

随意转载~但请保留教程地址★

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist der Unterschied zwischen der Verwendung von foreach und iterator zum Löschen von Elementen beim Durchlaufen von Java ArrayList? Was ist der Unterschied zwischen der Verwendung von foreach und iterator zum Löschen von Elementen beim Durchlaufen von Java ArrayList? Apr 27, 2023 pm 03:40 PM

1. Der Unterschied zwischen Iterator und foreach ist der polymorphe Unterschied (die unterste Ebene von foreach ist Iterator ein Schnittstellentyp, und es ist egal, ob for und foreach der Typ bekannt ist). 1. Warum heißt es, dass die unterste Ebene von foreach der von Iterator geschriebene Code ist: 2. Der Unterschied zwischen „remove in foreach“ und „iterator“. im Alibaba Java Development Manual, aber in Fall 1 wird kein Fehler gemeldet, und in Fall 2 wird zuerst ein Fehler gemeldet (java. util.ConcurrentModificationException).

So bestimmen Sie die Anzahl der foreach-Schleifen in PHP So bestimmen Sie die Anzahl der foreach-Schleifen in PHP Jul 10, 2023 pm 02:18 PM

​Die Schritte für PHP, um die Nummer der foreach-Schleife zu bestimmen: 1. Erstellen Sie ein Array von „$fruits“; 2. Erstellen Sie eine Zählervariable „$counter“ mit einem Anfangswert von 0. 3. Verwenden Sie „foreach“, um eine Schleife durchzuführen durch das Array und Erhöhen Sie den Wert der Zählervariablen im Schleifenkörper und geben Sie dann jedes Element und seinen Index aus. 4. Geben Sie den Wert der Zählervariablen außerhalb der „foreach“-Schleife aus, um zu bestätigen, welches Element die Schleife erreicht.

Empfohlene wesentliche Funktionen für die chinesische Verarbeitung: Detaillierte Erläuterung der PHP-Iconv-Funktion Empfohlene wesentliche Funktionen für die chinesische Verarbeitung: Detaillierte Erläuterung der PHP-Iconv-Funktion Jun 27, 2023 pm 02:04 PM

Bei der Textverarbeitung ist es häufig erforderlich, Zeichenfolgen in verschiedene Kodierungsformate zu konvertieren. Die in der PHP-Sprache bereitgestellte Funktion iconv (InternationalizationConversion) kann diesen Bedarf sehr bequem erfüllen. In diesem Artikel wird die Verwendung der Funktion „iconv“ im Detail unter folgenden Aspekten vorgestellt: Definition der Funktion „iconv“ und Einführung in allgemeine Parameter. Beispieldemonstration: GBK-codierte Zeichenfolge in UTF-8-codierte Zeichenfolge konvertieren. Beispieldemonstration: UTF konvertieren

PHP gibt ein Array mit umgedrehten Schlüsseln zurück PHP gibt ein Array mit umgedrehten Schlüsseln zurück Mar 21, 2024 pm 02:10 PM

In diesem Artikel wird ausführlich erläutert, wie PHP nach dem Umdrehen eines Schlüsselwerts ein Array zurückgibt. Der Herausgeber hält dies für recht praktisch, daher teile ich es Ihnen als Referenz mit. Ich hoffe, dass Sie nach dem Lesen dieses Artikels etwas gewinnen können. PHP-Schlüsselwert-Flip Der Array-Schlüsselwert-Flip ist eine Operation für ein Array, bei der die Schlüssel und Werte im Array ausgetauscht werden, um ein neues Array mit dem ursprünglichen Schlüssel als Wert und dem ursprünglichen Wert als Schlüssel zu generieren. Implementierungsmethode In PHP können Sie das Schlüsselwert-Umdrehen eines Arrays mit den folgenden Methoden durchführen: array_flip()-Funktion: Die array_flip()-Funktion wird speziell für Schlüsselwert-Umdrehungsvorgänge verwendet. Es erhält ein Array als Argument und gibt ein neues Array mit vertauschten Schlüsseln und Werten zurück. $original_array=[

So verwenden Sie die PHP-Explosionsfunktion und beheben Fehler So verwenden Sie die PHP-Explosionsfunktion und beheben Fehler Mar 10, 2024 am 09:18 AM

Die Explosionsfunktion in PHP ist eine Funktion zum Aufteilen einer Zeichenfolge in ein Array. Sie ist sehr verbreitet und flexibel. Bei der Verwendung der Explosionsfunktion treten häufig Fehler und Probleme auf. In diesem Artikel wird die grundlegende Verwendung der Explosionsfunktion vorgestellt und einige Methoden zur Lösung der Fehlerberichte bereitgestellt. 1. Grundlegende Verwendung der Explosionsfunktion In PHP lautet die grundlegende Syntax der Explosionsfunktion wie folgt: explosion(string$separator,string$stri

PHP gibt den ASCII-Wert des ersten Zeichens der Zeichenfolge zurück PHP gibt den ASCII-Wert des ersten Zeichens der Zeichenfolge zurück Mar 21, 2024 am 11:01 AM

In diesem Artikel wird der ASCII-Wert des ersten Zeichens der von PHP zurückgegebenen Zeichenfolge ausführlich erläutert. Der Herausgeber hält dies für sehr praktisch, daher teile ich ihn als Referenz mit. PHP gibt den ASCII-Wert des ersten Zeichens einer Zeichenfolge zurück. Einführung In PHP ist das Abrufen des ASCII-Werts des ersten Zeichens einer Zeichenfolge eine gängige Operation, die grundlegende Kenntnisse der Zeichenfolgenverarbeitung und Zeichenkodierung erfordert. ASCII-Werte werden zur Darstellung des numerischen Werts von Zeichen in Computersystemen verwendet und sind für den Zeichenvergleich, die Datenübertragung und die Speicherung von entscheidender Bedeutung. Der Prozess zum Abrufen des ASCII-Werts des ersten Zeichens einer Zeichenfolge umfasst die folgenden Schritte: Abrufen der Zeichenfolge: Bestimmen Sie die Zeichenfolge, für die Sie den ASCII-Wert abrufen möchten. Es kann eine Variable oder eine String-Konstante sein

Häufige Fehler und Lösungen bei der Verwendung der Explosionsfunktion in PHP Häufige Fehler und Lösungen bei der Verwendung der Explosionsfunktion in PHP Mar 11, 2024 am 08:33 AM

Titel: Häufige Fehler und Lösungen bei der Verwendung der Explosionsfunktion in PHP In PHP ist die Explosionsfunktion eine häufige Funktion, die zum Aufteilen eines Strings in ein Array verwendet wird. Allerdings können einige häufige Fehler aufgrund unsachgemäßer Verwendung oder eines falschen Datenformats auftreten. In diesem Artikel werden die Probleme analysiert, die bei der Verwendung der Explosionsfunktion auftreten können, und Lösungen sowie spezifische Codebeispiele bereitgestellt. Fehler 1: Der Trennzeichenparameter wird nicht übergeben. Bei der Verwendung der Explosionsfunktion besteht einer der häufigsten Fehler darin, dass der Trennzeichenparameter nicht übergeben wird.

PHP gibt den String von der Startposition bis zur Endposition eines Strings in einem anderen String zurück PHP gibt den String von der Startposition bis zur Endposition eines Strings in einem anderen String zurück Mar 21, 2024 am 10:31 AM

In diesem Artikel wird ausführlich erläutert, wie PHP die Zeichenfolge von der Startposition zur Endposition einer Zeichenfolge in einer anderen Zeichenfolge zurückgibt. Der Herausgeber hält dies für recht praktisch, daher teile ich es Ihnen als Referenz mit diesem Artikel können Sie etwas abgewinnen. Verwenden Sie die Funktion substr() in PHP, um Teilzeichenfolgen aus einer Zeichenfolge zu extrahieren. Die Funktion substr() kann Zeichen innerhalb eines angegebenen Bereichs aus einer Zeichenfolge extrahieren. Die Syntax lautet wie folgt: substr(string,start,length) wobei: string: der ursprüngliche String, aus dem der Teilstring extrahiert werden soll. start: Der Index der Startposition des Teilstrings (beginnend bei 0). Länge (optional): Die Länge des Teilstrings. Wenn nicht angegeben, dann

See all articles