iTunes Library Manager


Userlevel 3
Badge +7
For Sonos users who wish to choose which of their iTunes playlists are transferred to Sonos or for users who wish to use lossy formats for their ipods and lossless for their Sonos system. It makes a custom XML file on the NAS with unselected playlists removed and/or references adjusted to the lossless files. If you wish to only transfer a subset of playlists the application can be configured to display a playlist selector before the custom XML file is generated. The application can be configured to run and create the custom XML file on your NAS each time iTunes is closed.

http://www.darrenlink.talktalk.net/ituneslibrarymanager

http://www.darrenlink.talktalk.net/ituneslibrarymanager/download

I have written an application that solves two main issues for Sonos and iTunes users. Many people like to use iTunes to catalog their MP3 collection for use with iPods but prefer to store lossless files (perhaps apple lossless) on their NAS for use with Sonos. The "iTunes Music Library.xml" cannot be simply placed on the NAS as all the tracks are pointing to the lower bitrate MP3 files. Also many iTunes users have too many playlists to be imported into the available Sonos memory. (Especially if lots of smart playlists covering your entire library are defined)

My application solves the above two problems by changing the paths of the MP3's (or other lossey file types) within the "iTunes Music Library.xml" to the equivalent paths of the lossless files. It also allows the user to choose which playlists they wish to be imported into their Sonos system from their iTunes library. It also eliminates the need to maintain two separate iTunes libraries (although you are still required to create lossey and lossless copies of each track)

The application caches (and maintains) a one to one mapping between each file in iTunes with the equivalent higher quality file on your NAS. This caching allows the application to run through approximately 10,000 tracks on my PC and write an alternative xml file to my NAS pointing to the lossless files within about 25 seconds.

The application is completely configurable so it can be configured to match your setup.

More information, screenshots and the download link are above.

This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.

112 replies

Userlevel 3
Badge +7
Hopefully this Dropbox link will work:

https://www.dropbox.com/s/p2emnb0mcpky282/iTunes%20Library%20Manager.zip?dl=0
Badge
Thanks Darren

When I copied the application it didn't work and I don't have the executable file (I'm kicking myself). I'm not that techy with file transfers but have used WeTransfer and Dropbox to send larger files.

James
Userlevel 3
Badge +7
Just reviewed this thread for the first time in a very long time and can see there is still some interest in my application. Unfortunately I have no web space to host it and have lost the installation package. It can be copied over manually if you are comfortable with that and creating a shortcut manually.

Does anyone have any webspace I could host this on?

Many thanks

Darren
Badge
Bump!
Badge
HELP

None of the links to iTunes Library Manager seem to be working! Following a complete PC reinstall, I desperately need to download the software ASAP. Any help will be greatly appreciated.

TIA,


I am in the same boat! I find this app indispensable. I have a new PC and no copy of the executable file. I have copied the app, but it isn't working correctly (assume the .dll's all incorrect?)

Does anybody have a copy of the executable file please?

:?
Badge
HELP

None of the links to iTunes Library Manager seem to be working! Following a complete PC reinstall, I desperately need to download the software ASAP. Any help will be greatly appreciated.

TIA,
Badge
Darren,

Welcome back. I for one am glad to see you return. I still use iTLM to import my iTunes playlists into Sonos and anticipate that I will continue to use it until Sonos is able to import playlists natively.

Have you given any thought to implementing the GUI-less command line capability described in post #105 above?

Thx
Userlevel 3
Badge +7
I have changed webspace and the application is now available at:
http://www.darrenlink81.webspace.virginmedia.com/ituneslibrarymanager

I've personally stopped using the MP3 to Lossless mapping feature as I upgraded my iTunes library to AAC files (.m4a extension files) via iTunes match.

I now have an I:\ drive mapped to my NAS for the iTunes match files and an S:\ drive for Sonos use containing the same structure/files with Apple Lossless files where available.

