検索
ホームページバックエンド開発PHPチュートリアルYouku動画の絶対アドレス取得方法を詳しく解説_PHPチュートリアル

少し前に、KnLiveCommentary について勉強するために、ビデオ サイトについて一連の調査を行いました。 KnLiveCommentary はテスト用に十分なビデオ ソースを取得できる必要があるため、比較的大規模なビデオ Web サイトである Youku をテスト用に選択しました。
実際、私は Youku の内蔵プレーヤーを研究し、広告を削除するために、絶対アドレスの解決を研究し始めました。その後、ASV6 (ActionScript Viewer 6) を使用して Youku のプレーヤーを「逆コンパイル」し、驚くべき結果を達成しました。

Youkuの動画は暗号化+動的取得方式を採用しており、Webサイトにアクセスすることで動画アドレスを動的に取得し、その結果を復号化するなどの操作が必要となります。

コードをコピーします コードは次のとおりです:

$base_url = 'http://v.youku.com/player/getPlayList/VideoIDS/' //ビデオのアドレスベースアドレスを取得します。 information
$_VIDEO_ID = $ _GET['vid']; //GET からビデオ ID を抽出します
if($_VIDEO_ID=='')
$_VIDEO_ID = 'XMjY0ODE1MDA0' //テスト中に修正しました
; $ch =curl_init(); //cURL オブジェクトを開きます
curl_setopt($ch, CURLOPT_URL, $base_url . $_VIDEO_ID) //このビデオ情報のアドレスを取得します
curl_setopt($ch, CURLOPT_HEADER, 1); HEADER
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://v.youku.com/v_show/id_' . $_VIDEO_ID); //偽の「REFERER」を与える
curl_setopt ( $ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 現在のブラウザ ユーザー エージェントをサーバーに渡します
curl_setopt($ch, CURLOPT_NOBODY, 0);
$content =curl_exec($ch); ! ! !
curl_close($ch); /*以下の分析*/
preg_match('~"seed"s*:s*(d+)s*,~iUs',$content,$seed);
preg_match('~{s *”(flv|mp4)”s*:s*”(.*)”s*}~iUs',$content,$encoded);
preg_match('~”key1″s*:s*”(.* )”s*,~iUs',$content,$key1);
preg_match('~”key2″s*:s*”(.*)”s*,~iUs',$content,$key2);
//返された JSON 文字列シード、encoded_url、key1、key2 から必要な情報を抽出します
class decoder{
var $randomSeed = 0;
var $cg_str="";
function __construct($seed){
$this-> ;ランダムシード = $seed;
}
関数 ran(){
$this->ランダムシード = (($this->ランダムシード * 211)+30031)%65536;
return ($this->ランダムシード / 65536 ) ; // 古いシードに基づいて新しいシードを計算し、シードの比例位置を返します [0,1)
}
function cg_hun(){ // これは「CG ミキシング」と呼ばれるものだと思います。 ASV ソリューションの名前は次のとおりです。 Name
$this->cg_str="";
$sttext = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/:._-1234567890'; //デフォルトの文字列 (最大)
$len = strlen($sttext); /その長さを取得します
for($i=0;$i$cuch = (int)($this->ran()*strlen($sttext)); // string シード比例位置 文字添え字
$this->cg_str.=$sttext[$cuch] //文字を読み込む
$sttext = str_replace($sttext[$cuch],”,$sttext); //これを削除reading 出てくる文字(0で止まる)
}
}
function decode($string){
$output=””;
$this->cg_hun();
$expl =explode('*', $string ); //文字列 1*23*34*45*56*
for($i=0;$i$output.=$this ->cg_str[(int)$expl[$i]]; //数字で表される cg_hun のスクランブル文字列を取得すると、復号化が完了します
}
return $output; //OK pull
}
; function decode_key ($key1,$key2){
$key = hexdec($key1); //どちらのキーも HEX です
$key = $key ^ -1520786011; //これは元々 8 ビットの HEX でした。私が使用した電卓は、PhP ビット操作に便利なため、数値を計算しました
return $key2 . dechex($key) //最終的な Key を合成します
}
}// 復号化クラスを使用すると非常に便利ですこの $new = new decoder((int) $seed[1]);
$fileid = $new->decode($encoded[2]);
$key = $new->decode_key($key1[1] ],$key2[1]);
//データを入力して //アドレスロード構成を計算します
$s7 = substr($fileid,10,strlen($fileid));
$s5 = substr($fileid, 0,8);
$s6 = substr ($fileid,6,2);
//Open $s4 = '00';//これは 16 進数の値であることに注意してください。つまり、00 はファイルの最初のセグメントを表します。ビデオ、01 2 番目 0f 15 番目... など $sid = time() '1000' . mt_rand(30,80) ;// ランダムな SID を取得します。それをサーバーに渡します (実際にはチェックされません)
$d_ADDR = 'http://f.youku.com/player/getFlvPath/sid/' . $s4 。 /' . $encoded[1] . $file_id;
echo $d_ADDR . $key;
//最後にアドレスを出力します

