VKPLS — или как создать плейлист из аудиозаписей вконтакте

scr_demo

Доброй ночи всем читателям нашего блога! Мы решили поделиться с Вами небольшим веб-сервисом, который написал для себя один из наших «тимлидов» и немного рассказать о его создании.

Цитируем ниже, с его статьи на хабре.

Так получилось, что с появлением соц. сетей и их широким распространением в наше время — я, а может и Вы, не замечая своего времени ежедневно залипаете в них. Все любят музыку, а я без нее жить не могу и всю свою музыкальную коллекцию я храню в профайле вконтакте. Так я всегда в курсе новинок, не трачу свое время на поиск и скачивание, а возможность доступа к своей музыке почти с любого гаджета в любом месте где есть интернет придает максимум удобства. Я очень рад что прошли те деревянные времена, когда хороший интернет был какой-то роскошью, поэтому больше нет необходимости хранить такую информацию на своем жестком диске. Все что не конфиденциально — я выбрасываю в облако.

Большую часть своей работы я выполняю за компьютером, а это значит, что музыка мне необходима как кислород — чтобы сконцентрироваться на поставленных задачах. Врубаешь любимый альбом в 5.1 и творишь. Но есть одно но, чтобы послушать музыку в вк, я должен зайти в онлайн, а если заходишь в онлайн — то непременно получаешь кучу сообщений и затягиваешься в нежелательные беседы, я человек добрый и отзывчивый поэтому не могу игнорировать своих друзей с их постоянными проблемами. Но мне ведь нужно сконцентрироваться на работе, а вся моя музыка там, где меня всегда что-то отвлекает.

Я обожаю линукс, но нормальных плагинов для музыкальных плееров или самих плееров для прослушивания музыки с вк, я так и не встретил. Тогда я решил что нужно что-то с этим делать и накидал за пару часов небольшой php скрипт, который и назвал vkpls (не трудно догадаться, что я имел ввиду).

Суть скрипта в получении прямых ссылок на аудиозаписи и генерации потокового плейлиста, алгоритм до безобразия прост, я завязал его на VK.API:

Для начала я создал Standalone приложение в разделе «Для разработчиков» и получил для него права на доступ к аудиозаписям, после этого мне необходимо было пройти авторизацию, для создания ACCESS_TOKEN, т.к. доступ к информации об аудиозаписях (метод audio.get в vk.api) не возможен по простому POST или GET запросу.

Теперь, я мог с помощью средств старенького PHP направлять запрос с интересующими меня параметрами без ограничений, а в ответ — получать интересующую меня информацию в формате JSON. Функция audio.get — возвращает список аудиозаписей пользователя или сообщества со всей дополнительной информацией — это то мне и было нужно.

Так, например в ответ такого запроса:
https://api.vk.com/method/audio.get?user_id=ВАШ_ID&v=5.28&access_token=ВАШ_ACCESS_TOKEN

Мы получаем массив в формате JSON со следующей информацией:
Ответ на audio.get в JSON
response: {
count: 505,
items: [{
id: '34',
photo: 'http://cs7009.vk....2/rj4RvYLCobY.jpg',
name: 'Tatyana Plutalova',
name_gen: 'Tatyana'
}, {
id: 232745053,
owner_id: 34,
artist: 'Ambassadeurs',
title: 'Sparks',
duration: 274,
url: 'http://cs6164.vk....lGEJhqRK8d5OQZngI',
lyrics_id: 120266970,
genre_id: 18
}, {
id: 232733966,
owner_id: 34,
artist: 'Aloe Blacc',
title: 'Can You Do This ',
duration: 176,
url: 'http://cs6157.vk....erOa0DvsyOCYTPO1w',
genre_id: 2
}, {
id: 232735496,
owner_id: 34,
artist: 'Aloe Blacc',
title: 'Wake Me Up',
duration: 224,
url: 'http://cs6109.vk....FzHJU55ixz8Av8ujc',
lyrics_id: 119056069,
genre_id: 2
}]
}

Посмотрите — интересующие нас ключи artist, title, duration, url присутствуют для каждой аудиозаписи. Воспользовавшись функцией json_decode я преобразовал полученный массив в понятный для php формат. Все что мне осталось для достижения результата — это сгенерировать файл плейлиста.
Структура M3U плэйлиста:
#EXTM3U
#EXTINF:duration,artist - title
url
...

Не было ничего проще записать в файл с помощью цикла foreach все полученные данные и сохранить его в m3u.
И все получилось, теперь я мог слушать музыку в любом музыкальном плеере без необходимости заходить в контакт.

Я решил поделиться своей идеей и сделать ее доступной для таких же как и я. С помощью CSS фрэймворка Maxmertkit (представленного одним из пользователей Хабра здесь) я сверстал небольшую страницу для удобства использования скрипта. Для всех желающих она доступна по следующей ссылке — VKPLS — там же вы можете прочитать инструкцию или посмотреть видео.

Следует отметить, что существует одно но, в связи с тем что ссылки на аудиозаписи на серверах вконтакте меняются с переодичностью в 0,5 — 3 дня, рекомендую чаще обновлять свой плэйлист. На этом все, спасибо за внимание! О том как это работает, предлагаем посмотреть видео ниже.

Создать потоковый m3u плейлист из аудиозаписей вконтакте в один клик
VKPLS — или как создать плейлист из аудиозаписей вконтакте
Дата: 02/07/2015
Создать потоковый m3u плейлист из аудиозаписей вконтакте в один клик
Рейтинг: 5

Метки: , , , , , , , , , , , , , , , , , , , ,

Просмотров: 13 036

9 комментариев на “VKPLS — или как создать плейлист из аудиозаписей вконтакте” Следить за обсуждением

  1. Ро 11.02.2015 в 02:14 #

    А где ссылка на гит?

    • BoutNew.ru 11.02.2015 в 03:14 #
      BoutNew.ru

      Автор пока не выложил его в свободный доступ аргументируя тем, что «прежде чем выложить на гит, его необходимо довести до ума». smile

  2. Александр 13.02.2015 в 18:59 #

    Вдохновился идеей и написал свой велосипед http://vkpls.yashkin.by/

  3. Александр 12.03.2015 в 23:56 #

    Супер! спасибо большое! Потрясающая идея!

  4. Слава 24.06.2016 в 07:03 #

    Всё гууд *thank_you*

  5. Марина 04.07.2017 в 17:22 #

    Спасибо за Ваш сервис, а то надоело слушать рекламу при прослушивании своего плей-листа вконтакте…

  6. Иван 19.01.2023 в 13:46 #

    Не работает

Добавить комментарий

Top