I:\iTunes\Music
and
S:\iTunes\Music
are identical when comparing the filenames as AppleLossless and standard AAC files have the same extension (.m4a). (No need to map .mp3 files to Lossless .m4a files anymore)

Although iTunes (on my laptop) points to the I:\ drive the XML file can be saved to my S:\ drive (and works with Sonos) because the folder structures are identical. I have actually written another application (not posted online) to find any differences between my I:\ drive and my S:\ drive.

Darren
Userlevel 2
Badge
Hi Darren
Where do I get the latest version from please. The last version available on the download page is from 2010

Thanks
Userlevel 3
Badge +1
Darren, I still have an interest in your iTunes Library Manager app, and I have tried to contact you by PM on this forum, email, and even Facebook... To no avail! Would welcome a PM from you if you are still an active Sonos proponent?
Badge
Thanks for the update. I will test it and post any issues I discover.

Also, if I encounter the "missing playlists" issues again, I will post any file you require to my web server.

Would be great if you can find time over your break to implement command line execution of the process feature that I requested in my previous post. Please let me know if you have any questions.

S


Missing playlists issue is back again. Please see screenshots here:

http://2101sander.dyndns.org/

Note that iTLM does not display the "Podcasts" playlist folder.

S

snip... Are you aware that the iTunes Library.xml file is only updated when iTunes is closed...


Darren,

As of a test I ran in May/June of 2012, I was able to re-index my Sonos Share from a iTunes-based NAS while leaving Laptop-based iTunes open and running.

I initially discussed this issue here (see Posts #s 8 & 9) : http://forums.sonos.com/showthread.php?t=28170

Also see Post #9 here: http://forums.sonos.com/showthread.php?t=30005

I saw the NAS-located .XML file updating and closing. After an iTunes music file change, I re-indexed Sonos and the new information was available without closing iTunes on the Win7 64bit Laptop PC I use.

This was using iTunes 10.6x at the time. All things can and do change with newer iTunes versions. PC vs. Mac and NAS vs. local drive could change the outcome as well.

It certainly appears that iTunes will update the .XML file on the fly, and release it for 'other' programs' use. At least it worked for my setup...

I have not tested this function since. My main PC remains on v10.6 and may move to 10.7 soon. I'm still evaluating 11.x...

Best of Luck
Badge
Hi Darren,

Answers in-line below. Thanks, S

ucdscott,

Regarding the command line feature that you have requested, I am curious about how you would use this. Are you aware that the iTunes Library.xml file is only updated when iTunes is closed and that there is a feature within my app to auto detect the closure of iTunes. If configured to do so, when iTunes is closed the application auto pops up from the system tray if any of the configured library files have been modified. The app then gives you the option to process the library XML file.


I am aware of this capability.



I don't see any point in scheduling a daily auto-process via the command line as there will be no change in the source iTunes Library.xml file if iTunes has not been opened between two consecutive scheduled runs. I just feel the most appropriate time to process the XML file is upon closure of iTunes and my app already provides a feature to kick in at this time. If you can convince me of the benefits of a command line feature I will consider implementing it over Christmas.


The benefits of being able to silently execute ITLM's process function at a specified time each day (e.g. five minutes before my scheduled Sonos library update) are twofold:

1. No need to have ITLM running constantly in the systray taking up space and using resources

2. No need to interact with the ITLM GUI (unless new playlists need to be selected or existing one removed)



Out of interest would you expect to see the GUI when running the app from the command line? The GUI would be needed if the user chooses to 'select playlists' upon processing.


No, as stated above in #2, I have no interest in seeing the GUI, nor should anyone else, if all I need to do is "Process."


Out of interest are you using my app to simply choose which playlists are transferred to Sonos or are you also using it to map lossey files to their lossless equivalents?


Only to choose playlists.
Userlevel 3
Badge +7
ucdscott,

Regarding the command line feature that you have requested, I am curious about how you would use this. Are you aware that the iTunes Library.xml file is only updated when iTunes is closed and that there is a feature within my app to auto detect the closure of iTunes. If configured to do so, when iTunes is closed the application auto pops up from the system tray if any of the configured library files have been modified. The app then gives you the option to process the library XML file. I don't see any point in scheduling a daily auto-process via the command line as there will be no change in the source iTunes Library.xml file if iTunes has not been opened between two consecutive scheduled runs. I just feel the most appropriate time to process the XML file is upon closure of iTunes and my app already provides a feature to kick in at this time. If you can convince me of the benefits of a command line feature I will consider implementing it over Christmas.

Out of interest would you expect to see the GUI when running the app from the command line? The GUI would be needed if the user chooses to 'select playlists' upon processing.

Out of interest are you using my app to simply choose which playlists are transferred to Sonos or are you also using it to map lossey files to their lossless equivalents? Since upgrading to iTunes Match I have personally stopped using this feature. This is because Matched AAC files have the same extension (m4a) as Apple Lossless files. I now have an iCloud share (I:\ drive) that stores all my iTunes Match AAC files and a Sonos share (S:\) that stores my Apple Lossless files + copies of the iCloud tracks that I do not have Apple Lossless equivalents of. I am now letting iTunes organise my files on my I:\ drive and my S:\ drive has the identical structure, with iCloud tracks essentially replaced with Apple Lossless equivalents. All of the file names on my I:\ and S:\ drives are now identical so path transformations are no longer necessary. Remember AAC files and Apple Lossless files have the same extension (.m4a).

As the Sonos indexer assumes all of the files referenced within the XML are located on the same share as the XML file itself, no path transformations are required. With my old setup I had to ensure paths ending with .mp3 were transformed to paths ending in .m4a whenever a lossless equivalent was found. This is no longer necessary.

Even if I wasn't using iTunes Match I would have a lossey share contains AAC 256kbps tracks and my Sonos share containing the same tracks with Lossless equivalents wherever possible.

Apologies for rambling on....

Darren
Badge
gsa999 and ucdscott,

I have done some development tonight and have made some improvements to the playlist selector.

1) I have added a button for selecting/unselecting all playlists