Youku がアルゴリズム/形式を変更したため、上記の方法ではすべての状況に対応できなくなったことにご注意ください:
1. http://v.youku.com/player/getPlayList にアクセスしてください。 /VideoIDS /[ID]
2. ファイルを取得し、「streamfileids」:{"flv":"暗号化されたアドレス","mp4":"暗号化されたアドレス","etc.":"暗号化されたアドレス"
3. フォローします。上記暗号化アドレスを解読する方法
4. セグメント数とK
{"mp4":[{"no":"0","size":"18367795","秒":"421", "k": "281ff2875db680bb261c02ce"},{"no":"1","size":"19045091","秒":"421","k":"45398cdd4aa44968261c02ce"},
...
5.合成アドレスですが、各セグメントの K は上記で取得した新しい K を採用します

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327891.html技術記事少し前に、KnLiveCommentary について勉強するために、ビデオ サイトについて一連の調査を行いました。 KnLiveCommentary はテスト用に十分なビデオ ソースを取得できる必要があるため、...
を選択します。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
iOS 17:如何在iPhone上的相机应用程序中锁定白平衡iOS 17:如何在iPhone上的相机应用程序中锁定白平衡Sep 20, 2023 am 08:41 AM

白平衡是一项相机功能,可根据照明条件调整演色性。此iPhone设置可确保白色物体在照片或视频中显示为白色,从而补偿由于典型照明而导致的任何颜色变化。如果您想在整个视频拍摄过程中保持白平衡一致,可以将其锁定。在这里,我们将指导您如何为iPhone视频保持固定的白平衡。如何在iPhone上锁定白平衡必需:iOS17更新。(检查“常规>软件更新”下的“设置”>)。在iPhone上打开“设置”应用。在“设置”中,向下滚动并选择“相机”。在“相机”屏幕上,点击“录制视频”。在这

使用Python访问各种音频和视频文件的元数据使用Python访问各种音频和视频文件的元数据Sep 05, 2023 am 11:41 AM

我们可以使用Mutagen和Python中的eyeD3模块访问音频文件的元数据。对于视频元数据,我们可以使用电影和Python中的OpenCV库。元数据是提供有关其他数据(例如音频和视频数据)的信息的数据。音频和视频文件的元数据包括文件格式、文件分辨率、文件大小、持续时间、比特率等。通过访问这些元数据,我们可以更有效地管理媒体并分析元数据以获得一些有用的信息。在本文中,我们将了解Python提供的一些用于访问音频和视频文件元数据的库或模块。访问音频元数据一些用于访问音频文件元数据的库是-使用诱变

ppt视频换个电脑就无法播放怎么办ppt视频换个电脑就无法播放怎么办Feb 23, 2023 am 11:29 AM

ppt视频换个电脑就无法播放是因为路径不对,其解决办法:1、将PPT和视频放入U盘的同一个文件夹内;2、双击打开该PPT,找到想要插入视频的页数,点击“插入”按钮;3、在弹出的对话框内选择想要插入的视频即可。

视频切片授权什么意思视频切片授权什么意思Sep 27, 2023 pm 02:55 PM

视频切片授权是指在视频服务中,将视频文件分割成多个小片段并进行授权的过程。这种授权方式能提供更好的视频流畅性、适应不同网络条件和设备,并保护视频内容的安全性。通过视频切片授权,用户可以更快地开始播放视频,减少等待和缓冲时间,视频切片授权可以根据网络条件和设备类型动态调整视频参数,提供最佳的播放效果,视频切片授权还有助于保护视频内容的安全性,防止未经授权的用户进行盗播和侵权行为。

如何使用Golang将多个图片转换为视频如何使用Golang将多个图片转换为视频Aug 22, 2023 am 11:29 AM

如何使用Golang将多个图片转换为视频随着互联网的发展和智能设备的普及,视频成为了一种重要的媒体形式。有时候我们可能需要将多个图片转换为视频,以便展示图片的连续变化或者制作幻灯片。本文将介绍如何使用Golang编程语言将多个图片转换为视频。在开始之前,请确保你已经安装了Golang以及相关的开发环境。步骤1:导入相关的包首先,我们需要导入一些相关的Gola

iOS 17:如何录制FaceTime视频或音频消息iOS 17:如何录制FaceTime视频或音频消息Sep 21, 2023 am 10:13 AM

在iOS17中,当您FaceTime通话某人无法接听时,您可以留下视频或音频信息,具体取决于您使用的通话方式。如果您使用的是FaceTime视频,则可以留下视频信息,如果您使用的是FaceTime音频,则可以留下音频信息。您所要做的就是以通常的方式与某人进行FaceTime。未接来电后,您将看到“录制视频”选项,该选项可让您创建消息。录制完视频后,您会看到视频的预览,如果效果不佳,还可以选择重新录制。以下是在运行iOS17的设备上留下FaceTime消息的工作原理,以未接视频通话为例,在Face

Vue 中如何实现视频播放器?Vue 中如何实现视频播放器?Jun 25, 2023 am 09:46 AM

随着互联网的不断发展,视频已经成为了人们日常生活中必不可少的娱乐方式之一。为了给用户提供更好的视频观看体验,许多网站和应用程序都开始使用视频播放器,使得用户可以在网页中直接观看视频。而Vue作为目前非常流行的前端框架之一,也提供了很多简便且实用的方法来实现视频播放器。下面,我们将简要介绍一下在Vue中实现视频播放器的方法。一、使用HTML5的video标签H

生成视频如此简单,给句提示就行,还能在线试玩生成视频如此简单,给句提示就行,还能在线试玩May 20, 2023 pm 05:16 PM

你输入文字,让AI来生成视频,这种想法在以前只出现在人们的想象中,现在,随着技术的发展,这种功能已经实现了。近年来,生成式人工智能在计算机视觉领域引起巨大的关注。随着扩散模型的出现,从文本Prompt生成高质量图像,即文本到图像的合成,已经变得非常流行和成功。最近的研究试图通过在视频领域复用文本到图像扩散模型,将其成功扩展到文本到视频生成和编辑的任务。虽然这样的方法取得了可喜的成果,但大部分方法需要使用大量标记数据进行大量训练,这可能对许多用户来讲太过昂贵。为了使视频生成更加廉价,JayZhan

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。