Help me move my playlist across the file structure divide.
January 30, 2007 2:27 PM   Subscribe

I have 2 installations of iTunes. I want to transfer a play-list from one to the other. Both have identical libraries. However the file paths of the two libraries is different on each computer. Is there a way to do this? Theres

The Music files on computer A, have the file structure:

\Artist\Album\*.mp3

Where * is whatever the filename is, i.e. Its a mess (years of P2P natch).

Computer B has a much cleaner file-structure

\Artist\Year - Album\Tracknumber-Trackname.mp3

All ID3 tags on all files across both computers are correct and virtually identical.

I have a large (6000 song) playlist on computer A that I want to have on computer B. Is there a way to do this?

Ive tried exporting the song list from A then importing it to B but due to the differing file paths It doesn't work.

I was hoping that there would be some way of using the ID3 tags to make this work.

Thanks Metafilter.
posted by gergtreble to Computers & Internet (9 answers total) 1 user marked this as a favorite
 
And I'm using windows!

Sorry.
posted by gergtreble at 2:41 PM on January 30, 2007


The XSPF spec, and the plugins that open playlists in that format, were designed for this sort of thing. Could you install one of the applications linked to on the XSPF spec site on both computers?
posted by mikeh at 2:58 PM on January 30, 2007


XSPF looks way too technical for me right now. Although i will have a good read of their wiki in the next few days. I don't see iTunes as being a supported application. Looking at the Apps supported VLC is one of them. I already have that on both computers anyway. Any Idea how I could utilize that?
posted by gergtreble at 3:09 PM on January 30, 2007


Hmm, so the filenames themselves (as opposed to the names of the directories) are also different? That kind of rules out a brute force search and replace on the pathname. Are the mp3 files bit-for-bit identical? If so, then you could probably do something with perl where you take the input playlist, md5 each MP3, and then run that against a md5list of all the files in the destination tree to find the matching path/filename. But this will fail if the files differ trivially in any way (like whitespace in tags, or some other inaudiable minor difference.) In that case I guess you would have to rely entirely on tags. Again you could do this with perl but then it becomes a lot more work.

If the two trees are really identical in substance then how about just nuking the messy unorganized one and rsyncing/xcopying/whatever the organized one over? I don't know how any of this fits in with iTunes, as I stay away from that piece of software myself.
posted by Rhomboid at 3:13 PM on January 30, 2007


Rhomboid: I could search and fix every single one of the 18,000 files in the library. Or the 6000 files in the needed playlist. But I dont think I have the time to do that! Well I have a night off tomorrow, but I think it will take a LOT longer than that.

I knew this wasn't going to be easy! I had thought it out good and proper, and thought I may be missing something. But the fact that it all comes down to the file structure seems to be the clincher.

I might just nuke the messy library but thats the last ditch thing as it contains all my play-counts and ratings over a number of years.

I guess im gonna have to live with having a screwy file structure. I was hoping that I could just rescue the one playlist (songs I have not yet played or listened to). And then I could start afresh with the new library.

Any more Ideas?
posted by gergtreble at 3:32 PM on January 30, 2007


I shouldn't be too hard if you know a bit of scriptiong.

Dig through the XML file and find your playlist and its song entries (the entries are by ID and I'm sure it won't match the song ID in your other iTUnes library).

You'll probably have to grab the ID's then convert them to song name, then use those song names to find the associated ID in your other iTunes XML.

Once you do that, it should be a simple paste into your other iTunes XML.
posted by mphuie at 4:06 PM on January 30, 2007


Unfortunately I don't know scripting. Altough I've done a bit of HTML and could probably find my way around the iTunes XML. However I think I may have a bit of a jerry-rigged solution. In which I copy the files in the playlist over to the new library. Using sharepod. Then add them to iTunes. Make a playlist out of them, and then whenever one of the tracks is played. Delete it.

Its the long way round. But as I'm not that technically minded yet (I'm working on it) I think its the best I can do at the moment.
posted by gergtreble at 4:25 PM on January 30, 2007


Is computer B the one you want to keep your library on?

Make a playlist out of them, and then whenever one of the tracks is played. Delete it.
This is EXACTLY what Smart Playlists are for. Ctrl+Alt+N or choose "New Smart Playlist" in the File menu of iTunes. Make the rule: Play Count is 0 (assuming they are unlistened to on Computer B as well) and with live updating, they will be removed from the list automatically when listened to (as long as the file plays through the end of the song, which is a big flaw in the software).

If the lists don't match up, use your newly copied files to replace the old ones in the library (you can show duplicate songs and delete the ones that have play counts, or if Computer B is using iTunes to manage the files the way I assume it might be, it can do this automagically) and introduce a new criteria on the smart playlist: Date Added is #DayYouAddedFiles.

Also, if you wanted the two computers to have the same file structure, you could set them both to have the files copied into the iTunes music folder and let iTunes manage the music library, and choose the same criteria for determining the file structure. Things should get copied to new directories and fixed automatically for you, then you could delete all the old copies while maintaining play counts and ratings.
posted by kyleg at 10:16 PM on January 30, 2007


Make the rule: Play Count is 0 (assuming they are unlistened to on Computer B as well) and with live updating, they will be removed from the list automatically when listened to (as long as the file plays through the end of the song, which is a big flaw in the software).

iTunes 7 added a "skip count" field that can be used in conjunction with "play count" (e.g. match ALL of following: "play count is 0" AND "skip count is 0") to track how many times a track has been played, but not all the way through.
posted by kindall at 8:01 AM on January 31, 2007


« Older How can I sell data on demand?   |   Click! Click! Boom! Newer »
This thread is closed to new comments.