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

Youku動画の絶対アドレス取得方法を詳しく解説_PHPチュートリアル

Jul 21, 2016 pm 03:02 PM
のために 住所 方法 研究 絶対 ビデオ 詳しい説明

少し前に、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 までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

トマト無料小説アプリで小説を書く方法. トマトノベルで小説を書く方法に関するチュートリアルを共有します。 トマト無料小説アプリで小説を書く方法. トマトノベルで小説を書く方法に関するチュートリアルを共有します。 Mar 28, 2024 pm 12:50 PM

トマト ノベルは非常に人気のある小説閲覧ソフトウェアです。トマト ノベルでは、新しい小説や漫画を読むことができます。どの小説も漫画もとても面白いです。小説を書きたい友達もたくさんいます。お小遣いを稼いで、小説の内容を編集することもできます。 「テキストに文章を書きたいです。それで、小説はどうやって書くのですか?友達は知らないので、一緒にこのサイトに行きましょう。小説の書き方の入門を少し見てみましょう。」 Tomato Novels を使用して小説を書く方法に関するチュートリアルを共有します。 1. まず、携帯電話で Tomato Free Novels アプリを開き、パーソナル センター - ライター センターをクリックします。 2. Tomato Writer Assistant ページに移動し、次の場所で [新しい本の作成] をクリックします。小説の終わり

WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) May 01, 2024 pm 12:01 PM

残念ながら、WeChat は広く使用されているソーシャル ソフトウェアであり、何らかの理由で特定の連絡先を誤って削除してしまうことがよくあります。ユーザーがこの問題を解決できるように、この記事では、削除された連絡先を簡単な方法で取得する方法を紹介します。 1. WeChat の連絡先削除メカニズムを理解します。これにより、削除された連絡先を取得できるようになります。WeChat の連絡先削除メカニズムでは、連絡先がアドレス帳から削除されますが、完全には削除されません。 2. WeChat の組み込みの「連絡先帳復元」機能を使用します。WeChat には、この機能を通じて以前に削除した連絡先をすばやく復元できる「連絡先帳復元」機能が用意されています。 3. WeChat 設定ページに入り、右下隅をクリックし、WeChat アプリケーション「Me」を開き、右上隅にある設定アイコンをクリックして設定ページに入ります。

画質を圧縮せずにWeiboに動画を投稿する方法_画質を圧縮せずにWeiboに動画を投稿する方法 画質を圧縮せずにWeiboに動画を投稿する方法_画質を圧縮せずにWeiboに動画を投稿する方法 Mar 30, 2024 pm 12:26 PM

1. まず携帯電話で Weibo を開き、右下隅の [Me] をクリックします (図を参照)。 2. 次に、右上隅の [歯車] をクリックして設定を開きます (図を参照)。 3. 次に、[一般設定] を見つけて開きます (図を参照)。 4. 次に、[Video Follow] オプションを入力します (図を参照)。 5. 次に、[ビデオアップロード解像度]設定を開きます(図を参照)。 6. 最後に、圧縮を避けるために [オリジナルの画質] を選択します (図を参照)。

すぐにマスター: Huawei 携帯電話で 2 つの WeChat アカウントを開く方法が明らかに! すぐにマスター: Huawei 携帯電話で 2 つの WeChat アカウントを開く方法が明らかに! Mar 23, 2024 am 10:42 AM

今日の社会において、携帯電話は私たちの生活に欠かせないものとなっています。私たちの日常のコミュニケーション、仕事、生活のための重要なツールとして、WeChat はよく使用されます。ただし、異なるトランザクションを処理する場合は 2 つの WeChat アカウントを分離する必要がある場合があり、そのためには携帯電話が 2 つの WeChat アカウントへの同時ログインをサポートする必要があります。有名な国内ブランドとして、ファーウェイの携帯電話は多くの人に使用されていますが、ファーウェイの携帯電話で 2 つの WeChat アカウントを開設する方法は何でしょうか?このメソッドの秘密を明らかにしましょう。まず、Huawei 携帯電話で 2 つの WeChat アカウントを同時に使用する必要があります。最も簡単な方法は次のとおりです。

