Advertisement
tankcr

MusicLib to XML

Apr 23rd, 2014
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.94 KB | None | 0 0
  1. using System;
  2. using iTunesLib;
  3. using System.Xml;
  4. using System.Xml.Linq;
  5. using System.IO;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text.RegularExpressions;
  9. using TagLib;
  10. using ITLRU;
  11. using System.Xml.Serialization;
  12. namespace BackupLib
  13. {
  14.     class Program
  15.     {
  16.       static void Main(string[] args)
  17.         {
  18.             // iTunes classes
  19.             iTunesAppClass itunes = new iTunesAppClass();
  20.             IITLibraryPlaylist mainLibrary = itunes.LibraryPlaylist;
  21.             IITTrackCollection ittracks = mainLibrary.Tracks;          
  22.             List<string> files = new List<string>();
  23.             List<string> musicfiles = new List<string>();
  24.             List<string> badfiles = new List<string>();
  25.          
  26.           int state = (int)itunes.PlayerState;
  27.           //Console.Write(state); System.Threading.Thread.Sleep(5500);
  28.          
  29.           if (state == 1){ Console.Write("Itunes will be Pausing to ensure Data Integrity");System.Threading.Thread.Sleep(5500); itunes.Pause(); }
  30.           //Console.WriteLine state;
  31.          
  32.           string[] extensions = { "*.mp3", "*.mp4", "*.m4a", "*.m4v", "*.m4p", "*.m4b", "*.flac"};
  33.             string filepath = "G:\\iTunes Media";
  34.             foreach (string extension in extensions)
  35.             {
  36.                 files.AddRange(Directory.GetFiles(filepath, extension, SearchOption.AllDirectories));
  37.             }
  38.  
  39.             foreach (string file in files)
  40.             {
  41.                 try {string taglibfile = TagLib.File.Create(file).Tag.Title; musicfiles.Add(file); Console.WriteLine(taglibfile); }
  42.                 catch {badfiles.Add(file); }
  43.             }
  44.  
  45.             //string pattern = "[\\~#%&*{}/:<>?|\"-]";
  46.             //string replacement = "_";
  47.             //Regex regEx = new Regex(pattern);
  48.             //string sanitized = Regex.Replace(regEx.Replace(input, replacement), @"\s+", " ");
  49.          
  50.           XDocument baddoc = new XDocument
  51.                 (new XElement("Corrupt",
  52.                     badfiles.Select(badfile =>
  53.                     new XElement("File", badfile))));
  54.                 baddoc.Save("D:\\badfiles.xml");
  55.           // foreach(string musicfile in musicfiles)
  56.            //{ String Title = (TagLib.File.Create(musicfile).Tag.Title); }
  57.      
  58.           XDocument doc = new XDocument
  59.               //foreach(string musicfile in musicfiles){
  60.               //string Title = (TagLib.File.Create(musicfile).Tag.Title);
  61.               //}
  62.               (new XElement("Songs",
  63.                    musicfiles.Select(musicfile=>
  64.                     new XElement("Song",
  65.                    (new XElement("Title",(TagLib.File.Create(musicfile).Tag.Title))),
  66.                    (new XElement("Path", (musicfile))),
  67.                    (new XElement("Artist",(TagLib.File.Create(musicfile).Tag.Performers)))
  68.                    ))));
  69.                
  70.           doc.Save("D:\\files.xml");
  71.                 itunes.Play();
  72.         }
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement