Firefly Media Server [Review]
Firefly is a Media Server that streams your music to every computer in your network or the Web. You can even protect it from others with setting a password. This tutorial and review will show you how to configure this Server and also, how it works.
The configuration of Firefly is pretty easy. Because of some problems with Firefly itself, you’ll need to edit the configuration file. I will describe the functions step by step below. You can find the config in the program folder of Firefly (normally C:\Program Files\Firefly Media Server), it’s name is mt-daapd.conf or mt-daapd-example.conf (if mt-daapd.conf is not there yet).
- debuglevel = 4
This is useful if you are having trouble with Firefly. You’ll be able to see with which files Firefly has problems and solve these problems.
- web_root=C:\Programme\Firefly Media Server\admin-root
web_root tells Firefly where it can find the Webinterface-folder. You’ll need it, if you want to use the Webinterface.
The Port Firefly will be using. It doesn’t really matter which one you take, but in case it’s already taken this should be changed. I took 9999 and it works fine.
- admin_pw =password
This password protects the webinterface. Also, it will make the Webinterface available through your Network / through the Web. If no set, it will be available on localhost only.
This sets the Database version of sqlite. You can choose between sqlite and sqlite3. The Author says, that sqlite seems to be more stable, so I took this one.
In my test under Windows it doesn’t seem to be important or relevant. I guess it decides the place where the database file will be stored. You can set it as you like, but I prefered „.“ (will save it in the program directory).
This pretty long list describes every directory, that Firefly should can for music files. If you have multiple Directories, simply put „,“ between the directories.
- servername=MrG-Server-x2 FF
Here you can fill in the name of your Server. It will be shown in iTunes for example.
It’s not needed any further, but still you need to specify it as nobody.
This extensions decide which files Firefly will scan.
Firefly will write the log into this specified file.
- rescan_interval = 7200
This is the time Firefly waits, until it rescans all directories. Note that this option will not work, if you deactivate „always_scan“.
- always_scan = 1
If this option is set to 0, Firefly will not rescan, until you tell it to do so. On 1, it will rescan in the interval specified at „rescan_interval“.
- process_m3u = 1
Setting this option to 0 will deactivate scanning m3u-files. If you want to use your m3u-files, set this option to 1.
You can choose between 0 (Normal), 1 (Aggressive) and 2 (Painfully aggressive). The option 2 is the most recommend value, because it scans the whole file and will give more acurate information for iTunes and such. Still, if it takes too much CPU while scanning, set it lower.
- truncate = 1
Setting this option to 0 will make Firefly append the new log, when being restarted. With the value 1 it will delete the log files content and write a new log (without history).
With this option, you can protect Firefly from being used from people not knowing its password. This is useful if you want to use it via web or other stuff.
- plugin_dir = C:\Programme\Firefly Media Server\plugins
This directory is needed, if you’d like to use plugins (it should be specified either way).
- plugins = rsp.dll,w32-event.dll,out-daap.dll,ssc-ffmpeg.dll,ssc-wma.dll
This option lets you choose the plugins you want to use. Basically you won’t need them to run the server, but it won’t hurt too.
Please note that you’ll have to restart Firefly, if you changed the configuration.
Using the Webinterface
Open your browser and point it to http://localhost:[port]/ and enter, if needed, your login data for the interface. The login name is admin and the password, the admin_password. Now you can see several information like the number of songs scanned, the number of songs served since Firefly has been started and other things. From here, you can also Start a scan or even stop the server.
If you navigate to smart playlists you can see all playlists you created. Also, you can edit, delete and create them here. The playlists work with simple sql-commands. If you don’t have the know-how you can simply press at the button Wizard and a creator will help you with creating criteria for the Playlist.
You can also find a configuration page on the Webinterface. There you can change the most important options, like adding or removing directories to scan in.Note that you need to restart the server, for every change you do.
At the GUI of Firefly, you don’t have that much options. The most important options like protecting the Server with a password and changing it’s name are integrated on the first tab.
Like in the Webinterface, you can start/stop the Server on the second Tab. Also, you can choose wheither to start the Firefly service with Windows or change the port Firefly should use. Of course, every change needs a restart.
The last two tabs „log“ and „about“ should be self-describing – I think. I also took a look at the ressources Firefly needs – because the testsystem I used has only 2GB of Ram and an Intel Atom (1,6 GHZ per core). If the Mini-Server would have been more powerful, I wouldn’t have cared that much. As you can see on the screenshot, Firefly doesn’t need very much. For those who might want to know: The tested song number is about 17,000 files.
Meta tags and organizing the Music
An important point for music archives is the overview. Normally you sort music in folders of the year they came out or simply the artists name. Luckily, Firefly doesn’t care about either things. You could even put all music files (no matter how much you have) into the same folder and let Firefly scan them. Still, the most important thing for Firefly scanning the files are meta tags. Tags like Artist and Title should be given, so you can easily find your songs on iTunes and stuff.
Restarting task for Firefly
I noticed that Firefly seems to be buggy from time to time. The more music you listen to during the day, the more it takes cpu resources. After two days, the server got so slow, that I had to restart it. That’s why I created a Task (similar to Cronjob for Linux), that runs a Batch-file at every night 4 am. I took this time, because I am sure that I’ll be sleeping at such time, so it wouldn’t matter if the media server would be down for some seconds. A restart causes all active connections to break, of course.
For the Batch file, it needs some lines of code and some binaries. Because it would explode this review, I simply zipped all needed files for you. You can download them here (~7MB). Please note that the tools in the /bin/ folder are not made by me. However, you can use my batch script in any way you want it – except selling it and calling it your own.
Clients for Firefly
This headline is a bit incorrect, because there’s actually only one Client I know that is made for Firefly, the other ones are simply working with Firefly.
Firefly Client Beta (Java)
The first Client is Firefly Client Beta. This shiny little Client is the resource friendliest Client I tested. Also, the Operation System does not matter, because it’s a Java-Client, that should run on all current Systems. After a simple configuration, it will automatically download the music list from the Server and present it you in a similar way to iTunes. As already mentioned, it’s using a way less resources than iTunes does. You can get this Client on Sourceforge. Please not, that this Client is in Beta and not developed any further.
iTunes (Windows, Mac)
Using Firefly with iTunes is very easy, you just need both, the server and iTunes, to be running – and you’ll be able to listen to music! If both are running, iTunes will detect Firefly and show it as a share. With a double click, it will ask you for your password (if set). You also have the option to let iTunes save the password, so the password won’t be asked by iTunes any more. Like on Firefly Client, you have access on all defined Playlists available on Firefly.
Winamp Plugin for Firefly (Windows)
The plugin I am talking about is, like the Firefly Client, in Beta right now. But it already is a very powerful plugin. Right now you can only request it at Roku-Forum – but it’s worth it! During the tests and reviews, the author even published an Update, that fixed several error messages and also added the feature to simply show all songs available. Right now, it’s not possible to edit Playlist with this Plugin, but maybe that feature will follow soon.
The plugin itself will launch its configuration-tool on the first start up. The configuration-tool simply scans for all DAAP-Servers available on your network. You can select one, enter the still needed information (like password and the options you want it to have) and you’re done. This Winamp plugin also works from external sources (with port forwarding on your router and the correct config). To make that work, you’ll need to know your IP and also, how to edit the configuration.Here are the lines, you will need:
DAAPServer1=[insert url here]
Please keep in mind, that this is not the full configuration. You can find it under C:\Users\[username]\AppData\Roaming\Winamp\winamp.ini.
Crossfire Music Player (Webinterface – Windows, Mac, Linux, iPhone/iPod Touch)
This tiny Webinterface needs a Webserver to run on, but the developer promises the largest compatibility. It does basically work with every Browser. But that’s it with the promises – as example Opera does not work on Desktops. For that, you have to add this line into the config.xml: <gui_template_file url=“templates/crossfire_mediaplayer.xml“ useragent=“.*(Opera).*“ description=“default template for Opera“ />
After that, also Opera works fine. My Library of 17,000 seemed to be a bit too big for this Interface, because it caused Firefox 5 and the latest release of Opera to crash when trying to load the Main Library (contains all songs). Loading smaller lists of an amount of 40 songs was no problem and took about 4-10 seconds.
Like Firefly itself, Crossfire is not under development any further and is a dead project. Still, it’s worth it to take a look at it. It works fine on Computers, I could not test it on Apple devices. Another nice feature is that you can export your playlist into XSPF (VLC) or ASX (Windows Media Player). That function works very well and is a nice idea, that the other tested clients are not able to do. If you want to test Crossfire yourself, you can get it from Sourceforge.
Conclusion for Clients
Right now I use the Winamp Plugin, because I prefer it’s functions the most.Crossfire doesn’t run stable enough and keeps crashing my browser. iTunes takes more Resources than iTunes – and I actually am not the biggest fan of it. The Java Firefly Client is a very nice option to use against all Programs tested. Like the Webinterface, you do not need to install it. Also it works faster and more reliable than the Webinterface. The only thing I don’t like (and that’s why I personally use Winamp) is that a playlist cannot be played over and over again automatically, if the end of the playlist is reached.
Conclusion of Firefly and notes
Firefly is a pretty nice Media server, but the problem for Mac and Windows users is that the development has been stopped. There is a forked project ( for Linux only ) that is based on the idea of Firefly, but completely recoded. The last (and tested here) Version is svn-1696 – the most stable version is svn-1586. You can find the Downloads here. The point is, that the Website is bareely online, so there’s many dead links.
There are some topics on the Roku Forums, but also here the threads are bareely alive. You can visit Wikipedia if you’d like some additional information. I will look over some other Media Servers from time to time. If I find another one, that I find good, I’ll write it here!