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).
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.
edna is currently labeled as version 0.4 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.
Version 0.4 of edna has quite a lot of new features over 0.3. Most of this work came from submitted patches (thanks everyone!). Here is a list of the significant changes:
Please feel free to sign up on the edna mailing list. We discuss new features, installation and configuration issues, and current development.
Of course! 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.
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
I don't have any documentation for this right now. Please see
the daemon
subdirectory for the scripts to
use. Adjust the paths for your local setup.
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.
edna has some code in it to extract ID3 tags from MP3 files. I'm not using it yet, but will add some code to display the data on the generated web pages. If you have a pet feature, then please let me know!
I'd like to thank the following people for their contributions to the edna server: