Как стать автором
Обновить

Получить видео с vk.com при помощи PHP. Все гораздо проще

Доброго времени суток, уважаемые хабравчане. Недавно я прочитал мой Получить видео с vk.com при помощи PHP и был ошеломлен. Видимо, не я один, так как карма автора XProx была изрядно попорчена. В комментариях называли приведенный код «говнокодом», автор статьи утверждал что "через API нельзя скачать видео", вводил в заблуждение пользователей и говорил что подобный код стоит 300 вечнозеленых. Все это вызвало во мне бурю эмоций, я не удержался и решил написать статью. Я решил подойти по другому к поставленной задаче и выложить свое решение.

Для заинтересовавшихся скажу, что для получения прямых ссылок на видео нам достаточно следующего кода:
define('ACCESS_TOKEN', '********');

function api($method, $params = array())
{
	$params['access_token'] = ACCESS_TOKEN;
	
	$url = 'https://api.vk.com/method/' . $method . '?' . http_build_query($params);
	$response = file_get_contents($url);
	return json_decode($response, true);
}

$api = api('video.get', array(
	'videos' => '23962687_159622161',
));

print_r($api);

И все!
Результат вышеприведенного кода:
Array
(
    [response] => Array
        (
            [0] => 1
            [1] => Array
                (
                    [vid] => 159622161
                    [owner_id] => 23962687
                    [title] => Nero – Guilt (Official Video)
                    [description] => ↳ vk.com/dubstep_top
                    [duration] => 181
                    [link] => video159622161
                    [image] => http://cs12850.userapi.com/u27720818/video/m_367520e6.jpg
                    [image_medium] => http://cs12850.userapi.com/u27720818/video/l_a956702d.jpg
                    [date] => 1302727066
                    [views] => 10479
                    [files] => Array
                        (
                            [mp4_240] => http://cs12850.userapi.com/u27720818/videos/4c4e2b2044.240.mp4
                            [mp4_360] => http://cs12850.userapi.com/u27720818/videos/4c4e2b2044.360.mp4
                            [mp4_480] => http://cs12850.userapi.com/u27720818/videos/4c4e2b2044.480.mp4
                            [mp4_720] => http://cs12850.userapi.com/u27720818/videos/4c4e2b2044.720.mp4
                        )

                    [player] => http://vk.com/video_ext.php?oid=23962687&id=159622161&hash=008045cc2d45fd4d
                )

        )

)


Думаю, комментарии тут не нужны. В массиве files мы имеем необходимые нам ссылки. Но давайте по порядку. Для работы скрипта нам нужен токен, да причем не обычный, а доверенного приложения, которое может получать через API прямые ссылки на видео. Доверенными приложениями ВКонтакте являются официальные мобильные клиенты для Android, iPhone, etc. Поступаем следующим образом. Нехитрыми путями узнаем идентификатор приложения Adnroid: 2274003 и формируем ссылку для получения токена: http://oauth.vk.com/authorize?client_id=2274003&response_type=token. После перехода по ссылке и разрешения доступа браузер перенаправляет нас на страницу вида: oauth.vk.com/blank.html#access_token=****&expires_in=86400&user_id=***. С этого адреса мы и берем access_token. Всем спасибо за внимание. Отправляйте, пожалуйста, найденные ошибки в личные сообщения. Очень надеюсь на инвайт :)
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.