少し掘ります
他の人のファイルを調べる前に、システムをさらに詳しく調べる価値があるため、VKontakteにビデオをアップロードして公開し、ビデオでvideosaver.ruにフィードしました。 このサービスは、ファイルへの直接リンクを親切に提供してくれたので、良いです。
さらに、公開ビデオを非常に非公開にし(自分専用)、セッションを終了した状態でファイルを直接ダウンロードしようとしました。 うん、スイング。 これは、ビデオの配信上のサーバーがプライバシーをチェックしないことを意味します(他の場所で行う必要があるため、正しくチェックします)。
サムネイルがすべてです
私の公開、そして現在プライベート動画へのリンクは次のようになっています。
551.gt3.vkadre.ru/assets/videos/08e8e26a100647241.vk.flv
最も興味深い部分は08e8e26a100647241です。 これは明らかにハッシュであり、計算することはできません。つまり、サイト、ソース、コメント、どこでもこのハッシュを見つける必要があるということです。 動画のリストを含むページのソースコードを表示し、動画を視聴しても何も得られませんでしたが、スクリプトによって動画のサムネイルが生成されていることがわかります。
vkadre.ru/get_thumbnail?vkid=100647241&vtag=08e8e26a&size=160
ビデオのIDなどは興味がありません。 主なものは、このスクリプトが画像への直接リンクを提供したことです。
551.gt3.vkadre.ru/assets/thumbnails/08e8e26a100647241.160.vk.jpg
そして、はい、これはハッシュ(08e8e26a100647241)であり、ビデオへのリンクで確認しました。 もちろん、flvファイルへのフルパスの一部に任意のサムネイルを関連付けることができます。
ファイルパス
ファイル名がイメージの名前から取得できる場合、パスの残りの部分(サーバーとサブディレクトリの名前)を完成する必要があります。 サブディレクトリはすべて同じであり、リンクの違いはホストのみです。 一般に、ビデオへのすべてのリンクは次のように説明できます
http:// [0-9] + .gt(2 | 3).vkadre.ru / asset / videos / [0-9a-z] {、16} .vk.flv
vkadre.ruの前の部分に興味があります。ハッシュですべてが明確になっているからです。 ビデオ出力2000サーバー(クールマージンあり)で、すべてのホストxxx.gt2.vkadre.ruおよびxxx.gt3.vkadre.ruのIPアドレスをスキャンすると仮定します。xxxは1〜1000です。
VKontakteには、ビデオ出力用に約250台のサーバー(一意のIP)があることが判明しました(ホストおよびオーディオもチェックしていない可能性があります)。 これらの250台のサーバーを使用して、ファイルをダウンロードするための簡単な検索を行います。
http:// [プールからのIPアドレス] /アセット/ビデオ/ [画像からのハッシュ] .vk.flv
ファイルが物理的に見つからない場合、サーバーはなんらかの愚かな音楽とともに300キロバイトのデフォルトflvムービーを発行します。 つまり、デフォルトのファイルとサイズが異なるファイルは探しているビデオであり、ファイルは最大250件のリクエストで見つかります。
修正方法
スクリプト/get_thumbnail.phpでアクセスチェックを行い、権限がない場合はデフォルトの画像を表示します。ここで個人的な問題を伝え、プレビューを表示するものはありません。 これに加えて、視聴できない場合は、リストにビデオを表示しないでください。
更新する
ありがとうkabachok
ハッシュを取得するより簡単な方法
/ get_thumbnail?vkid = 100647241 &vtag = 08e8e26a &size = 160 = 08e8e26a 100647241
これは、ハッシュの原則を公開できないことを意味します。