Добрый день уважаемые программисты.
Я на своем сайте делал интеграцию видео из VK по ссылке на видео, например так:
https://vk.com/video-18797028_456245672
Далее через curl получаю ссылку на iframe вида
https://vk.com/video_ext.php?oid=-18797028&id=4562...
И уже по ней делаю опять запрос на получение данных о видео: название видео, превью и вместе с ссылками сохраняю в БД, чтобы каждый раз не загружать.
Делаю получение данных так:
$ua = array("Opera/9.80 (Windows NT 6.0; U; zh-cn) Presto/2.5.22 Version/10.50",
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36 OPR/51.0.2830.55",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; HTC-P715a; en-ca) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17",
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20130331 Firefox/21.0",
"Mozilla/4.0 (compatible; U; MSIE 9.0; WIndows NT 9.0; en-US");
$brz = $ua[rand(0,count($ua))];
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // do not return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_USERAGENT => $brz, // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
);
// Запросим страницу и данные по указанной ссылке
$ch = curl_init($linkoEmbed);
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
Ну и затем получаю данные из страницы
if($nameHosting == 'VKCOM'){
preg_match('|"md_title":"(.*)"|sUSi', $content, $md_title);
preg_match('|"jpg":"(.*)"|sUSi', $content, $jpg);
if(isset($jpg[1]) && isset($md_title[1])){
$thumbnail = stripslashes($jpg[1]);
$title = $md_title[1];
$linkEmbed = $videoLink;
}else{
$error = 'Not Found';
}
}
Все работало и очень долго. Но теперь, VK вместо страницы с видео, отдает мне заглушку.
В тексте я вижу такие данные:
заголовок: "Ошибка 429",
заголовок: "Вы запрашиваете слишком много!",
описание: 'Вернее, ваш браузер отправляет слишком много запросов, и сервер VK забил тревогу.',
https: "Эта страница была загружена по HTTP вместо безопасного HTTPS, что означает, что она не будет телепортироваться обратно.
Обратитесь в службу поддержки.",
cookies: "Вы отключили Cookies, но они вам нужны для устраните проблему.',
hash429: "По какой-то причине страница не получила все данные, и без этого она не работает.
Обратитесь в службу поддержки".
Могу ли я это обойти или как-то исправить?