private static void createPlaylist() { try { iTunesApp app = new iTunesApp(); app.ForceToForegroundOnDialog = true; //app.SetOptions(); would be nice to kill autoarrange IITPlaylistCollection pl = app.LibrarySource.Playlists; IITUserPlaylist playlist = null; playlist = findPlaylist(pl, playlist); if (playlist == null) { playlist = (IITUserPlaylist)app.CreatePlaylist(playlistName); } else { // remove tracks, how? foreach (IITTrack t in playlist.Tracks) { //t.Delete(); <== ? } } iTunesLib.IITLibraryPlaylist lp = app.LibraryPlaylist; IITTrackCollection itTracks = app.LibraryPlaylist.Tracks; Dictionary <string, int> libraryTrackDictionary = new Dictionary <string, int>(StringComparer.OrdinalIgnoreCase); List <string> libraryTrackFiles = new List <string>(); foreach (IITTrack t in itTracks) { if (Cancel) { break; } if (t.Kind == ITTrackKind.ITTrackKindFile) { string l = (t as IITFileOrCDTrack).Location; if (l != null) { libraryTrackFiles.Add(l); if (!libraryTrackDictionary.ContainsKey(l)) { libraryTrackDictionary.Add(l, t.Index); } } } } List <string> allTracks = new List <string>(); foreach (Track t in tracks) { allTracks.Add(t.FilePath); } object oo = (object)(allTracks.ToArray()); playlist.AddFiles(ref oo); Controller.ShowMessage("Completed sending playlist to iTunes."); app.Quit(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); Clock.DoOnMainThread(ShowError); } Busy = false; }