Скачивание видео с Вк

FamilyMan

Client
Регистрация
14.09.2014
Сообщения
32
Благодарностей
1
Баллы
8
Не могу понять, как скачать видео с вк при помощи ZennoPoster. (Учитывая тот факт, что видео могут быть и по 10 минут).
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 251
Благодарностей
219
Баллы
63
Вытащить ссылку из кода с каких пор не вариант?
 

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
794
Благодарностей
136
Баллы
43
Вытащить ссылку из кода с каких пор не вариант?
К сожалению с вк это не работает. Сегодня целый день на это убил. При запросе по API на сайте вк есть прямая ссылка на ролик, при запросе в зенке - нету. При иных запросах есть ссылки на видео - но одна часть этой ссылки, сгенерированная которая, отличается от той, которая есть на сайте вк при запросе по апи, в результате ответ - 404 страница не найдена. Пробовал и на мобильную версию заходить и оттуда вытаскивать, и полной версии. Но гет запрос всегда почему-то присылал немного не те урлы, что должны быть и которые вели бы на файл. А при заходе через браузер зенки - обновите флэш плеер. В source страницы при этом опять неверные урлы на ролик. Скачать через SaveFrom.net не выходит в зенке. В итоге: все возможные варианты испробованы, результата - 0.
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
1 251
Благодарностей
219
Баллы
63
К сожалению с вк это не работает. Сегодня целый день на это убил. При запросе по API на сайте вк есть прямая ссылка на ролик, при запросе в зенке - нету. При иных запросах есть ссылки на видео - но одна часть этой ссылки, сгенерированная которая, отличается от той, которая есть на сайте вк при запросе по апи, в результате ответ - 404 страница не найдена. Пробовал и на мобильную версию заходить и оттуда вытаскивать, и полной версии. Но гет запрос всегда почему-то присылал немного не те урлы, что должны быть и которые вели бы на файл. А при заходе через браузер зенки - обновите флэш плеер. В source страницы при этом опять неверные урлы на ролик. Скачать через SaveFrom.net не выходит в зенке. В итоге: все возможные варианты испробованы, результата - 0.
А чем сейвформ то не устроил? Он не дает ответ или не получилось разобрать?
 

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
794
Благодарностей
136
Баллы
43

kagorec

Client
Регистрация
24.08.2013
Сообщения
979
Благодарностей
525
Баллы
93
С помощью CD выкачивалось, если не намудрили с защитой сейчас.
Из ссылки код видео фрейма
Код:
<video preload="metadata" class="videoplayer_media_provider" tabindex="-1" aria-hidden="true" src="https://cs12959.vkuservideo.net/u10137247/videos/0d9c8ba4ca.480.mp4?extra=aH9RoVUA-IxjDcL4EsbuFRzP-GHtYdIPNgYtMdU_bNGehgWHqI3z-wJBrUph8DGSOF3WD2VZOawpAuUOrI_R62-gv9MPdWH0gNwPb9JoL_SuVae_7sPRo9odfEj-aNvJDB3l3dUHL8g"></video>
из фрейма ссылка

Код:
https://cs12959.vkuservideo.net/u10137247/videos/0d9c8ba4ca.480.mp4?extra=aH9RoVUA-IxjDcL4EsbuFRzP-GHtYdIPNgYtMdU_bNGehgWHqI3z-wJBrUph8DGSOF3WD2VZOawpAuUOrI_R62-gv9MPdWH0gNwPb9JoL_SuVae_7sPRo9odfEj-aNvJDB3l3dUHL8g
п.с. через пару минут ссылка становится неактуальной
 
  • Спасибо
Реакции: avtostopshik

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
794
Благодарностей
136
Баллы
43

kagorec