2) If you right click a playlist folder with sub playlists a pop up menu appears giving you the ability to either a) select that playlist and all sub playlists b) unselect that playlist and all sub playlists.

3) On the view showing just the selected playlists my implementation for pressing the delete key in order to delete playlists was poor. It refreshed the entire list upon deletion. Now just the selected playlists are deleted (unselected from the tree) and an appropriate remaining node is selected. This allows you to keep pressing the delete key to delete one playlist at a time. You can also select multiple playlists and delete them all in one go. When I say delete, I mean they are removed from this view and unchecked in the tree view and all playlists list view.

I hope to do a few more updates over Christmas before making these changes available to download. I have been making changes to make the application work better with iTunes Match libraries as I am using iTunes Match myself. I need to remind myself how I was generating the installer for the app. It has been so long since I last did it!!!

Regarding ucdscott's issue with playlists not showing, I have never experienced this issue myself. If the issue arises again it would be beneficial if you could somehow give me access to the application config files and also your iTunes Library.xml file. I will then be able to diagnose the issue and provide a fix.

I apologise for not providing updates for a long time. Since commuting to work in London everyday (7am to 7pm) I don't have as much free time and energy as I used to!!! A lot of my free time lately has been spent trying to sort out my iTunes Match library after merging in all of my wife's unorganised music.

I find that my app is particularly useful now that my parents have Sonos. We are sharing the same iTunes Match library and my app allows myself and my parents to have different playlists from the same library imported into Sonos. I can pick and choose any playlists that my parents create and vice-versa.

Darren


Thanks for the update. I will test it and post any issues I discover.

Also, if I encounter the "missing playlists" issues again, I will post any file you require to my web server.

Would be great if you can find time over your break to implement command line execution of the process feature that I requested in my previous post. Please let me know if you have any questions.

S
Userlevel 3
Badge +7
gsa999 and ucdscott,

I have done some development tonight and have made some improvements to the playlist selector.

1) I have added a button for selecting/unselecting all playlists

