You are here: Home » Reply

Reply To: Sync Tools

#9997

staverton

I too would like to see this option, in fact is the very reason I headed on over here and signed up to this forum today, so props for beating me to the post!

Just to clarify alloptions’ idea as I understand it:

Firefly naturally sits on some device somewhere, and periodically scans for new media to add to its database. It’s then able to broadcast this list of media out to whoever requests it via the DAAP protocol. Wouldn’t it be good if a client could poll the DAAP server and update a local iTunes library with any added tunes.

To put this in to context for myself, I have a ReadyNAS NV+ sat in my living room, and I periodically add new music by copying it across via SMB. There are then 3 iTunes/iPod users in the house who have the NAS’s music share mapped as a local drive so that iTunes can use its contents in its local library and hence sync the contents to the various iPods (which it wont allow with a DAAP share). Obviously, when I add new music to the NAS, the various copies of iTunes don’t rescan the mapped drive and the new music doesn’t appear in the libraries. At the moment I’m using a piece of software (iTunes Library Updater – iTLU) to rescan the network drive itself and add them to the iTunes library. However, this takes forever as iTLU trawls through each file and directory.

A solution as I see it would be Firefly serves up its DAAP interface as it normally does, with an additional meta field (something like org.mt-daapd.local-relative-path) which defines a file’s location relative to the directory Firefly is set to scan. On my NAS, Firefly is set to scan ‘/Media/Music’. We’d then have a client that would be configured to point at the same Firefly scan directory (on my Windows systems, I’d specify a location prefix of ‘X:Music’ and make sure the client switched the slashes – drive X: is the mapped share pointing to ‘Media’ on the NAS). I’d then have this client poll the DAAP server every hour or whatever to check for new files, or maybe have it launch when iTunes launches.

Having said all this, I am capable of (potentially) writing a windows client to do this. iTLU is written in C#, and already plays well with iTunes as far as adding music to its library. Version 2 is under the GPL, however no code has yet emerged from it; version 1 appears to be closed source, however I may contact the author to see if he/she’d be willing to let me contribute.

The part that’s beyond my immediate skills is adding the extra meta field. I’m sure the relative path should already be available internally, and I can’t imagine this would be too difficult to expose (unless new meta fields in existing request types cause issues with iTunes or something). Are there any Firefly devs willing exposing this in the XML for this purpose? Note: I may have completely misinterpreted the documentation on this one, so feel free to point out any fatal flaws in my logic here.

As for an apple/Linux client, my skills do not extend that far, but I’m sure that, given the simple concept, I’m sure some talented soul would be interested in developing this.

Thoughts are encouraged, as are *constructive* criticisms. alloptions, is this what you were getting at or have I completely misinterpreted you for my own personal gain? 😀