Года так с 2012 я начал слушать прекрасную радиостанцию, а точнее, сборник радиостанций, под названием Digitally Imported. Всё шло хорошо до недавнего времени: разработчикам радио надоело поддерживать дармоедов с их проигрывателями и они решили наглухо зарезать все каналы для прослушивания не с их сайта, запуская вместо музыки противного мужика на всех языках, в том числе и на русском. Нет, так не пойдёт. Верните мне мой любимый «ДИДИДИ»!

Как позже выяснил один мой товарищ, они втупую проверяют наличие HTTP-заголовка Referer и его содержимое, чтобы там был только их домен. Ну что ж, хотите реферер — получайте реферер. Я написал маленький конфиг для nginx, который создаёт виртуальный сервер и делает его ретранслятором для DI.fm, подставляя туда все нужные заголовки.

server {
        listen 80;
        server_name dididi.densetos.com;
        resolver 8.8.8.8;

        location ~ "\/pub([0-9]{1,3})\/(.*)" {
                proxy_pass http://pub$1.di.fm/$2;
                proxy_set_header Host "pub$1.di.fm";
                proxy_set_header Referer "http://www.di.fm/kak_eto_susno";
                proxy_set_header User-Agent "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 FcukUrCopyrights/1.4.8.8";
        }
}

Посмотреть как это работает можно на сервере, имя которого я умышленно оставил в приведённой выше конфигурации. Конфиг, к слову, не простой, а золотой: он позволяет выбрать из доступных серверов (pubX) и указать нужный канал. Например, чтобы «слухануть трапца» с пятого сервера, нужно перейти вот по этой ссылочке:

http://dididi.densetos.com/pub5/di_trap_aac

Прошу не пользовать этот сервер постоянно. Я ограничил количество одновременных соединений до десяти, чтобы DI меня совсем не забанил со всех своих серверов.

Если возиться с nginx не хочется, у Genjitsu Gadget Lab есть альтернативное решение на Python.