101.ru-плеер для красноглазых
Давным-давно бродили по земле динозавры, климат был мягче, люди приветливей, политики скромнее, компы слабее, а графических интерфейсов не было вовсе и все пользовались консолью для решения своих задач. Я эти времена не застал: по молодости лет, сразу оказался напротив 95-ой винды. Впрочем, тогда я об этом ни капельки не жалел. Но про волшебную тогда консоль наслышан был немало и испытывал перед ней паническое уважение. По прошествии многих лет ситуация кардинально изменилась и сейчас терминал - первая программа, которая запускается после загрузки системы, MC пришёл на смену TC, mplayer - LA и т. д.. Да что там говорить, даже радио слушается нынче через терминал. Об этом и пойдёт здесь речь.
Маловато уже, наверное, людей, которые не слышали про сервис 101.ru. Сервис действительно весьма хорош: большой выбор станций, глюки весьма редки, приемлемое качество потока. Но у него есть крупный недостаток: слушать его можно только через браузер. А это тянет за собой кучу неприятностей, как то: флэш-плеер (а под линуксом это стабильно отожранные 30-40% процессора), надоедливая реклама, запущенный браузер в конце концов. В довесок, после 4-5-ичасового прослушивания браузер начинает отжирать весь процессор и немало памяти. Лечится это перезапуском браузера, а у меня браузер, как правило, запускается только один раз утром. Как-то раз мне это надоело, я вооружился файрбагом и нашёл прямой линк на поток. Обычно я слушаю блюзовую станцию и её урл таков: http://fr1.101.ru:8000/c5_2. Привычно забиваю в терминале команду:
$ mplayer http://fr1.101.ru:8000/c5_2
И слышу в ответ, вместо 12 тактов блюза, молодой мужской голос, издевательски мне сообщающий, что де 101.ru нельзя слушать через плеер, так что вперёд, включай браузер и слушай через него. Снести такое оскорбление я не смог и начал разбираться. Файрбаг, гениальное изобретение, помог определить, что проблема в хидерах запроса. 101.ru парсит User-Agent и отдаёт поток только известным браузерам. mplayer запрос с хидерами посылать не умеет, так что пришлось воспользоваться wget-ом:
Хе-хе, тянется родимый, тянется. Теперь в соседнем табе:
А теперь и проигрывается.
Проблему можно было считать решённой, но мне не давали спокойно жить некоторые мелочи:
- ну не хорошо это - два таба держать ради радио;
- не видно исполнителя и название композиции;
- довольно скоро выходной файл стал раздражать своим размером.
Было решено обрушить на 101.ru всю мощь bash-а, точнее ту её часть, которой я владею. Как только выдалось время, набросал маленький парсер специально под 101.ru. Итак, знакомьтесь, скрипт 101ply. Ниже будет дан линк для скачивания, а пока я попотчую вас парочкой скриншотов:
Скрипт принимает один параметр: номер станции. Если запустить его без параметра, он полезет на сайт, распарсит его и выдаст список доступных станций с их номерами:
Станций там, на самом деле, сотни полторы. Вводите номер, скрипт запускает сам себя с параметром и начинается проигрывание:
Прогрываемые файлы складируются в /home/<имя пользователя>/.101ply/store/<название станции>. Впрочем, если изменить директиву STORE_SONGS в скрипте на "0", то файлы сохраняться не будут.
Сам код скрипта приводить здесь не стану, по причине приличного объёма последнего. Кому интересно, вот линк для скачивания.
PS: Код сырой, и имеет большушую проблему со сценарием завершения: wget остаётся висеть в бэкграунде и тянуть поток в файл композиции, которая проигрывалась последней. Его надо убивать вручную. Как решу эту проблему, выложу изменения.
PS2: Скрипт был написан в образовательных и спортивных целях и посвящается всем красноглазым. Надеюсь, это замечание успокоит любителей пошвырять помидоры типа "нахрен не надо", "аффтор идиёт" и пр. Сам скрипт можете вертеть так и эдак и пользовать на своё усмотрение. Лицензионной защиты не предусмотрено специально.
PS3: Во время написания скрипта, никто, кроме гугля, не пострадал.
Последние посты
Комментарии
- Главная » Администрирование »
8 weeks 3 days ago - Огромное спасибо!
9 weeks 2 days ago - Ну это уже зависит от того,
9 weeks 3 days ago - Видимо убрали клиенты. Раньше
9 weeks 3 days ago - Переключатели
9 weeks 4 days ago - Прекрасный сайт: много
10 weeks 4 days ago - Не согласен. Если первый if
13 weeks 1 day ago - ищу работу
13 weeks 5 days ago - ПОИСК РАБОТЫ:ЭЛЕКТРОМОНТЁР 5 РАЗРЯДА
13 weeks 5 days ago - По моему функция t()
14 weeks 3 days ago
Архив
- August 2010 (8)
- September 2010 (16)
- October 2010 (13)
- November 2010 (9)
- December 2010 (5)
- January 2011 (5)
- February 2011 (3)
- March 2011 (3)
- April 2011 (5)
- May 2011 (5)
Новый комментарий