Client
Регистрация
24.08.2013
Сообщения
979
Благодарностей
525
Баллы
93
Принцип скачивания видео - описал, осталось повторить на зенно.
 

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
794
Благодарностей
136
Баллы
43
Нет, нет, не получается. Объясню на пальцах:
1. Посылаем апи запрос:
string urlVideo = ZennoPoster.HttpGet("https://api.vk.com/method/video.search?q=" + titleVideo + "&sort=2&adult=1&count=1&access_token=" + project.Variables["get_url_token"].Value + "&v=5.73", project.Variables["proxy"].Value, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000);
Получаем ответ:
{"response":{"count":1,"items":[{"id":456241313,"owner_id":-43879004,"title":"ДЕЛАЕМ ШОКОЛАДНЫХ БАБОЧЕК","duration":24,"description":"","date":1521715863,"comments":0,"views":64558,"width":640,"height":640,"photo_130":"https:\/\/sun1-12.userapi.com\/c831409\/v831409239\/b580d\/vt8w-PexOlc.jpg","photo_320":"https:\/\/sun1-4.userapi.com\/c831409\/v831409239\/b580b\/ukdwTkSSBiU.jpg","photo_800":"https:\/\/sun1-11.userapi.com\/c831409\/v831409239\/b580a\/jb89FfXstZU.jpg","first_frame_320":"https:\/\/pp.userapi.com\/c846121\/v846121507\/6d18\/DppaDDfjwlM.jpg","first_frame_160":"https:\/\/pp.userapi.com\/c846121\/v846121507\/6d19\/JPBIOgQA_RI.jpg","first_frame_130":"https:\/\/pp.userapi.com\/c846121\/v846121507\/6d1a\/xR_b5v2ktxk.jpg","first_frame_800":"https:\/\/pp.userapi.com\/c846121\/v846121507\/6d17\/gLyE52IFHmM.jpg","player":"https:\/\/vk.com\/video_ext.php?oid=-43879004&id=456241313&hash=86eea91fd6cdde0c&__ref=vk.api&api_hash=152185907210dc9ecb21ff7c9e21_GMYTIMJUGU3TMMI","can_add":1}]}}
Из него выпаршиваем ссылку на страницу с роликом и делаем новый запрос:
urlVideo = new Regex(@"(?<=player\u0022:\u0022).*?(?=\u0022)").Match(urlVideo).Value.Replace(@"\","");
string htmlVideo = ZennoPoster.HttpGet(urlVideo, project.Variables["proxy"].Value, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000);
Дальше получаем html код страницы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript" src="/js/loader_nav5691860337286_3.js"></script>
<link rel="shortcut icon" href="/images/icons/favicons/fav_logo.ico?6" />
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="robots" content="noindex, nofollow" />
<title>VK | Video Ext</title>
<noscript><meta http-equiv="refresh" content="0; URL=/badbrowser.php"></noscript>
<link rel="stylesheet" type="text/css" href="/css/al/fonts_cnt.css?5181750877" />
<link rel="stylesheet" type="text/css" href="/css/al/lite.css?44382325074" />
<script type="text/javascript">
var vk = {
ads_rotate_interval: 120000,
al: parseInt('3') || 4,
intnat: '1' ? true : false,
lang: 3,
rtl: parseInt('') || 0,
version: 5691860337286,
loginscheme: 'https',
ip_h: 'f352e4b2b9b2e46659',
id: parseInt('0'),
nodomain: '',
pr_tpl: "<div class=\"pr %cls%\" id=\"%id%\"><div class=\"pr_bt\"><\/div><div class=\"pr_bt\"><\/div><div class=\"pr_bt\"><\/div><\/div>",
audioInlinePlayerTpl: "<div class=\"audio_inline_player _audio_inline_player no_select\">\n <div class=\"audio_inline_player_right\">\n <div class=\"audio_inline_player_volume\"><\/div>\n <\/div>\n <div class=\"audio_inline_player_left\">\n <div class=\"audio_inline_player_progress\"><\/div>\n <\/div>\n<\/div>",
widget: 1,
css_dir: ''
}
var StaticFiles = {
'lite.js':{v:2497728057},
'lite.css':{v:44382325074},'fonts_cnt.css':{v:5181750877},'lang3_0.js':{v:3939},'videoview.js':{v:17970665596}
}
</script>
<script type="text/javascript" src="/js/al/lite.js?2497728057"></script>
<script type="text/javascript" src="/js/lang3_0.js?3939"></script><script type="text/javascript" src="/js/cmodules/web/videoview.js?17970665596"></script><base target="_blank"/>
</head>
<body style="background: #000; height: 100%;" class="is_rtl VK1 widget_body nofixed no_auth">
<div id="system_msg" class="fixed"></div>
<div id="utils"></div>
<div id="box_layer_bg" class="fixed"></div><div id="box_layer_wrap" class="scroll_fix_wrap fixed"><div id="box_layer"><div id="box_loader"><div class="pr pr_baw pr_medium" id="box_loader_pr"><div class="pr_bt"></div><div class="pr_bt"></div><div class="pr_bt"></div></div><div class="back"></div></div></div></div>
<div id="stl_left"></div><div id="stl_side"></div>
<a id="widget_focus_link" href="javascript: return;"></a>
<script type="text/javascript">domStarted();</script>
<div id="page_wrap"><div id="video_box_wrap-43879004_456241313" class="video_box_wrap">
<div class="video_box_msg">
<div class="video_box_msg_background" style="background-image:url(https://sun1-11.userapi.com/c831409/v831409239/b580a/jb89FfXstZU.jpg);"></div>
<div class="video_box_msg_text">The latest version of <a href="https://get.adobe.com/flash" target="_blank">Flash&nbsp;Player</a> is required to view videos.</div>
</div>
</div></div>
<div class="progress" id="global_prg"></div>
<script type="text/javascript">
if (window.devicePixelRatio >= 2) {
document.body.className += ' is_2x';
}
domReady();

addLangKeys({"global_emoji_cat_recent":"Frequently Used","global_emoji_cat_1":"Faces","global_emoji_cat_2":"Animals &amp; Nature","global_emoji_cat_3":"Hands &amp; People","global_emoji_cat_4":"Food &amp; Drinks","global_emoji_cat_5":"Activity","global_emoji_cat_6":"Travel &amp; Transport","global_emoji_cat_7":"Objects","global_emoji_cat_8":"Symbols","global_emoji_cat_9":"Flags"}, true);
addTemplates({"_":"_"});
window.initJsApi = function() {
var player = cur.player;
var origin = '*';
if (!player || !window.postMessage) return;
player.on(VideoPlayer.Events.STATE_CHANGE, function(newState, prevState) {
var event = newState;
if (event == 'playing') {
event = prevState == 'unstarted' ? 'started' : 'resumed';
}
switch(event) {
case 'started':
case 'resumed':
case 'paused':
case 'ended':
case 'error':
sendEvent(event, {time: player.curTime()});
break;
}
});
player.on(VideoPlayer.Events.MEDIA_TIMEUPDATE, function() {
sendEvent('timeupdate', {time: player.curTime(), duration: player.getDuration()});
});
player.on(VideoPlayer.Events.MEDIA_VOLUMECHANGE, function() {
sendEvent('volumechange', {volume: player.getVolume(), muted: player.isMuted()});
});
window.addEventListener('message', function(event) {
if (origin != '*' && event.origin !== origin) return;
switch (event.data.method) {
case 'play':
player.play();
break;
case 'pause':
player.pause();
break;
case 'seek':
player.seekTo(event.data.time, false);
break;
case 'set_volume':
player.setVolume(event.data.volume, false);
break;
case 'mute':
player.toggleMute(true, false);
break;
case 'unmute':
player.toggleMute(false, false);
break;
}
});
sendEvent('inited', {
time: player.curTime(),
duration: player.getDuration(),
volume: player.getVolume()
});
function sendEvent(event, data) {
parent.postMessage(extend({event: event}, data), origin);
}
};var playerParams = {"type":"vk","params":[{"lang_add":"Add to My Videos","lang_added":"Video added to My Videos","lang_share":"Share","lang_like":"Like","lang_donate":"Donate","lang_subscribe":"Subscribe","lang_subscribed":"Following","lang_volume_on":"Unmute","lang_volume_off":"Mute","lang_volume":"Volume","lang_hdsd":"Change Video Quality","lang_quality_auto":"Auto","lang_open_popup":"Expand","lang_fullscreen":"Full Screen","lang_window":"Minimize","lang_ads_link":"Advertiser&#39;s Site","lang_ads":"Ads","lang_ads_skip":"Skip ad","lang_ads_skip_time":"Skip ads in {time} s","lang_report_problem":"Report a problem..","lang_play":"Play","lang_pause":"Pause","lang_replay":"Replay","lang_next":"Next video","lang_next_cancel":"Cancel","lang_goto_Orig_video":"Go to Video","lang_goto_advertisers_site":"Go to the website","lang_buy_tickets":null,"lang_load_error":"An error occurred during loading. Please try again later.","lang_external_service_file_not_found":"This video is unavailable.<br>It might have been deleted from the third-party source.","lang_err_code":"Error code: {code}","lang_bad_browser":"Sorry, your browser isn&#39;t supported at the moment","lang_live":"Live","lang_live_starting_soon":"The stream has not started yet","lang_live_failed":"An error occurred while streaming","lang_live_wait_record":"The live stream has finished and will soon be available to replay","lang_live_user_sent_gift":["","sent a gift","sent a gift"],"lang_live_user_sent_supercomment":["","sent a super message","sent a super message"],"lang_live_download_app":"Download app","lang_autoplay_volume_hint":"�lick to turn on the sound","lang_autoplay_expand_hint":"Click to expand","lang_timed_button_goto":"�������","lang_timed_button_open":"Open","lang_timed_button_buy":"Buy","lang_timed_button_buy_tickets":"Buy tickets","lang_timed_button_checkin":"Enroll","lang_timed_button_install":"Install","lang_timed_button_contact":"Contact","lang_timed_button_fill":"Fill in","lang_timed_button_learn_more":"More","lang_cmenu_copy_video_link":"Copy video link","lang_cmenu_copy_timecode_link":"Copy link with timecode","lang_cmenu_copy_embed_code":"Copy embed code","lang_cmenu_enable_pip_mode":"Picture-in-picture","lang_cmenu_enable_loop":"Enable loop","lang_cmenu_disable_loop":"Disable loop","lang_cmenu_playback_speed":"Playback speed","lang_cmenu_rotate":"Rotate","lang_cmenu_report_error":"Report a problem..","lang_cmenu_copy_debug":"Copy debug info","lang_aria_videoplayer":"VK Video Player","lang_aria_volume_slider":"Volume slider","lang_aria_volume_muted":"Volume is muted","lang_aria_timeline_slider":"Time slider","lang_aria_timeline_value":"{time} (total duration {duration})","lang_aria_enter_fullscreen":"Enter full screen mode","lang_aria_exit_fullscreen":"Exit full screen mode","lang_aria_quality_current":"Current quality is {quality}","video_play_hd":"Watch in HD","video_stop_loading":"Stop Download","video_player_version":"VK Video Player","video_get_video_code":"Copy embed code","video_get_current_url":"Copy link with timecode","video_load_error":"An error occurred during loading. Please try again later.","goto_Orig_video":"Go to Video","vid":456241313,"oid":-43879004,"md_title":"������ ���������� �������","md_author":"������� ��������� | ������� �������","author_id":-43879004,"author_href":"\/sh.cook","author_photo":"https:\/\/pp.userapi.com\/c637429\/v637429627\/70206\/bvnur-_NHpc.jpg","view_hash":"ea797f8772ffa411d48ca65f86e1fd28","action_hash":"09080e6d5b7d5f88b7","embed_hash":"86eea91fd6cdde0c","duration":24,"t":"","vigo_host":"stats.vk-portal.net","vigo_cid":"05258bc60e5431a240ea1a0eb18be8d8","viewer_id":314145761,"post_id":null,"module":"embed","g":0,"a":0,"cis":1,"suggestions_sig":"c31c252fc6ea288e196697e17ced4dfb","error_stat_hash":"1521859114_8e1ecb089f8764b394","date":1521715863,"ads_safe":1,"ads_stat_hash":"491f0cd838b3a1e80b","ads_comscore_c3":"monetized","ads_type":1,"ads_cat":5,"ads_sitezone":3,"ads_referrer":"","ads_eid1":100549514,"ads_puid1":74,"ads_puid2":10,"ads_puid4":3,"ads_puid5":8,"ads_puid6":105,"ads_puid8":0,"ads_puid15":0,"ads_puid21":2,"ads_puid7":1,"ads_pl":21469,"ads_pl_type":"other","vsegs_size":5.000000,"vsegs_hash":"0bb0c04b6fa3a0aad9","aspect_ratio":1.000000,"show_suggestions":1,"is_embed":1,"nolikes":1,"hd":3,"hd_def":0,"angle":0.000000,"img_angle":0.000000,"repeat":0,"url240":"https:\/\/cs542606.vkuservideo.net\/10\/u267575493\/videos\/889a58db75.240.mp4?extra=RJHPZ6Wt1hkU7DMjjbs8Aa_X_Qk6Abdq1a9u12_tHTMqeqkb0x1Q7mxfpeJ7i36jYf1ucHlCoNTmV5q56tzgG-AuaFPPeD8Z8vmW5T4TpvG77fvGANnRsM2iO3yr_aw","url360":"https:\/\/cs542606.vkuservideo.net\/10\/u267575493\/videos\/889a58db75.360.mp4?extra=RJHPZ6Wt1hkU7DMjjbs8Aa_X_Qk6Abdq1a9u12_tHTMqeqkb0x1Q7mxfpeJ7i36jYf1ucHlCoNTmV5q56tzgG-AuaFPPeD8Z8vmW5T4TpvG77fvGANnRsM2iO3yr_aw","url480":"https:\/\/cs842001.vkuservideo.net\/5\/u267575493\/videos\/889a58db75.480.mp4?extra=RJHPZ6Wt1hkU7DMjjbs8Aa_X_Qk6Abdq1a9u12_tHTMqeqkb0x1Q7mxfpeJ7i36jYf1ucHlCoNTmV5q56tzgG-AuaFPPeD8Z8vmW5T4TpvG77fvGANnRsM2iO3yr_aw","url720":"https:\/\/cs842001.vkuservideo.net\/5\/u267575493\/videos\/889a58db75.720.mp4?extra=RJHPZ6Wt1hkU7DMjjbs8Aa_X_Qk6Abdq1a9u12_tHTMqeqkb0x1Q7mxfpeJ7i36jYf1ucHlCoNTmV5q56tzgG-AuaFPPeD8Z8vmW5T4TpvG77fvGANnRsM2iO3yr_aw","cache240":"https:\/\/cs1-69v4.vkuservideo.net\/p15\/31804787f129.240.mp4?extra=yXr0Dh2LCkOyEN9ytpeanXO0Y2sWz_Kdq5AhfhmAFIsNa_xSqp08Xn55rbdjToUB-7wqoGaGTBw7jq7HYXBIA1klkB-PGO0gpwaVhAG_Oxhgy4aVMHJ9FJinvMBQzaQ","cache360":"https:\/\/cs1-51v4.vkuservideo.net\/p14\/31804787f129.360.mp4?extra=cyAUlevthyrSH8YSnscfcsDUPx2d7NAGpz961dERRl8JlvEyDklGGOQLJy7erRi7_qzChcdkv0MLEFRBHJhSAeNxrmVeykYCkZqnMcQWkqHQK-p7ToBrJ-9LE8E8Geg","cache480":"https:\/\/cs1-51v4.vkuservideo.net\/p14\/31804787f129.480.mp4?extra=cyAUlevthyrSH8YSnscfcsDUPx2d7NAGpz961dERRl8JlvEyDklGGOQLJy7erRi7_qzChcdkv0MLEFRBHJhSAeNxrmVeykYCkZqnMcQWkqHQK-p7ToBrJ-9LE8E8Geg","cache720":"https:\/\/cs9-4v4.vkuservideo.net\/p3\/31804787f129.720.mp4?extra=ZLcl9HpwZ-yKmkUCOfxCUuyaRN1zQkH8lYdsFssw2CGcYwrdTHdCSwNeh0Jj_hDidjfFwYsY72OaeGScg60rGzavIJqFpHgneqpmhfWOdoPvOpnj0wXF_39J0jsgdOM","hls":"https:\/\/vk.com\/video_hls.php?dirs%5B240%5D=https%3A%2F%2Fcs542606.vkuservideo.net%2F10%2Fu267575493%2Fvideos%2F&dirs%5B360%5D=https%3A%2F%2Fcs542606.vkuservideo.net%2F10%2Fu267575493%2Fvideos%2F&dirs%5B480%5D=https%3A%2F%2Fcs842001.vkuservideo.net%2F5%2Fu267575493%2Fvideos%2F&dirs%5B720%5D=https%3A%2F%2Fcs842001.vkuservideo.net%2F5%2Fu267575493%2Fvideos%2F&path=5%2Fu267575493%2Fvideos%2F&extra=RJHPZ6Wt1hkU7DMjjbs8Aa_X_Qk6Abdq1a9u12_tHTMqeqkb0x1Q7mxfpeJ7i36jYf1ucHlCoNTmV5q56tzgG-AuaFPPeD8Z8vmW5T4TpvG77fvGANnRsM2iO3yr_aw&c_extra=-THqwrtnHPkWTdMnvE8VyI0INN-u6Ua1NrBciB7t96Lu1rkt2O8QY8bdXCbNvzqao4HWsQ6uYFSWEnUmNjXkgofdJe7jscBii7xvfl39Vdp7dYR6vunlcUS6VKVKKr4&video=-43879004_456241313&tag=889a58db75&c_tag=31804787f129","hls_raw":"#EXTM3U\n#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=312320,RESOLUTION=240x240\nhttps:\/\/cs1-69v4.vkuservideo.net\/video\/hls\/p15\/31804787f129\/index-f1-v1-a1.m3u8?extra=yXr0Dh2LCkOyEN9ytpeanXO0Y2sWz_Kdq5AhfhmAFIsNa_xSqp08Xn55rbdjToUB-7wqoGaGTBw7jq7HYXNIHhghkx2EHe8lowSSgwG8PRRkzIbHNSp6R5ygv8pfzab1tG4\n#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=412672,RESOLUTION=360x360\nhttps:\/\/cs1-51v4.vkuservideo.net\/video\/hls\/p14\/31804787f129\/index-f2-v1-a1.m3u8?extra=cyAUlevthyrSH8YSnscfcsDUPx2d7NAGpz961dERRl8JlvEyDklGGOQLJy7erRi7_qzChcdkv0MLEFRBHJtSHKJ1rWdVz0QHlZigNsQVlK3ULOopS9hsdOtMEMszGeq-iRc\n#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=670720,RESOLUTION=480x480\nhttps:\/\/cs1-51v4.vkuservideo.net\/video\/hls\/p14\/31804787f129\/index-f3-v1-a1.m3u8?extra=cyAUlevthyrSH8YSnscfcsDUPx2d7NAGpz961dERRl8JlvEyDklGGOQLJy7erRi7_qzChcdkv0MLEFRBHJtSHKJ1rWdVz0QHlZigNsQVlK3ULOopS9hsdOtMEMszGeq-iRc\n#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1097728,RESOLUTION=640x640\nhttps:\/\/cs9-4v4.vkuservideo.net\/video\/hls\/p3\/31804787f129\/index-f4-v1-a1.m3u8?extra=ZLcl9HpwZ-yKmkUCOfxCUuyaRN1zQkH8lYdsFssw2CGcYwrdTHdCSwNeh0Jj_hDidjfFwYsY72OaeGScg64rBnerI5iOoXoifqhhgvWNcI_rPZmx1l3CrHtO0TEvdOETFAU\n","jpg":"https:\/\/sun1-11.userapi.com\/c831409\/v831409239\/b580a\/jb89FfXstZU.jpg","timeline_thumbs":"75|75|10|100|24|https:\/\/pp.userapi.com\/c846417\/v846417507\/6ae2\/_qlKmSosa2c.jpg","first_frame_320":"https:\/\/pp.userapi.com\/c846121\/v846121507\/6d18\/DppaDDfjwlM.jpg","first_frame_160":"https:\/\/pp.userapi.com\/c846121\/v846121507\/6d19\/JPBIOgQA_RI.jpg","first_frame_130":"https:\/\/pp.userapi.com\/c846121\/v846121507\/6d1a\/xR_b5v2ktxk.jpg","first_frame_800":"https:\/\/pp.userapi.com\/c846121\/v846121507\/6d17\/gLyE52IFHmM.jpg","is_yandex":0}]};
var container = ge('video_box_wrap-43879004_456241313');
VideoInitializer.initPlayer(container, playerParams.type, playerParams.params);window.resolution = 0;
window.playerCallback = {
randomNumber: Math.round(Math.random() * 1000000000),
scoreCardCounter: function () {
// vkImage().src = vk.loginscheme + '://b.scorecardresearch.com/p?c1=1&c2=13765216&c5=06&rn=' + Math.round(Math.random() * 1000000000);
},
onVideoPlayProgress: function(oid, vid, hash, time_progress, time_total) {
var rawId = oid+'_'+vid;
if (time_progress < 5000 && window.tnsStart != rawId) {
playerCallback.scoreCardCounter();
window.tnsStart = rawId;
} else if (time_progress > (time_total / 2) && window.tnsEnd != rawId) {
window.tnsEnd = rawId;
}
},
incViewCounter: function(oid, vid, hash, currRes, maxRes, player, type) {
ajax.post('/al_video.php', {
act: 'inc_view_counter',
oid: oid,
vid: vid,
hash: hash,
curr_res: currRes,
max_res: maxRes,
player: player || 'flash',
type: type,
embed: 1,
yv: 0
}, {});
},
rotateVideo: function(oid, vid, angle, hash) {
ajax.post('al_video.php', {
act: 'rotate_video',
oid: oid,
vid: vid,
angle: angle,
hash: hash
}, {});
},
onVideoResolutionChanged: function(oid, vid, hash, resolution) {
window.resolution = resolution;
},
onInitialized: function() {
if (1) {
vkImage().src = '//www.tns-counter.ru/V13a****pladform_ru/ru/CP1251/tmsec=pladform_videovk-playerload/' + irand(1, 1e9);
} else {
vkImage().src = '//www.tns-counter.ru/V13a****pladform_ru/ru/CP1251/tmsec=platform_videovk-playerload/' + irand(1, 1e9);
}
if (0) {
vkImage().src = '//www.tns-counter.ru/V13a****vk_kz/ru/CP1251/tmsec=vkkz_videoloading/' + irand(1, 1e9);
}
window.initJsApi && initJsApi();
},
onVideoPlayStarted: function(oid, vid, hash) {
ajax.post('al_video.php', {
act: 'video_view_started',
oid: oid,
vid: vid,
hash: hash,
quality: window.resolution || 0,
embed: 1,
yv: 0,
player_view_type: 'embed'
}, {});
if (1) {
vkImage().src = '//www.tns-counter.ru/V13a****pladform_ru/ru/CP1251/tmsec=pladform_videovk-playerstart/' + irand(1, 1e9);
} else {
vkImage().src = '//www.tns-counter.ru/V13a****pladform_ru/ru/CP1251/tmsec=platform_videovk-playerstart/' + irand(1, 1e9);
}
if (0) {
vkImage().src = '//www.tns-counter.ru/V13a****vk_kz/ru/CP1251/tmsec=vkkz_videostart/' + irand(1, 1e9);
}
},
onVideoPlayFinished: function() {
if (1) {
vkImage().src = '//www.tns-counter.ru/V13a****pladform_ru/ru/CP1251/tmsec=pladform_videovk-playerend/' + irand(1, 1e9);
} else {
vkImage().src = '//www.tns-counter.ru/V13a****pladform_ru/ru/CP1251/tmsec=platform_videovk-playerend/' + irand(1, 1e9);
}
if (0) {
vkImage().src = '//www.tns-counter.ru/V13a****vk_kz/ru/CP1251/tmsec=vkkz_videoend/' + irand(1, 1e9);
}
},
onVideoAdsLoadStarted: function() {
vkImage().src = '//www.tns-counter.ru/V13a****vk_com/ru/CP1251/tmsec=vk_videoload-license/' + irand(1, 1e9);
},
onVideoAdsPlayStarted: function() {
vkImage().src = '//www.tns-counter.ru/V13a****vk_com/ru/CP1251/tmsec=vk_videostart-license/' + irand(1, 1e9);
},
onVideoAdsPlayFinished: function() {
vkImage().src = '//www.tns-counter.ru/V13a****vk_com/ru/CP1251/tmsec=vk_videoend-license/' + irand(1, 1e9);
}
};
function videoCallback(params) {
var method = params.shift();
if (playerCallback[method]) {
playerCallback[method].apply(null, params);
} else if (window.Videoview && Videoview.playerCallback[method]) {
Videoview.playerCallback[method].apply(Videoview, params);
} else {
throw Error('Unregistered player callback: ' + method);
}
}
cur.mvOpts = {
oid: -43879004,
vid: 456241313
};;vk.id = 0

</script>
</body>
</html>
В этом коде много ссылок на видео разного разрешения. Выпаршиваем айди видео (43879004_456241313) для следующего запроса:
string partVideo = new Regex(@"(?<=video_box_wrap).*?(?='\);-)", RegexOptions.RightToLeft).Match(htmlVideo).Value;
Если открыть видео в обычном браузере, в полной версии, то ссылка будет такого вида:
https://vk.com/video-43879004_456241313
Однако скачать видео можно с мобильной версии, для этого просто в урл подставим нужную букву и спокойно перейдём на страницу:
https://m.vk.com/video-43879004_456241313
Так вот, следующий запрос я уже делал в обычном экшене гет запроса, чтобы убедиться что всё ок и написать это в коде. Получил такой ответ:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
class="vk vk_js_no vk_flex_no r d h vk_appAuth_no"
>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="MobileOptimized" content="176" />
<meta name="HandheldFriendly" content="True" />
<meta name="theme-color" content="#5181b8" />
<base id="base">
<meta name="robots" content="noindex,nofollow" /><meta http-equiv="origin-trial" data-feature="getInstalledRelatedApps" data-expires="2018-01-30" content="AqnBW3j/m56zAZN0fBjy5CYB0Z+nCthDicsVAa+nub6HQaZ2JaRPv8KZhidJHoyt/kmyGoAYcnby1QXbPjwbSwAAAABfeyJvcmlnaW4iOiJodHRwczovL3ZrLmNvbTo0NDMiLCJmZWF0dXJlIjoiSW5zdGFsbGVkQXBwIiwiZXhwaXJ5IjoxNTE3MjcwNDAwLCJpc1N1YmRvbWFpbiI6dHJ1ZX0=">
<title>Video</title>
<link rel="shortcut icon" href="/images/icons/favicons/fav_logo.ico?8"></link>
<script>
(function() {
window.isMVK = true;
window.isNewMail = false;
window.isNewHeader = true;
window.audioSubscribe = false;
var vkElem = document.querySelector('.vk');
var vkClass = vkElem.getAttribute('class');
var supports = {
js: true,
flex: window.CSS && CSS.supports && (
CSS.supports('display', 'flex') ||
CSS.supports('display', '-webkit-flex') ||
CSS.supports('display', '-ms-flexbox')
)
};
supports.js && (vkClass = vkClass.replace('vk_js_no', 'vk_js_yes'));
supports.flex && (vkClass = vkClass.replace('vk_flex_no', 'vk_flex_yes'));
vkElem.setAttribute('class', vkClass);
})();
</script>
<script type="text/javascript">
<!--
(function(k,a,d,e,f){function l(){var c=function(){var b=!1;try{b=new XMLHttpRequest}catch(a){try{b=new ActiveXObject("Msxml2.XMLHTTP")}catch(d){try{b=new ActiveXObject("Microsoft.XMLHTTP")}catch(c){b=!1}}}return b?e:f}(),g=function(){var b=k.createElement("div");b.innerHTML='<input type="file" />';b=b.getElementsByTagName("input")[0];return"file"!=b.type||b.disabled?f:e}(),h="ontouchstart"in a?e:f,m;try{m=typeof navigator.geolocation!==d?e:typeof a.google!==d&&typeof google.gears!==d?e:typeof device!==d&&typeof device.getServiceObject!==d?e:typeof Mojo!==d&&"Mojo.Service.Request"!==typeof Mojo.Service.Request?e:f}catch(p){m=f}var l=function(b){try{var d=a.Audio?new Audio:k.createElement("audio");if(d.canPlayType&&d.canPlayType(b)&&"no"!=d.canPlayType(b))return e}catch(c){}return f}("audio/mpeg"),n=function(b){try{for(var a=k.createElement("div"),c=0,g=["webkit","Moz","ms","O",""],h=g.length;c<h;c++){var l=g[c],m=l?l+b:b.toLowerCase();if(typeof a.style[m]!==d)return e}return f}catch(n){return f}}("Transform");return c+g+h+m+l+n+((a.XMLHttpRequest||a.XDomainRequest)&&(a.FormData||a.FileReader&&(a.XMLHttpRequest&&XMLHttpRequest.sendAsBinary||a.ArrayBuffer&&a.Uint8Array&&(a.MozBlobBuilder||a.WebKitBlobBuilder||a.BlobBuilder)))?e:f)}var c=a.screen,g=c.width||0,c=c.height||0,n=a.devicePixelRatio||1,p=(k.cookie.match(/(^|;\s+)remixmdevice=([^;]+)/)||[])[2]||"",h=p.split("/");p&&g==h[0]&&c==h[1]&&7==h[3].length||(g=[g,c,n,l()].join("/"),k.cookie="remixmdevice=; expires="+(new Date(0)).toUTCString()+"; path=/",k.cookie="remixmdevice="+g+"; expires="+(new Date((new Date).getTime()+7776E6)).toUTCString()+"; path=/; domain=.vk.com",location.replace(location.toString()))})(document,window,"undefined","!","-");!function(o,a){var e=o.hash||"",t=e.substr(2);if("#/"==e.substr(0,2)){var i=window.locDomain,n=new Date;n.setTime(n.getTime()+864e5);var r="; expires="+n.toGMTString();document.cookie=["remixtmp_hash_nav","=",o.href,r,"; path=/",i?"; domain=."+i:""].join(""),!a&&(t.match(/^\/*(away|login)(\.php)?([^a-z0-9\.]|$)/)&&(t=""),o.replace(o.protocol+"//"+o.host+"/"+t))}}(location);setTimeout(function(){!location.hash&&window.scrollTo(0,/android/i.test(navigator.userAgent)?1:0)},0);
//-->
</script>
<link type="text/css" rel="stylesheet" href="/css/s_cf.css?723"></link>
<link type="text/css" rel="stylesheet" media="only screen" href="/css/s_yzg.css?196"></link>
<link rel="manifest" href="/manifest.webapp" />
<link rel="canonical" href="https://vk.com/video-43879004_456241313"></link>
<link rel="alternate" href="android-app://com.vkontakte.android/vkontakte/m.vk.com/video-43879004_456241313" />
</head>
<body id="vk" class="vk__page _ivk _touch _hfixed vk_stickers_hints_support_no opera_mini_no vk_al_no">
<div class="layout">
<div class="layout__header mhead" id="vk_head">
<div class="hb_wrap">
<div class="hb_btn">&nbsp;</div>
</div>
</div>
<div class="layout__body " id="vk_wrap">
<div class="layout__leftMenu" id="l">
</div>
<div class="layout__basis" id="m">
<div class="basis">
<div class="basis__header mhead" id="mhead"> <a
class="header__left hb_wrap mhb_home mhb_vkhome"
aria-label="Menu"
href="/" accesskey="*"
>
<div class="hb_btn mhi_home mhi_vkhome">&nbsp;</div>
</a>
<h1 class="header__center hb_wrap mhb_back">
<a
class="header__back al_back"
href="/videos-43879004"
accesskey="0"
aria-label="Back"
></a>
<span class="header__title hb_btn mh_header mhi_back">Video</span>
</h1>
<a href="/login?to=dmlkZW8tNDM4NzkwMDRfNDU2MjQxMzEz" class="hb_wrap mhb_notify" accesskey="#">
<div class="hb_btn">
<em class="mh_btn_label">log in</em>
</div>
</a></div>
<div class="basis__content mcont" id="mcont"><div class="pcont">
<div class="media_view video_view">
<div class="vv_summary">ДЕЛАЕМ ШОКОЛАДНЫХ БАБОЧЕК</div>
<div class="vv_body"><video class="vv_inline_video" preload="none" controls="controls" poster="https://sun1-11.userapi.com/c831409/v831409239/b580a/jb89FfXstZU.jpg" controlsList="nodownload">
<source src="https://cs1-69v4.vkuservideo.net/p15/31804787f129.240.mp4?extra=yXr0Dh2LCkOyEN9ytpeanXO0Y2sWz_Kdq5AhfhmAFIsNa_xSqp08Xn55rbdjToUB-7wqoGaGTBw7jq7HYXBIClYtlRqMHe4noQSRggS_OBZgy93IOCUuR8ajtsoN" type="video/mp4"></source>
<img src="https://sun1-11.userapi.com/c831409/v831409239/b580a/jb89FfXstZU.jpg" class="vv_img" alt="">
<div class="vv_not_support">Unfortunately, your device cannot playback this video</div>
</video></div>
<div class="like_box bl_cont">
<div class="mv_details">
<div class="vv_views">64578 views</div>
<dl class="si_row"><dt>Uploaded by:</dt><dd><a href="/sh.cook">Шедевры кулинарии | Простые рецепты</a></dd></dl>
<div class="vi_values"><span class="item_date">Added on 22 March 2018</span></div>
</div>
<ul class="mv_actions"></ul>
</div>
</div>
<div class="comments_wrap bl_cont"></div>
</div></div>
<div class="basis__footer mfoot" id="mfoot"><div class="pfoot">
<ul id="footer_menu" class="footer_menu">
<li class="fm_row"><a class="fm_item" href="/">Home</a></li>
<li class="fm_row"><a id="fv_link" class="fm_item fv_link" href="https://vk.com/video-43879004_456241313?_fm=1&_fm2=1">Full version</a></li>
</ul>
</div></div>
<div class="_cntrs" style="height:0;overflow:hidden;">
<img width="1" height="1" src="//counter.yadro.ru/hit?uhttps%3A%2F%2Fm.vk.com%2Fvideo-43879004_456241313;r;86844972" alt="" align="left" />
<img width="1" height="1" src="//sb.scorecardresearch.com/p?c1=2&c2=13765216&c3=&c4=https%3A%2F%2Fm.vk.com%2Fvideo-43879004_456241313&c5=&c9=&c15=&cv=2.0&cj=1&rn=86844972" alt="" align="left" />
<img src="//top-fwz1.mail.ru/counter?id=2579437;pid=0;r=" style="border:0;" height="1" width="1" />
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
<!--
parent&&parent!=window&&(document.getElementsByTagName('body')[0].innerHTML='');
//-->
</script>
<div id="vk_utils"></div>
<div id="z"></div>
<div id="vk_bottom"></div>
</body>
</html>
Если посмотреть в код, то там только одна ссылка на видео:
https://cs1-69v4.vkuservideo.net/p15/31804787f129.240.mp4?extra=yXr0Dh2LCkOyEN9ytpeanXO0Y2sWz_Kdq5AhfhmAFIsNa_xSqp08Xn55rbdjToUB-7wqoGaGTBw7jq7HYXBIClYtlRqMHe4noQSRggS_OBZgy93IOCUuR8ajtsoN
И вот она то и ведёт на страницу 404. Всё. Поэтому я и говорю, что безполезно, видео никак не выкачать.
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Последнее редактирование:
  • Спасибо
Реакции: avtostopshik и kagorec

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 099
Благодарностей
648
Баллы
113
Последнее редактирование:

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
  • Спасибо
Реакции: kagorec и Koqpe

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
794
Благодарностей
136
Баллы
43
https://vk.com/dev/video.get?params[owner_id]=84060663&params[count]=2&params[offset]=12&params[extended]=1&params[v]=5.73



Получаем ссылку и удаляем:
Код:
?extra=ez8QyxvoqGujZTjYWRFxNflrX_VsbM...VIPuX6Xeg



Данная ссылка открывается только с IP, с которого был совершён API-запрос.
Нет, нет, и ещё раз нет. Нельзя пользоваться сайтом апи вк для получения ссылок на видео, ибо он то их даёт, но в программе эти же апи запросы не дают ссылок.
Даже если послать запрос:
string urlVideo = ZennoPoster.HttpGet("https://api.vk.com/method/video.get?&owner_id=84060663&access_token=token&expires_in=0&v=5.73", project.Variables["proxy"].Value, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000);
То в ответе не будет ничего со словом extra. Однако будут ссылки на видео такого типа:
https://vk.com/video_ext.php?oid=-86428278&id=172401855&hash=58f9a2f73cdbc677&__ref=vk.api&api_hash=1521862383f6875631488f44f73a_GMYTIMJUGU3TMMI
Эти ссылки правильные, ведут на ролик для полной версии сайта. Используя инфу из этой ссылки можно перейти и на мобильную версию, однако выкачать файл один фиг не получается.
Или, пожалуйста, покажи мне от начала до конца, как ты скачал видео файл не беря инфу (ссылки) с сайта апи вк, а только гет запросами.
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 099
Благодарностей
648
Баллы
113
У меня не скачивает. Что ты сделал, чтобы файлик получить?
@ibred показал Вам правильный способ.
Я все сделал как Вы, только в ответе на гет запрос мне пришла такая ссылка:
Код:
https:\/\/cs9-4v4.vkuservideo.net\/p3\/827b066141eb.720.mp4
Убрал экранирование и скачал видео гет запросом по полученной ссылке.
 

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
794
Благодарностей
136
Баллы
43
@ibred показал Вам правильный способ.
Я все сделал как Вы, только в ответе на гет запрос мне пришла такая ссылка:
Код:
https:\/\/cs9-4v4.vkuservideo.net\/p3\/827b066141eb.720.mp4
Убрал экранирование и скачал видео гет запросом по полученной ссылке.
Блин, почему ж у меня тогда ответ 404 на эти ссылки(((:(
 

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
794
Благодарностей
136
Баллы
43
Похоже действительно, проблема была вот в этом:
Данная ссылка открывается только с IP, с которого был совершён API-запрос.
Нужно всё с одного айпи делать.
Спасибо ребята что помогли разобраться, а то сам я уже запарился и скорее всего так бы и не сделал скачку видео.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)