Config File

This documents all valid entries in the config file. Generally, the server should ship with a good config file (in contrib/mt-daapd.conf, or the default config on Windows or Mac). Should you need to change the behavior of the server to better suit your needs, however, you may find that you have a need to modify various config values. This page can be used as a reference for that purpose.

The configuration is generally laid out like a windows .ini file. The file is split into sections, which are denoted by a value in brackets. Each section has zero or more key/value pairs, in a "key=value" format.

Values that are multivalued (as noted below) can have multiple values for each key. These multivalued keys can be specified in a comma separated format, or with multiple keys:

[section_name]
key = value1,value2,value3

or

[section_name]
key=value1
key=value2
key=value3

Note that this page documents the current state of the config entries, and many of these values will likely change in future versions of the server

"General" Section

servername

This is the name of the server, as it appears in iTunes or when browsed from a remote client. There are two substitution variables:

The default servername (if not specified in the config file) is "firefly %v on %h"

web_root

This is the directory that holds the web interface. You can disable the web interface by deleting the files in this directory, and replacing them with an "index.html" that presents an error message.

port

Port to listen to for non-ssl connections. This port is used by the web interface, the daap interface, and the UPnP interface. This port must be unfirewalled, obviously.

logfile

Where to dump log information. On windows installs, this defaults to "firefly.log" in the application directory. For non-windows installs, it is typically commented out. To use on a unix machine with log rotation, set up your log rotate script to create a blank log file owned by the "runas" user, and sighup the /var/run/mt-daapd.pid process.

runas

This is ignored on Windows hosts, but on unix hosts, it defines the user to drop privs to after starting.

admin_pw

Password for the administrative pages.

password

Password for the music library.

compress

Whether or not to compress the DAAP stream. This is currently not used, as the DAAP code no longer has gzip encoding enabled.

truncate

Whether to truncate the logfile at startup.

debuglevel

Verbosity of log file (or stdout, if running in foreground (-f)). Debug levels correspond to:

Debug level 5 shows most errors, while 9 shows up detailed info about those errors. 10 is overkill. When reporting bugs, or trying to track down problems, debuglevel 9 is probably the best debuglevel to run.

mp3_dir

Comma separated list of directories to search for audio files.

extensions

Comma separated list of file extensions to add to the database (e.g. .mp3,.m4a)

playlist

Unused.

process_m3u

Unused. See scanning/process_playlists

compdirs

Comma separated directory fragments under which to mark songs as compilations. This is to assist in iTunes compilation browsing. These are partial matches on the full path, so something like "/Various Artists/" would match anything under any folder (or subfolder) named "Various Artists"

db_type

Kind of backend database to use. Currently, this can be sqlite or sqlite3.

db_parms

Specific parameters for the backend database. For sqlite and sqlite3, this is the directory to drop the database in.

scan_type

Determining song duration for mp3 files is difficult. When the server can't authoritatively determine the length of a song, it can use brute force heuristics to try and figure out the song length. This setting decides how hard it should try and determine correct song length

rescan_interval

How often to rescan the mp3_dir for new or changed files. In seconds.

always_scan

Whether scans should be skipped if there are no users connected. With always_scan=1, every time rescan_interval passes, the library is rescanned. With always_scan=0, the scan only happens when there are connected users. This allows the drive to spin down when no users are connected.

ssc_prog

This is the shell script that the ssc-script plugin runs when attempting to transcode a file.

ssc_codectypes

This is a list of codectypes that the ssc-script plugin can transcode.

never_transcode

Added in r1417, keeps the server from transcoding a codec type even if the client shouldn't be able to play it. Some linux clients use an iTunes user-agent, and appear to the server to be a legitimate iTunes client. The server knows that iTunes clients can't play ogg, for example, so normally the server would transcode the file to wav. To force the server to send a file natively that it thinks should be transcoded, the "never_transocde" setting can be used. In the example given, to force the server not to transcode ogg files (presumably because a Linux client that understands ogg format is connecting), the proper configuration value would be "never_transcode=ogg". See also [Codec_Types]

always_transcode

Added in r1526, forces the server to transcode a codec type even if the client should be able to play it natively. For example, some apple lossless files caused early Roku SoundBridge firmware versions problems decoding. By setting "always_transcode=alac", it allowed the transcoding to be performed on the server and passed to the client as wav, rather than sending it as an Apple Lossless file. See also [Codec_Types]

"Scanning" Section

process_xml

Deprecated. Remapped to "scanning/process_itunes".

case_sensitive

Should be set to 1 if the underlying file system is case sensitive (unix). Defaults to 1. This can cause duplicate songs to appear on Windows and OSX. Try setting this to 0 if you observe that.

ignore_appledouble

This ignores ".AppleDouble" files that get dropped by the OSX finder. Why you would ever want to scan for these, I don't know, but you can turn it back on if you want to. Defaults to 1.

ignore_dotfiles

Ignore files and directories that start with "." (Unix considers these to be hidden files), and the OSX finder drops dotfiles around that can irritate mt-daapd. Defaults to 0.

concat_compilations

This remaps the tags on songs marked as a compilation. Title gets remapped to "Artist - Title", and artist gets remapped to "Various Artists". This is help browsing on platforms that don't include proper compilation browsing (Soundbridge, etc).

Note that this configuration value will go away when the scripting plugin is in place.

follow_symlinks

Should the scanner follow symlinks? Default is 1.

skip_first

Should the first scan be skipped? Default is 0. This is mostly for devices that must startup quickly. (Car player, for example).

process_playlists

Added in r1523, this is a global enable/disable for playlist support.

process_m3u

Added in r1523, this controls whether or not .m3u files should be imported as playlists. Previously to r1523, this was general/process_m3u.

process_itunes

Added in r1523, this controls whether or not "iTunes Music Library.xml" and "iTunes Library.xml" files should be parsed for playlist importing. Previously to r1523, this was scanninf/process_xml.

"Scan" Section

correct_order

This controls whether playlists should be returned to a DAAP client in the order they are defined in the playlist. This is an expensive query in SQLite, so it is turned off by default.

"DAAP" Section

empty_strings

Sometimes tags have empty values -- artist, album, etc. Normally the DAAP server doesn't bother emitting empty strings, as it takes 8 bytes per field to emit a null string. iTunes, Roku, and most other clients don't care, but some clients are annoyed by this, and should be set to 1. At some point this will always be set, and the configuration option will be removed.

supports_update

iTunes can send update notifications when the library changes. The DAAP server doesn't support this, but it may at some point. This defaults to 0.

supports_browse

Whether or not to advertise browse support. This defaults to 1. I'm frankly not sure why this configuration value is present.

correct_order

In r1523, scan/correct_order was moved here, as it is more properly a DAAP option. See scan/correct_order for details.

"Plugins" Section

plugin_dir

Directory to search for plugins. All .so, .dylib, and .dll files are attempted to be loaded as firefly plugins.

plugins

Deprecated. All plugins in plugin_dir now load automatically.

Config File (last edited 2007-06-17 17:49:31 by rpedde)