まえがき
こんにちは。 この記事では、おそらく連絡先からビデオへのリンクを取得する唯一の方法を紹介します。
それはすべて、私のAndroidクライアントの開発中に、ビデオの再生とダウンロードの機能が必要になったときに始まりました。 そしてこのためには、当然リンクが必要です。 そしてご存知のように、私たちが取得できる最大値は、プレイヤーがいるページへのリンクであり、そこから直接リンクを取得できます。
その後、このトピックについてグーグル検索を始めましたが、賢明なものは見つかりませんでした。
そして、私はそれを手に入れる独自の方法を考え出すことにしました。
私が思いついたこと
私が最初に気づいたのは、VK Saverプログラムです。 そして特に彼らのウェブサイトで。 このようにすべてがそこで起こります:
1)プログラムをインストールします。このプログラムは、後でブラウザーに統合されます。
2)ビデオのあるページに移動すると、ボタンsが下に表示され、 v.audiovkontakte.ru / video-xxxxxという形式のリンクが表示されます(xxxxxxはこのビデオのIDです)。
3)このページでは、特別なボタンをクリックしてこのビデオを視聴およびダウンロードできます)
このページのソースコードを調べたところ、何かが見つかりました。
この要素は次のとおりです。
<form action="/download.php?type=vks&host=465.gt3.vkadre.ru&no_flv=0&vtag=750c48ae2867-&vkid=92359355&uid=0&hd=0&plugin_hash=202cb962ac59075b964b07152d234b70&plugin_ver=3.1.110425.1262&vvideo_id=161693266&artist_name=&clip_name=%25ED%25E5%2B%25E4%25E0%25E9%2B%25C1%25EE%25E3%2B%25F2%25E0%25EA%25EE%25E5%2B%25EF%25F0%25E8%25F1%25ED%25E8%25F2%25F1%25FF%2521" target="_blank" method="POST"><div class="clip_name"><strong> !</strong></div><div id="player"><embed src="/images/player/player.swf" width="460" height="345" allowscriptaccess="always" allowfullscreen="true" flashvars="height=345&width=460&file=http://465.gt3.vkadre.ru/assets/videos/750c48ae2867-92359355.vk.flv&image=http://465.gt3.vkadre.ru/assets/thumbnails/750c48ae2867-92359355.320.vk.jpg&displayheight=345&searchbar=false" /></div><div class="download_url"><a href="javascript:document.forms[0].submit();" onclick="p = document.getElementById('player'); if (p) {p.style.display = 'none'; p.style.display = 'block'; p.innerHTML = p.innerHTML + ' '}" title=""></a>
行に注意してください
flashvars="height=345&width=460&file=http://465.gt3.vkadre.ru/assets/videos/750c48ae2867-92359355.vk.flv&image=http://465.gt3.vkadre.ru/assets/thumbnails/750c48ae2867-92359355.320.vk.jpg&displayheight=345&searchbar=false"
そして、ここでリンク465.gt3.vkadre.ru/assets/videos/750c48ae2867-92359355.vk.flvに注目します
クリックして、ビデオをアップロードします!
理論的には、これが必要です。
そして、普通のユーザーは、ソースコードにアクセスしなくても、ビデオを簡単にダウンロードできます。
しかし、私の目的にとって、これは明らかに適切ではありませんでした。
一見したところすべてが初歩的でしたが、idビデオを取得し、v.audiovkontakte.ruへのリンクを作成し、必要なリンクがあるかどうかを通常のソースコードを使用してソースコードを解析します。
しかし、リンクを収集して追跡しようとすると、最初の問題が発生しました。
しかし、何らかの理由で、私はすぐにサイトのメインページに放り込まれました。
ボタンを押すだけで遷移が可能であることがわかります。
それで、私はこの考えを延期しなければなりませんでした。
しかし、私はまだビデオへの直接リンクの形式を持っています。
そして、すべてがうまくいくように見えますが、1行の起源は私たちには不明のままです:
465.gt3.vkadre.ru/assets/videos 750c48ae2867 -92359355.vk.flv
ほとんどの場合、これはこのレコードの何らかのハッシュまたは識別子であり、取得方法は不明です。
完全に絶望したので、私は最後にプレーヤーを見ることにしました。ボタンをクリックして共有する>ビデオコードを取得する(
<iframe src="http://vkontakte.ru/video_ext.php?oid=13257647&id=161693266&hash=5817a3ba0588efa8&sd" width="607" height="360" frameborder="0"></iframe>
)、またはAPIにリクエストを送信することにより、より関連性が高いと思われます。
私は次のブロックに興味がありました:
<param name="flashvars" value="uid=0&vid=161693266&oid=13257647&host=465.gt3.vkadre.ru&vtag=750c48ae2867-<ag=1423ac11&vkid=92359355&md_title=%D0%BD%D0%B5+%D0%B4%D0%B0%D0%B9+%D0%91%D0%BE%D0%B3+%D1%82%D0%B0%D0%BA%D0%BE%D0%B5+%D0%BF%D1%80%D0%B8%D1%81%D0%BD%D0%B8%D1%82%D1%81%D1%8F%21&md_author=%D0%94%D0%B8%D0%BC%D0%BE%D0%BD+%D0%A8%D0%B8%D1%80%D0%BE%D0%BA%D0%BE%D0%B2&hd=0&no_flv=0&hd_def=-1&dbg_on=0&t=&thumb=http://465.gt3.vkadre.ru/assets/thumbnails/1423ac1192359355.460.vk.jpg&hash=3b900fad1e7a6c5606e40e31273ca26d&hash2=5817a3ba0588efa8&is_vk=0&is_ext=1&lang_volume_on=%D0%92%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C+%D0%B7%D0%B2%D1%83%D0%BA&lang_volume_off=%D0%A3%D0%B1%D1%80%D0%B0%D1%82%D1%8C+%D0%B7%D0%B2%D1%83%D0%BA&lang_volume=%D0%93%D1%80%D0%BE%D0%BC%D0%BA%D0%BE%D1%81%D1%82%D1%8C&lang_hdsd=%D0%A1%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C+%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE&lang_fullscreen=%D0%9D%D0%B0+%D0%B2%D0%B5%D1%81%D1%8C+%D1%8D%D0%BA%D1%80%D0%B0%D0%BD&lang_window=%D0%A1%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8C&lang_rotate=%D0%9F%D0%BE%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8C&video_play_hd=%D0%A1%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D1%82%D1%8C+%D0%B2+%D0%B2%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D0%BC+%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B5&video_stop_loading=%D0%9E%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C+%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D1%83&video_player_version=%D0%92%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B5+%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE+%D0%BF%D0%BB%D0%B5%D0%B5%D1%80+&video_player_author=%D0%90%D0%B2%D1%82%D0%BE%D1%80+%D0%BF%D0%BB%D0%B5%D0%B5%D1%80%D0%B0+-+%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9+%D0%A5%D0%B0%D1%80%D1%8C%D0%BA%D0%BE%D0%B2&goto_orig_video=%D0%9F%D0%B5%D1%80%D0%B5%D0%B9%D1%82%D0%B8+%D0%BA+%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8&video_get_video_code=%D0%9A%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C+%D0%BA%D0%BE%D0%B4+%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE&video_load_error=%D0%92%D0%B8%D0%B4%D0%B5%D0%BE%D1%84%D0%B0%D0%B9%D0%BB+%D0%B5%D1%89%D0%B5+%D0%BD%D0%B5+%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%B8%D0%BB%D1%81%D1%8F+%D0%B8%D0%BB%D0%B8+%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80+%D1%81+%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%BC+%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE+%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B5%D0%BD&video_get_current_url=%D0%9A%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C+%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D1%83+%D0%BD%D0%B0+%D0%BA%D0%B0%D0%B4%D1%80"></param>
そして、同じハッシュと一致するかどうかを確認すると、次のようになります:value = "uid = 0&vid = 161693266&oid = 13257647&host = 465.gt3.vkadre.ru&vtag = 750c48ae2867- &ltag = 1423ac11&vkid = 92359355&
いいね! これにより、直接リンクを取得できることがわかります。
リンク取得アルゴリズム
1)APIリクエストを使用して、動画IDとプレーヤーへのリンクを取得します
2)正規表現を使用して、vtagパラメーターを使用して文字列の存在をコードで解析し、識別子を引き出します
3)直接リンクを作成します。
465.gt3.vkadre.ru/assets/videos/id-id of the video recording.vk.formatの