小紅書ビデオ作品を公開するにはどうすればよいですか?動画を投稿する際に注意すべきことは何ですか? 小紅書ビデオ作品を公開するにはどうすればよいですか?動画を投稿する際に注意すべきことは何ですか? Mar 23, 2024 pm 08:50 PM

短編ビデオ プラットフォームの台頭により、Xiaohongshu は多くの人々が自分の生活を共有し、自分自身を表現し、トラフィックを獲得するためのプラットフォームになりました。このプラットフォームでは、ビデオ作品の公開が非常に人気のある交流方法です。では、小紅書ビデオ作品を公開するにはどうすればよいでしょうか? 1.小紅書ビデオ作品を公開するにはどうすればよいですか?まず、共有できるビデオ コンテンツがあることを確認します。携帯電話やその他のカメラ機器を使用して撮影することもできますが、画質と音声の明瞭さには注意する必要があります。 2.ビデオを編集する:作品をより魅力的にするために、ビデオを編集できます。 Douyin、Kuaishou などのプロ仕様のビデオ編集ソフトウェアを使用して、フィルター、音楽、字幕、その他の要素を追加できます。 3. 表紙を選択する: 表紙はユーザーのクリックを誘致するための鍵です。ユーザーのクリックを誘致するために、表紙には鮮明で興味深い写真を選択してください。

モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) May 04, 2024 pm 06:01 PM

テクノロジーの発展に伴い、モバイルゲームは人々の生活に欠かせないものになりました。かわいいドラゴンエッグの画像と面白い孵化過程で多くのプレイヤーの注目を集めており、その中でも注目を集めているゲームの一つがモバイル版ドラゴンエッグです。プレイヤーがゲーム内で自分のドラゴンをより適切に育成し成長させることができるように、この記事ではモバイル版でドラゴンの卵を孵化させる方法を紹介します。 1. 適切な種類のドラゴン エッグを選択する プレイヤーは、ゲーム内で提供されるさまざまな種類のドラゴン エッグの属性と能力に基づいて、自分に適したドラゴン エッグの種類を慎重に選択する必要があります。 2. 孵化機のレベルをアップグレードします。プレイヤーはタスクを完了し、小道具を収集することで孵化機のレベルを向上させる必要があります。孵化機のレベルは孵化速度と孵化成功率を決定します。 3. プレイヤーはゲームに参加する必要がある孵化に必要なリソースを収集します。

携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) 携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) May 07, 2024 pm 03:34 PM

携帯電話が人々の日常生活において重要なツールになるにつれて、フォント サイズの設定は重要なパーソナライゼーション要件になりました。さまざまなユーザーのニーズを満たすために、この記事では、簡単な操作で携帯電話の使用体験を向上させ、携帯電話のフォントサイズを調整する方法を紹介します。携帯電話のフォント サイズを調整する必要があるのはなぜですか - フォント サイズを調整すると、テキストがより鮮明で読みやすくなります - さまざまな年齢のユーザーの読書ニーズに適しています - フォント サイズを使用すると、視力の悪いユーザーにとって便利です携帯電話システムの設定機能 - システム設定インターフェイスに入る方法 - 設定インターフェイスで「表示」オプションを見つけて入力します。 - 「フォント サイズ」オプションを見つけて、サードパーティでフォント サイズを調整します。アプリケーション - フォント サイズの調整をサポートするアプリケーションをダウンロードしてインストールします - アプリケーションを開いて、関連する設定インターフェイスに入ります - 個人に応じて

Go言語のメソッドと機能の違いと応用シナリオの分析 Go言語のメソッドと機能の違いと応用シナリオの分析 Apr 04, 2024 am 09:24 AM

Go 言語のメソッドと関数の違いは、構造との関連付けにあります。メソッドは構造に関連付けられ、構造データまたはメソッドを操作するために使用されます。関数は型に依存せず、一般的な操作を実行するために使用されます。

See all articles