[Читать рекомендуется под https://www.youtube.com/watch?v=ImDJUCoWOkY]
Сегодня я вам расскажу, как поесть говна в 64kbit mp3 с сайта junodownload.com. Так получилось, что новый альбом Совокса иначе не найти, а специфика его музыки позволяет не блевать даже при таком отвратительном битрейте.
Для начала нам понадобится браузер, флеш и сниффер. Я использую ПрыщеЛис, ГовноФлеш и няшный wireshark. Идём на страничку интересующего альбома, дёргаем "играть всё в говноплеере", включаем сниффер и получаем url интересующего трека: в дампе отчётливо видна строчка вида "GET /api/1.2/track/dostream?track%5Fkey=2058728%2D02%2D01%2D03 HTTP/1.1\r\n". Дальше, покликав в говноплеере по осциллограмме, можно обнаружить, что сайт даёт нам возможность слушать всю музяку целиком, а не только включившийся и доступный через m3u'шку отрывок. Правда, мелкими кусочками. Выдираем url, видим загадочную опцию "position". Играемся с плеером и понимаем, что позиция - это смещение от начала трека в миллисекундах. Задаём 0, скармливаем курлу, получаем файл размером 241664 байта. Играем. Ня! Прикидываем число кусков по информации о продолжительности трека из первого куска; в моём случае получилось одиннадцать. Качаем остальные куски с инкрементом 30000, конкатенируем, играем. ГОВНО! На стыках явно какая-то лажа. Берём hexdump, читаем ппервые несколько байт с начала второго куска. Берём bgrep и обнаруживаем, что эти же байты есть в первом куске по смещению 240000. Отлично! Делаем truncate -s 240000, конкатенируем, играем. НЯ! Автоматизируем, например, так:
for i in `seq -w 0 10`; do curl 'http://www.junodownload.com/api/1.2/trac.....m?position='$((i*30000))'&track%5Fkey=2058728%2D02%2D01%2D03' > lol$i; truncate -s 240000 lol$i; done
Не забываем, что truncate может и увеличивать длину файла, так что для последнего куска делать это не надо. Полноценный костыль мне было пилить лень, да.
Релизим полученное говно на пайретбей, дабы все люди могли насладиться результатами нашего труда (остальные треки получены более приличными методами): https://thepiratebay.se/torrent/7908444 (заодно посмотрим, насколько хорошо transmission осилит засидить trackerless-торрент за натом)
Всем хорошей и свободной (как в пиве) музыки в наступающем новом году!