Vkpls - або як створити плейлист з аудіозаписів вконтакте

Доброї ночі всім Новомосковсктелям нашого блогу! Ми вирішили поділитися з Вами невеликим веб-сервісом, який написав для себе один з наших «тімліда» і трохи розповісти про його створення.
Цитуємо нижче, з його статті на Хабре.
Так вийшло, що з появою соц. мереж і їх широким розповсюдженням в наш час - я, а може і Ви, не помічаючи свого часу щодня залипати в них. Всі люблять музику, а я без неї жити не можу і всю свою музичну колекцію я зберігаю в профайлі вконтакте. Так я завжди в курсі новинок, не витрачаю свій час на пошук і скачування, а можливість доступу до своєї музики майже з будь-якого гаджета в будь-якому місці де є інтернет надає максимум зручності. Я дуже радий що пройшли ті дерев'яні часи, коли хороший інтернет був якийсь розкішшю, тому більше немає необхідності зберігати таку інформацію на своєму жорсткому диску. Все, що не конфіденційно - я викидаю в хмару.
Більшу частину своєї роботи я виконую за комп'ютером, а це значить, що музика мені необхідна як кисень - щоб сконцентруватися на поставлених завданнях. Врубать улюблений альбом в 5.1 і твориш. Але є одне але, щоб послухати музику в вк, я повинен зайти в онлайн, а якщо заходиш в онлайн - то неодмінно отримуєш купу повідомлень і затягуєшся в небажані бесіди, я людина добра і чуйна тому не можу ігнорувати своїх друзів з їх постійними проблемами. Але мені ж треба сконцентруватися на роботі, а вся моя музика там, де мене завжди щось відволікає.
Я обожнюю лінукс, але нормальних плагінів для музичних плеєрів або самих плеєрів для прослуховування музики з вк, я так і не зустрів. Тоді я вирішив що потрібно щось з цим робити і накидав за пару годин невеликої php скрипт, який і назвав vkpls (не важко здогадатися, що я мав на увазі).
Суть скрипта в отриманні прямих посилань на аудіозаписи і генерації потокового плейлиста, алгоритм до неподобства простий, я зав'язав його на VK.API:
Тепер, я міг за допомогою засобів старенького PHP направляти запит з важливими мене параметрами без обмежень, а у відповідь - отримувати цікаву для мене інформацію в форматі JSON. Функція audio.get - повертає список аудіозаписів користувача або спільноти з усією додатковою інформацією - це те мені і було потрібно.
Подивіться - що цікавлять нас ключі artist, title, duration, url присутні для кожної аудіозаписи. Скориставшись функцією json_decode я перетворив отриманий масив в зрозумілий для php формат. Все що мені залишилося для досягнення результату - це згенерувати файл плейлиста.
Структура M3U плейлиста:
# EXTM3U
#EXTINF: duration, artist - title
url
.
Не було нічого простіше записати в файл за допомогою циклу foreach всі отримані дані і зберегти його в m3u.
І все вийшло, тепер я міг слухати музику в будь-якому музичному плеєрі без необхідності заходити в контакт.
VKPLS - або як створити плейлист з аудіозаписів вконтакте
Створити потоковий m3u плейлист з аудіозаписів вконтакте в один клік
VKPLS - або як створити плейлист з аудіозаписів вконтакте