edna -- an MP3 server |
Quickstart: download | edna project page |
edna is a quick hack that I put together, based on ideas from my friend, Geoff Elliott. He had written a program named ampRadio that operates much like edna -- serving up HTML pages with links to MP3 files, and then serving out those MP3s.
edna allows you to access your MP3 collection from any networked computer. This software streams your MP3s via HTTP to any MP3 player that supports playing off a remote connection (e.g. Winamp, FreeAmp, Sonique, XMMS, WMP).
edna supports:
While any silly web server can do this (serve up MP3s), there are two cool features about edna:
When constructing a page for a directory, edna will list all subdirectories, MP3 song files (.mp3 extensions), playlists (.m3u extensions), certain other types of music and video files (such as .wav), and images. All other files will be ignored.
edna can automatically create play lists for individual directories of songs, and all directories recursively. These lists can also be shuffled (by edna, rather than your player).
Your MP3 player must be able to recognize .m3u files, and your browser must know to pass .m3u files to your player. Your player must be capable of handling URLs within a playlist. I've tested this with WinAmp, which definitely meets these needs.
The latest edna is currently labeled as version 0.6 because there are still a few more features that I would like to add. It is very stable and can be used (now) without a problem.
edna is licensed under the GPL. It is a small Python script. At the moment, it is about 1000 lines (version 0.1 was only 250!). You can get the source from the distribution.
Please feel free to sign up on the edna mailing list. We discuss new features, installation and configuration issues, and current development.
The server should work for any platform. I've tested it on Linux and Windows. I've been using Internet Explorer and WinAmp (on Windows) to navigate the pages and play the files.
Using edna is boringly simple. Make
sure you have (at least) Python 1.5.2 installed on your
system. Edit the edna.conf
file with your
setup. This is simple to do, as all you need to tell it is:
Then, simply run edna.py
. This can be done using:
% python edna.py
It will then go into an infinite loop, serving up pages and files. Hit ctrl-C to stop it.
Starting with edna 0.4, it is now possible to use edna as an NT Service (thanks to Bill Tutt). You will need the most recent Python/Win32 extensions, and have NT 4.0 or Windows 2000 for this code to work.
The NT Service scripts are in the ntsvc
subdirectory of the distribution. Change to that directory to
install or remove the edna service.
python ednaNTSvc.py -c C:/path/to/edna.conf --startup auto install
python ednaNTSvc.py remove
Usage: 'ednaNTSvc.py [options] install|update|remove|start [...]|stop|restart [...]|debug [...]' Options for 'install' and 'update' commands only: --username domain\username : The Username the service is to run under --password password : The password for the username --startup [manual|auto|disabled] : How the service starts, default = manual
Check the included makefile and adjust the installation paths. The script will run edna on startup.
If you don't like the HTML it generates, then look at template
files in the templates
subdirectory. It should be
quite apparent how to make your changes.
I'm quite willing to accept patches or other fixes. Just email them to the edna mailing list at edna@lyra.org.
I'd like to thank the following people for their contributions to the edna server: