PHP嗅探youku视频的真实flv文件地址!
认识几个做视频网站的站长他们的视频电影都是来自于我们国内的几大视频网站了,有一站长要我帮助它做一个可以自动测试出youku视频网站的flv真实地址,下面我整理了一下午解决了此问题非常的不错,大家可参考一下。
这个是借力打力,只是抓去朋友网的内容!!!
不过相当好用哦!
看代码:
<?php $videourl = 'http://v.youku.com/v_show/id_XMjA5MjQ0OTQ0.html'; function get_content($url, $data) { if (is_array($data)) { $data = http_build_query($data, '', '&'); } $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('http://share.pengyou.com/json.php?mod=usershare&act=geturlinfo', array( 'url' => $videourl )); $str = json_decode($str); var_dump($str); ?>
这个测试出来的只是swf文件并不是我们要的flv文件了,后来参考一站长的写法进行了改进
核心代码:
<?php function fetch_youku_flv($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 < 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; } ?>
调用方法:
<?php $url = 'http://v.youku.com/v_show/id_XMzg2OTQ3MjQw.html'; echo fetch_youku_flv($url); ?>
访问: 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
这个是可以直接下载的!!
教程链接:
随意转载~但请保留教程地址★

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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).

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.

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

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=[

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

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

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.

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
