mhite / swinsian2itlxml

Generate iTunes library XML from Swinsian database
MIT License
28 stars 4 forks source link

Rekordbox (Im a noob please help me) #6

Open ehingston opened 3 years ago

ehingston commented 3 years ago

Hi there,

Firstly thank you for creating this. I just need some help getting my head around it please!

I am no coder at all, nor do I understand any code language really, I am just a musician/DJ who is in dire need of Swinsian to be able to talk to Rekordbox. I have grown to hate iTunes and Swinsian has been my saviour, this is the last hurdle I have to overcome. I have been able to run 'Swinsian2itlxml' and generated an XML file but it does not work. Rekordbox tells me there is 0 tracks in my library and none of the playlists show. None of them are 'Smart' playlists, they are all regular playlist folders with playlists within them.

I will note that my entire music library is held on an external SSD so I changed the appropriate parts as follows:

DEFAULT_SQLITE = os.path.expanduser('~/Library/Application Support/Swinsian/Library.sqlite') DEFAULT_XML = os.path.expanduser('/Volumes/EH DRIVE 3 (AUDIO)/iTunes/iTunes Media/Library.xml') DEFAULT_ITUNES_MUSIC_FOLDER = os.path.expanduser('/Volumes/EH DRIVE 3 (AUDIO)/iTunes/iTunes Media')

With these inputs everything seems to "work" and an XML is generated, but Rekordbox tells me there is nothing within it.

I must have done something wrong along the way, I really have no idea what I am doing. Please help me!

Many thanks,

Elliot

mhite commented 2 years ago

You probably have not done anything wrong. It may not actually work with Rekordbox. I've never tested it myself.

jcrbcn commented 2 years ago

Had the same problem. Fixed it by manually changing DOCTYPE to: <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

The only issue I have with rekordbox is that playlists with parents appear outside the folders.

mhite commented 2 years ago

@jcrbcn - Great to know! Thanks for sharing this fix.

jcrbcn commented 2 years ago

Btw, I've automated it as patched:

Index: swinsian2itlxml.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/swinsian2itlxml.py b/swinsian2itlxml.py
--- a/swinsian2itlxml.py    (revision bdbab3f7685e508a8fe665d2de29822b6c1a77bf)
+++ b/swinsian2itlxml.py    (date 1638747010657)
@@ -111,6 +111,9 @@
                         help='iTunes music folder [%(default)s]',
                         dest='itunes_music_folder',
                         default=DEFAULT_ITUNES_MUSIC_FOLDER)
+    parser.add_argument('--rekordbox', '-rb',
+                        help='Rekordbox format [%(default)s]',
+                        action='store_true', dest='rbformat')
     return parser

@@ -345,6 +348,9 @@
     logging.debug("args = %s" % args)
     generate_xml(swinsian_db=args.db, itunes_xml=args.xml,
                  itunes_music_folder=args.itunes_music_folder)
+    if args.rbformat:
+        logging.info("Formatting {} to rekordbox".format(args.xml))
+        os.system("perl -i -pe's/Apple/Apple Computer/' '{}'".format(args.xml))
     logging.info("Done.")