Shoutmatica

Shoutcast source with iTunes playlist and multi-stream support


While persuing the desire to set up an online radio stream, I tried a lot of open-source stream sources, but none of them satified my needs so I wrote my own. Shoutmatica is a powerful shoutcast stream server that imports track information and playlists from iTunes. This allows simple and convenient playlist editing and library management for users that have iTunes. By either running Shoutmatica from your iTunes computer, or by syncing your iTunes library to a remote server, you can create shoutcast streams. You don’t need to have iTunes on the computer that is running Shoutmatica. Multiple streams can be run at once, the limit being mostly bandwidth and CPU on the source machine. The following is a summary of the major features:

  • multiple streams can be generated with a single Shoutmatica instance
  • iTunes track info and playlist import uses iTunes to setup shows
  • automatic station ID/sting insertion
  • crontab-like show schedule format
  • default show playback if no show scheduled
  • stringent schedule time enforecement prevents shows from running long
  • random and linear playback modes
  • audio output level compressor configurable for each stream
  • automatic stream and library reloading on-the-fly
  • paranoid network code keeps the source connected to the stream server
  • song/artist metadata upload sends track info to stream server
  • audio file decode and stream encode via external programs (faad, LAME, etc.)
  • logging support
  • portable software written in Java

Requirements

Shoutmatica requires that you use iTunes to manange your music. Playlist and track information is parsed from the library XML file that iTunes generates. If you wish to support another wayof loading track information and playlist data, you can write a different library import module. All the code is modular and should make it fairly easy to do this.

Additionally, you must supply a decompressor for your audio files (faad) and a compressor for your shoutcast stream (LAME). You must also have a computer fast enough to decompress and compress in realtime. Most modern machines that have a CPU speed >1GHz should be able to do this.

Limitations of Version 1.0

  • All audio files must be in the same compression format, and must be stereo, 44.1kHz.
  • Generating multiple output bitrates for a single stream is not supported.
  • This version has only been tested with icecast and may not work with other servers.
  • Crossfading is not supported.
  • Encrypted (DRM) audio files are not supported. (this is a limitation of the faad decoder)
  • Due to lack of available documentation, shoutcast protocol support was made by packet sniffing and reverse-engineering. It might be incomplete or incorrect, however it seems to work for me.

Downloads and Docs


Licence

Shoutmatica is released under a BSD-style licence. You may modify this software and use it for your own use, even commercial. This software comes with NO WARRANTY.

Please direct bug reports, feature requests, etc. to me. Also, if you make important improvements, please submit your changes so that I can include them in the next version. Everyone has their own coding style, but please follow the existing source code style when making changes if you want them to be included in future releases.