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

Muz.ru отдает аудиоматериал бесплатно

Время на прочтение2 мин
Количество просмотров1.4K
imageПриветствую всех пользователей!

N.B. Сразу хочу внести поправку. Дело в том, что аудиоматериал с серверов muz.ru можно получить в качестве 128 kb/s. Поэтому данная методика будет актуальна лишь для аудиокниг, нежели для композиций.

Для чего всё это было нужно?


Ответ очень прост — для интереса. Дело в том, что на представленном сайте используется собственный flash аудиопроигрыватель, который в каких-то случаях ведёт себя гуманно, а в каких-то нет. Поясню почему. Этот проигрыватель какие-то аудиозаписи воспроизводит в полном объёме, а какие-то насильно урезает до 30 секунд. По композициям, которые урезаются, сказать ничего не могу, а вот по аудиокнигам да — они все урезаны до 30 секунд. Вот поэтому я и решил разобраться что к чему.

Как получить файл


Сначала я решил поизучать их flash аудиопроигрыватель. Выдернул с сайта, отдебажил, но ничего путного не увидел и поэтому решил бросить эту затею по распотрашению подозреваемого и начать исследовать GET и POST запросы от/к серверу.

Для того, чтобы получить информацию о треке, надо отправить POST запрос по адресу muz.ru/Services/Player2.asmx/GetTrackInfo и в качестве передаваемого параметра указать номер трека:



Ответ не заставит себя долго ждать и в результате мы получаем вот такое:



Нас будет интересовать параметр FirstTouchGuid. Хочу отметить, что этот параметр уникальный и при каждом новом обращении к серверу он меняется. Затем, для получения Id ссылки нам необходимо отправить запрос по адресу:
h**p://fs.muz.ru/handlers/link.ashx?f=FirstTouchGuid

В результате чего нам вернётся такой же уникальный Id из которого мы уже сможем сформировать окончательную ссылку на аудиозапись. Сама же ссылка будет иметь такой вид:
h**p://fs.muz.ru/handlers/audio.ashx?f=downloadLinkId

По итогу, мы сможем сохранить файл audio.ashx, который есть ни что иное, как mp3:



Автоматизация процесса


Я набросал простейший код на C#, который позволяет продемонстрировать всё выше сказанное. Выглядит этот код в оконном виде следующим образом:



Исходный код оконного вида: pastebin.com/E09zNKPS

P.S. Все эти мои домыслы имеют исключительно познавательный характер. Считаю правильным хранить аудиозаписи на сервере урезанные хардкорным способом до длительности в 30 секунд, а не изобретать проигрыватели, которые могут лишь скрыть от пользователя часть аудиозаписи. Писал администрации сайта еще около года назад, но всемогущественный игнор оказался таким всемогущественным.

Спасибо вам, что уделили внимание прочтению данного поста. Всем удачного дня!
Теги:
Хабы:
Всего голосов 51: ↑37 и ↓14+23
Комментарии25

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн