Хочется слушать онлайн радио в нормальном плеере и с удобством.
Когда-то я делал это через vlc, но в последних версиях их заставили убрать встроенную поддержку shoutcast :(.
Пытался довести до ума плеер Listen, но к сожалению до конца не удалось, хотя плеер очень даже нравится. Удалось добиться получения каталога музыки и ссылки на плейлист радиостанции на сайте shoutcast, а вот переходить (редиректить) с сайта shoutcast на саму радиостанцию не хочет.
Оба плеера написаны на python.
Т.е. Listen получает ссылку вида
и обработать его, вытащив значения
Хочу предупредить все делалось на Alt Linux 5, все пакеты из стандартного репозитария.
Ставим Listen
Идем в
в самом начале добавляем строчку
чуть ниже меняем
и чуть ниже меняем:
на
С другим User-agent плейлист shoutcast не отдает :(.
После этого начинает показывать список радиостанций и добавлять их в список воспроизведения.
Осталось заставить его проигрывать радиостанции. Если кто знает как его заставить сделать это, напишите.
Перейдем к Exaile.
Устанавливаем
Идем в
Меняем строку
Еще чуть ниже комментируем строчку
Очень хочется допилить Listen, он мне больше понравился, чем Exaile, хотя и сильно тормознее.
У кого есть какие идеи как допилить Listen?
Когда-то я делал это через vlc, но в последних версиях их заставили убрать встроенную поддержку shoutcast :(.
Пытался довести до ума плеер Listen, но к сожалению до конца не удалось, хотя плеер очень даже нравится. Удалось добиться получения каталога музыки и ссылки на плейлист радиостанции на сайте shoutcast, а вот переходить (редиректить) с сайта shoutcast на саму радиостанцию не хочет.
Оба плеера написаны на python.
Т.е. Listen получает ссылку вида
http://yp.shoutcast.com/sbin/tunein-station.pls?id=7678
и на этом все. А вот скачать по этой ссылке плейлист tunein-station.pls
в виде[playlist] numberofentries=3 File1=http://67.213.220.36:80 Title1=(#1 - 93/800) 80s Planet.com::80sPlanet.com, the 80s! Length1=-1 File2=http://67.228.177.199:80 Title2=(#2 - 19/150) 80s Planet.com::80sPlanet.com, the 80s! Length1=-1 File3=http://67.213.220.36:8080 Title3=(#3 - 100/400) 80s Planet.com::80sPlanet.com, the 80s! Length1=-1 Version=2
и обработать его, вытащив значения
File1,File2 и т.д.
и уже их проигрывать он не хочет.Хочу предупредить все делалось на Alt Linux 5, все пакеты из стандартного репозитария.
Ставим Listen
#apt-get install listen
.Идем в
/usr/lib/listen/plugins/webradio
переносим куда-либо компилированные файлы shoutcast.pyc и shoutcast.pyo и правим файл shoutcast.py:в самом начале добавляем строчку
import urllib2
чуть ниже меняем
# with genre= return station list SHOUTCAST_URL_QUERY = "http://www.shoutcast.com/sbin/newxml.phtml" # Use id= to select stream SHOUTCAST_URL_STREAM = "http://www.shoutcast.com/sbin/tunein-station.pls"на
# with genre= return station list SHOUTCAST_URL_QUERY = "http://yp.shoutcast.com/sbin/newxml.phtml" # Use id= to select stream SHOUTCAST_URL_STREAM = "http://yp.shoutcast.com/sbin/tunein-station.pls"
и чуть ниже меняем:
try: handle_read = urlopen(url)
на
try: opener = urllib2.build_opener() opener.addheaders = [('User-agent', 'winamp')] handle_read = opener.open(url)
С другим User-agent плейлист shoutcast не отдает :(.
После этого начинает показывать список радиостанций и добавлять их в список воспроизведения.
Осталось заставить его проигрывать радиостанции. Если кто знает как его заставить сделать это, напишите.
Перейдем к Exaile.
Устанавливаем
#apt-get install exaile
Идем в
/usr/share/exaile/plugins/shoutcast
переносим куда-либо файлы __init__.pyc и __init__.pyo и правим файл __init__.py:Меняем строку
#_USERAGENT = "Exaile Shoutcast Plugin/%s +http://www.exaile.org"на
_USERAGENT = "winamp"Опять же по причине того, что shoutcast не отдает плейлист с другим user agent. Возможно есть еще какие-то варианты и наверняка есть, но это сейчас не важно. Нас вполне устраивает winamp как user agent.
Еще чуть ниже комментируем строчку
_USERAGENT = _USERAGENT % _PLUGINVERSIONи меняем все строчки
c = httplib.HTTPConnection(hostinfo.netloc, timeout=20)на
c = httplib.HTTPConnection(hostinfo.netloc)Сохраняем, запускаем и радуемся!!!
Очень хочется допилить Listen, он мне больше понравился, чем Exaile, хотя и сильно тормознее.
У кого есть какие идеи как допилить Listen?
Только вот где теперь найти старую версию exaile или плагин shoutcast
ОтветитьУдалитьЗдравствуйте. Исходники Exaile можно скачать здесь https://launchpad.net/exaile/+download включая старые релизы. Вот здесь разработчики отказались от дальнейшей поддержки shoutcast https://bugs.launchpad.net/exaile/+bug/694680
ОтветитьУдалитьЯ разбирался с версией exaile 0.3.0.1
ОтветитьУдалитьЧто на 0.3.0.1 что на других версиях пока ничего путного не выходит.
ОтветитьУдалитьЕсли делать точь-точь как описано то получаем следующее
Could not enable plugin: not all arguments converted during string formatting
Может где-то я косячу. Не знаю. Если у вас все работает, можете ли вы файл __init__.py выложить?
К сожалению у меня сейчас нет ALT Linux 5. Дома у меня arch linux, но там нет ни exaile, ни listen. На работе ALT Linux 6, попробую на нем. О результатах отпишусь. Язык Python я к сожалению толком не знаю.
ОтветитьУдалить