Image 01


James jbell
Amarok 1.x Scripts
Amarok Shouter

Amarok 1.x Scripts 98 comments

by jbell
Score 50.0%
Oct 03 2006
Opening ports below 1024 are restricted to the root user. If you're comfortable doing such things, you might try running with amarok as root and see what happens. - Aug 02 2006
You need to install the qt bindings for python. The specific package name varies slightly across distributions. For gentoo, it's PyQt. Other distributions may call it something else. - Aug 02 2006
Shouter isn't really meant for low-bandwidth streaming. Streaming an mp3 encoded at 128 will require at least 16 kB per client-second. As far as the 'Max download rate per request' option goes ... well, it should have been removed a couple of months ago. It currently does nothing. - Sep 26 2005
Sorry, this should be fixed now. - Aug 30 2005
Thanks. Fixed in beta2. Mixed-format streams (mp3 + ogg + whatever) aren't possible as there is no way to inform clients that they need to start decoding differently. A pure ogg stream may be doable, though as ogg files only comprise less than a quarter of my collection it's not something that I'm putting much work into. On-the-fly transcoding ogg into mp3 is also doable and is something I'm working on when I have time. - Aug 16 2005
When a python server exits less than gracefully, it tends to not immediately release the port it was using. You can look at a list of your running processes and kill some of the python ones, or edit (I think) ~/.kde/share/apps/amarok/scripts-data/shouterrc to change the port. - Aug 11 2005 is not meant to be run from the command line. It needs to be run by the amaroK script manager so that it can be fed input on events (like track changes, pause, etc). The only file that should be run manually is, but do so only if you're interested in seeing if your server is handling metadata injection correctly. is located in the test subdirectory. It has a required url argument, and the syntax should look like:
python http://hostname:port/mount - Aug 10 2005
The big barriers that I see with this are:
- client buffering. Every user agent that I've looked at has a unique notion of stream buffering. While the data being sent to the clients might be synchronized, clients might be reading from different buffer positions. You could write a very simple non-buffering UA in python that might suit your needs.

-stream throttling done by Shouter. The current model restricts the data based on file position, which won't work very well when sending VBR files to non-buffering clients.

For LAN streaming, I have no doubt that there are easier and more effective methods for synchronized streaming. - Jun 29 2005
Can you tell us what program and version you were using as a client? There were some problems with the initial release with some of the internal playlist management, especially when playing a song that had more than once occurrence in the streamer playlist. This doesn't appear to be an issue anymore but it would be helpful to know what user agent you're using to connect as they all seem to have a slightly different interpretation on what goes into playing a music stream. - Mar 27 2005