2) If you right click a playlist folder with sub playlists a pop up menu appears giving you the ability to either a) select that playlist and all sub playlists b) unselect that playlist and all sub playlists.

3) On the view showing just the selected playlists my implementation for pressing the delete key in order to delete playlists was poor. It refreshed the entire list upon deletion. Now just the selected playlists are deleted (unselected from the tree) and an appropriate remaining node is selected. This allows you to keep pressing the delete key to delete one playlist at a time. You can also select multiple playlists and delete them all in one go. When I say delete, I mean they are removed from this view and unchecked in the tree view and all playlists list view.

I hope to do a few more updates over Christmas before making these changes available to download. I have been making changes to make the application work better with iTunes Match libraries as I am using iTunes Match myself. I need to remind myself how I was generating the installer for the app. It has been so long since I last did it!!!

Regarding ucdscott's issue with playlists not showing, I have never experienced this issue myself. If the issue arises again it would be beneficial if you could somehow give me access to the application config files and also your iTunes Library.xml file. I will then be able to diagnose the issue and provide a fix.

I apologise for not providing updates for a long time. Since commuting to work in London everyday (7am to 7pm) I don't have as much free time and energy as I used to!!! A lot of my free time lately has been spent trying to sort out my iTunes Match library after merging in all of my wife's unorganised music.

I find that my app is particularly useful now that my parents have Sonos. We are sharing the same iTunes Match library and my app allows myself and my parents to have different playlists from the same library imported into Sonos. I can pick and choose any playlists that my parents create and vice-versa.

Darren
Badge
Darren,

I've searched everywhere but cannot find any reference to invoking ITLM via the command line. Is this possible?

Seems like this would be not only straight forward to implement but also a much desired capability - use the GUI to configure ITLM and then schedule a simple batch file to execute "iTunes Library Manager.exe" -process

Thanks,
Scott
Badge
Hi Darren
I know we've not had an update to iTunes Library manager for some time. Is it still in development?

If so I have a request. Is it possible to add a select all button to the playlist chooser. I have a lot of playlists and want to sink most of them but not all. At the moment you have to mark each one manually. If there was a select all I could hit that and then manually remove the few I dont want to sync

Also ignoring the videos/films in thel library would be good as well

Great app - still works brilliantly
G


I second this request and would like to propose the code be made an open source project like those at SourceForge.

Updates and bug fixes aren't release frequently enough and the author doesn't charge for the program, so what's the point of keeping it closed source?

S
Badge
Gents,

I must not be explaining myself clearly. As stated previously,

"iTLM no longer finds the new playlists that I have created in iTunes"

Thus, my issues has NOTHING to do with Sonos. In this scenario, please pretend Sonos doesn't exist. My issue is between iTunes and iTLM - specially, iTLM does not see the new playlists I have created in iTunes. Therefore, I cannot select them.

I've analyzed the destination library as requested. A screenshot of the results as well as comparative screenshots of the playlists iTunes sees vs the playlists iTLM sees are posted here:

http://2101sander.dyndns.org/

Thanks,
Scott


Uninstall, delete all ITLM folders, and re-install of ITLM solved the issue.

Would have preferred to hunt down the specific issue so a bug fix could be implemented. Who knows how often and to how many users this is occurring.

S
Userlevel 2
Badge
Hi Darren
I know we've not had an update to iTunes Library manager for some time. Is it still in development?

If so I have a request. Is it possible to add a select all button to the playlist chooser. I have a lot of playlists and want to sink most of them but not all. At the moment you have to mark each one manually. If there was a select all I could hit that and then manually remove the few I dont want to sync

Also ignoring the videos/films in thel library would be good as well

Great app - still works brilliantly
G
Badge
Gents,

I must not be explaining myself clearly. As stated previously,

"iTLM no longer finds the new playlists that I have created in iTunes"

Thus, my issues has NOTHING to do with Sonos. In this scenario, please pretend Sonos doesn't exist. My issue is between iTunes and iTLM - specially, iTLM does not see the new playlists I have created in iTunes. Therefore, I cannot select them.

