Shoutcast -> Icecast

Bug #713956 reported by Johannes Sasongko on 2011-02-06
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Exaile
Fix Released
Wishlist
Ingo Brunberg

Bug Description

Use the Icecast directory [1] for our currently-disabled Shoutcast plugin. [2] seems to be the only documentation. There's an Amarok script [3] that can be looked at.

[1] http://dir.xiph.org/
[2] http://www.icecast.org/docs/icecast-trunk/icecast2_yp.html
[3] http://kde-apps.org/content/show.php/Icecast.org%20Directory%20Service?content=108337

This is in response to bug 694680.

Related branches

Changed in exaile:
assignee: nobody → Johannes Sasongko (sjohannes)
status: Confirmed → In Progress
Ingo Brunberg (ingo-brunberg) wrote :

I have already modified the Shoutcast plugin to work with Icecast. Just give me a few days to polish it, Then I will post it here.

Ingo Brunberg (ingo-brunberg) wrote :

The plugin retrieves the station list from dir.xiph.org as you would do with your web browser. The downside is that you do not get all the stations available, because the web interface somehow limits the number of search results.

I noticed there is a listing at dir.xiph.org/yp.xml, that most media players are supposed to use. But as I read, that list is also limited. Moreover I have no clue how to categorize that list by genre, because the genres given there do not adhere to a fixed scheme.

As an improvement on the old shoutcast plugin the search dialog now also offers bitrate and format information. It would be nice, if those data were also available in the left panel, for example via tooltips.

The directory listing is parsed with minidom and no error handling. I could rewrite the code using SAX, but it seems not worth the effort. Also note that this is my first programming experience with python.

Johannes Sasongko (sjohannes) wrote :

Changing assignee because I've lost interest in this bug, and setting milestone to 0.3.3 just so it doesn't fall off the radar. Hopefully by then someone can test Ingo's plugin.

Changed in exaile:
assignee: Johannes Sasongko (sjohannes) → Ingo Brunberg (ingo-brunberg)
milestone: none → 0.3.3.0
Changed in exaile:
milestone: 0.3.3.0 → 0.3.3.1
Mathias Brodala (mathbr) wrote :

Ingo, do you see something you would fix and change before we add this to our codebase?

Rocco Aliberti (eri.trabiccolo) wrote :

If you're still interested in it, i tried Ingo's plugin, and it works fine.
There's at least an exception unhandled, and probably must be aligned to changes in exaile in this period: e.g. the use of the providers system.

Ingo Brunberg (ingo-brunberg) wrote :

Happily the plugin still works with the current codebase. The exception, that can be thrown by the XML parser, should be handled. It seems the minidom is not the best solution for XML handling in python. I will have a look at a better alternative. Just give me a few days.

Mathias Brodala (mathbr) wrote :

I recommend you to have a look at Xpath from libxml2, it’s really easy to gather the necessary nodes that way. Have a look at our xl.playlist.ASXConverter for an example.

Any progress on this?

Changed in exaile:
milestone: 3.3.1 → 3.4.0

I would love to get this in to the next release, but it doesn't currently function. I get an error from minidom parsing the page.

Looking at the xiph site, they still haven't setup a proper API, so scraping the page will have to do for now.

There were HTML5 audio tags that minidom couldn't parse. I added a regex to get rid of them and the plugin seems to work fine. Pushed in r4519. Thanks, and sorry this was so delayed!

Changed in exaile:
status: In Progress → Fix Committed
Changed in exaile:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments