<?php
set_time_limit(0); // убираем тайм аут
$cookie = "";
$login = "ваш@емаил";
$password = "ваш пароль";
$user_vk = "айди/адрес"; // откуда хотим скачать (номер страницы/адрес страницы)
$savefolder = "music"; // куда будем сохранять файлы
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true); // true т.к. мы будем отправлять post запрос:
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)');// чтобы сайт думал, что мы - браузер:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ответ сервера будем записывать в переменную
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // по редиректам будем переходить автоматически.
curl_setopt($ch, CURLOPT_URL, 'http://login.vk.com/?act=login');
$post = array( //Формирование запроса
'act' => 'login',
'q' => '',
'al_frame' => '1',
'expire' => '',
'captcha_sid' => '',
'captcha_key' => '',
'from_host' => 'vkontakte.ru',
'email' => $login,
'pass' => $password
);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$answer = curl_exec($ch);
/* В $answer нам приходит javascript, который и устанавливает куки
с названием: remixsid Нам нужно cпарсить эти 60 символов,
идентификатора сессии. с помощью них vkontakte поймет,
что мы авторизировались.*/
$sid = substr($answer, strpos($answer, "setCookieEx('sid', '")+20, 60);
$cookie = 'remixsid='.$sid;
//
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "act=load_audios_silent&al=1&edit=0&gid=0&id=".$user_vk);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_URL, 'http://vkontakte.ru/audio'); // укажем страницу, с которой мы получим данные
$data = curl_exec($ch);
preg_match_all("/\['(.*?)','(.*?)','(.*?)','(.*?)','(.*?)','(.*?)','(.*?)','(.*?)','(.*?)','(.*?)'\]/i",$data,$parse);
curl_close($ch);
// и собственно и скачиваем
echo "<pre>";
echo "<b>Начинаем скачку</b><br><br>\n\n";
flush();
foreach($parse[0] as $array_num => $array_list) { // начинаем скачивать
$file=str_replace(array("#",";","/","\\"),"",(iconv("cp1251","utf-8",$parse[6][$array_num]))).".mp3"; //путь куда сохранит не забудь дать разрешение на запись в директорию
$ch = curl_init ($parse[3][$array_num]); // url файла
$fp = fopen ($savefolder."/".$file, "w"); // создаем файл для записи
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
echo "файл скачан: ".iconv("cp1251","utf-8",($parse[6][$array_num].' - '.$parse[7][$array_num]))." ".date("H:i:s")."<br>\n";
flush();
//echo "filename:".$parse[3][$array_num].", name:".iconv("cp1251","utf-8",($parse[6][$array_num].' - '.$parse[7][$array_num]))."\n";
}
?>
воскресенье, 1 сентября 2013 г.
PHP скрипт для выкачивания музыки из ВК в папку
Подписаться на:
Комментарии к сообщению (Atom)
Постоянные читатели
Популярные сообщения
-
bash скрипт использующий API ВК без авторизации: #!/bin/bash sys_version="0.3b" sys_method='audio.search' sys_tem...
-
jQuery: Обнаружение изменения ориентации экрана $ ( window ). bind ( 'orientationchange' , function ( event ) { s...
-
Навигация по страницам для сайта на PHP Функция постраничной навигации: <?php function pagination($query, $per_page = 10,$pag...
-
Эмуляция CURLOPT_FOLLOWLOCATION когда появляется ошибка CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir i...
-
AutoLogin to website from panel of bookmarks on Javascript: Автоматическая авторизация на сайте через яваскрипт код из панели закладок. ...
-
Запросы на выборку из таблицы Самыми распространенными и простыми запросами SQL в базе данных являются запросы на выборку. Отличают их...
-
Sending to FTP and copying the link to the clipboard (Visual Basic Script) Rem Отправка на FTP и копирование ссылки в буфер (Visual Basic Sc...
-
At the start of working with MySQLi on PHP we must create connection: $mysqli = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die(...
-
Yandex Map API 2.0 simple example (живой пример) <div class="content"> <script src="http://api...
-
Брут (подбор) пароля по md5 php скриптом // Устанавливаем неограниченное время выполнения скрипта set_time_limit(0); // Читаем ...
Комментариев нет:
Отправить комментарий