I've analyzed the destination library as requested. A screenshot of the results as well as comparative screenshots of the playlists iTunes sees vs the playlists iTLM sees are posted here:

http://2101sander.dyndns.org/

Thanks,
Scott


Ucdscott,

It sounds like you may have hit the 40000 limit mentioned by buzz. I hit this issue and its one of the main reasons I wrote my app. I wanted an ability to choose which itunes playlists to import into Sonos, so I created the playlist selector. This feature means that the playlists that you haven't selected are removed from the output XML file that the program generates.

Please try selecting just your new playlists to see if this works. Before doing this, if you use the analyse destination library function it will tell you the count of playlists and the number of contained tracks for each of the following categories:

Standard Playlists
Smart Playlists
All Playlists

If the tracks count for "All Playlists" is greater than 40,000 Sonos will not be able to import them all.

Darren
Userlevel 3
Badge +7
Ucdscott,

It sounds like you may have hit the 40000 limit mentioned by buzz. I hit this issue and its one of the main reasons I wrote my app. I wanted an ability to choose which itunes playlists to import into Sonos, so I created the playlist selector. This feature means that the playlists that you haven't selected are removed from the output XML file that the program generates.

Please try selecting just your new playlists to see if this works. Before doing this, if you use the analyse destination library function it will tell you the count of playlists and the number of contained tracks for each of the following categories:

Standard Playlists
Smart Playlists
All Playlists

If the tracks count for "All Playlists" is greater than 40,000 Sonos will not be able to import them all.

Darren
Badge
ucdscott,

I'm not an iTunes or iTLM user.

SONOS will import iTunes playlists directly from the XML file -- as long as the track total is within the 40000 track limit. Here are some additional details.

If the iTLM output is a generic playlist, the rules are different because these become "Imported Playlists". While there is no theoretical limit to the number of tracks in an Imported Playlist, at about 65000 tracks a playlist will become difficult to use, however, you can define multiple Imported Playlists, each approaching 65000 tracks.

An imported playlist is mostly a simple text file and counts as one library track. In theory, one could have a single music track and 64999 Imported Playlists. While playlists are imported during a SONOS library update, Imported Playlists are read live. This means that the content of a playlist could change and that change will be visible the next time that the playlist is opened, regardless of any index updates. (Note that the display of that playlist will not be updated as you watch) This is not true for iTunes playlists. iTunes playlists are imported by the indexer and stored in the SONOS players. Only the location of each Imported Playlist is stored in the players, the contents are fetched from the library as needed.


My issue is is with iTLM not seeing the new playlists I've created in iTunes. Thus, your guidance (while useful information) does not apply.

S
ucdscott,

I'm not an iTunes or iTLM user.

SONOS will import iTunes playlists directly from the XML file -- as long as the track total is within the 40000 track limit. Here are some additional details.

If the iTLM output is a generic playlist, the rules are different because these become "Imported Playlists". While there is no theoretical limit to the number of tracks in an Imported Playlist, at about 65000 tracks a playlist will become difficult to use, however, you can define multiple Imported Playlists, each approaching 65000 tracks.

An imported playlist is mostly a simple text file and counts as one library track. In theory, one could have a single music track and 64999 Imported Playlists. While playlists are imported during a SONOS library update, Imported Playlists are read live. This means that the content of a playlist could change and that change will be visible the next time that the playlist is opened, regardless of any index updates. (Note that the display of that playlist will not be updated as you watch) This is not true for iTunes playlists. iTunes playlists are imported by the indexer and stored in the SONOS players. Only the location of each Imported Playlist is stored in the players, the contents are fetched from the library as needed.
Badge
ucdscott,

Import will fail if there are more than a combined 40000 tracks in your playlists.


Import from iTunes into iTLM or iTLM to Sonos?

If the former, why?

How do I determine the total number of tracks contained in all my playlists?

Thanks,
S