mhite / swinsian2itlxml Goto Github PK
View Code? Open in Web Editor NEWGenerate iTunes library XML from Swinsian database
License: MIT License
Generate iTunes library XML from Swinsian database
License: MIT License
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
Love what you've done here.
You mention in the readme that Swinsian Smart Playlists aren't supported. Can you provide some more info?
Is it technically impossible or just non-trival/difficult?
Thanks
Hi when I run the script, I get a couple of warnings and at the end
an error with the script so it seems
What can I do, can you help me?
DINGER-2:swinsian2itlxml-master dinger$ ./swinsian2itlxml.py -x fynn.xml
2022-09-10 13:33:53 INFO: Opening Swinsian database '/Users/dinger/Library/Application Support/Swinsian/Library.sqlite'...
2022-09-10 13:33:53 INFO: Generating track information...
2022-09-10 13:33:54 WARNING: Jandl, bierrmann / 09 Strickleiter (Jandl) has a play date earlier than date added, 2013-10-02 11:16:00 [play date] < 2013-11-09 01:41:44 [date added]
2022-09-10 13:33:54 WARNING: Retag! / Harry Rowohlt liest Flann O'Brien - has a play date earlier than date added, 2013-08-24 14:53:00 [play date] < 2013-11-09 01:49:14 [date added]
2022-09-10 13:33:54 WARNING: Nancy Sinatra / Theses Boots Ar has a play date earlier than date added, 2013-08-23 22:35:00 [play date] < 2013-11-09 01:50:00 [date added]
2022-09-10 13:33:54 WARNING: Jozif / Guitar Player (Original Mix) has a play date earlier than date added, 2013-04-20 02:22:00 [play date] < 2013-11-09 01:52:03 [date added]
2022-09-10 13:33:55 WARNING: Plastikman / headcase has a play date earlier than date added, 2014-02-26 18:57:36 [play date] < 2014-07-09 20:53:02 [date added]
2022-09-10 13:33:55 WARNING: Plastikman / i don't know has a play date earlier than date added, 2014-06-22 15:01:02 [play date] < 2014-07-09 20:55:28 [date added]
2022-09-10 13:33:55 WARNING: Amount / Weisshorn_URS004 has a play date earlier than date added, 2014-09-09 11:36:29 [play date] < 2014-10-11 01:23:28 [date added]
2022-09-10 13:33:55 WARNING: Walker & Royce / A Perfect Sound feat. Louisahhh! (Original Mix) has a play date earlier than date added, 2014-10-31 21:59:06 [play date] < 2015-01-05 21:00:34 [date added]
2022-09-10 13:33:55 WARNING: Cagedbaby / Forced (Full_Force_Idiotproof_Remix) has a play date earlier than date added, 2014-08-05 06:03:32 [play date] < 2015-01-11 12:20:42 [date added]
2022-09-10 13:33:55 WARNING: Rich Vom Dorf / Begin Gro (The Chosen Two Remix) has a play date earlier than date added, 2014-10-31 23:52:32 [play date] < 2015-04-12 01:39:49 [date added]
2022-09-10 13:33:55 WARNING: Slumber, Guada FX / Nightwalkers feat. Guada FX (Elia Crecchi Remix) has a play date earlier than date added, 2014-10-31 22:52:18 [play date] < 2015-04-12 01:39:49 [date added]
2022-09-10 13:33:55 WARNING: None / Golden Brown (The Apple Scruffs Edit) has a play date earlier than date added, 2014-09-22 07:44:37 [play date] < 2015-11-03 23:14:10 [date added]
2022-09-10 13:33:55 WARNING: None / Sedna lo to kullen3-- 1.mix 13.11 has a play date earlier than date added, 2015-02-19 19:19:08 [play date] < 2015-11-04 00:08:45 [date added]
2022-09-10 13:33:55 WARNING: None / morning walk (tadpole´s oriental mix) has a play date earlier than date added, 2015-02-24 16:10:23 [play date] < 2015-11-04 00:11:54 [date added]
Traceback (most recent call last):
File "./swinsian2itlxml.py", line 352, in <module>
main()
File "./swinsian2itlxml.py", line 347, in main
itunes_music_folder=args.itunes_music_folder)
File "./swinsian2itlxml.py", line 174, in generate_xml
total_time = int(math.ceil(row["length"] * 1000))
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
Hi appreciate the work on this.
I have flac files in my library which caused the script to fail.
2016-08-26 10:49:56 INFO: Generating track information...
Traceback (most recent call last):
File "./swinsian2itlxml.py", line 327, in
main()
File "./swinsian2itlxml.py", line 322, in main
itunes_music_folder=args.itunes_music_folder)
File "./swinsian2itlxml.py", line 149, in generate_xml
total_time = int(math.ceil(row["length"] * 1000))
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
Would be at all possible for the itunes unsupported files to be ignored with a warning message?
Is it feasible/possible to export a specific playlist from Swinsian (smart or standard) to itunes.xml?
thanks again
A bug this time.
When running the script I was receiving an error around concatenating a str and int object at line 260:
for x, row in enumerate(rows, x+1):
This seems to be because x is a str when it is passed to enumerate. I've fixed this by simply inserting:
x = int(x) at line 259
I haven't had the chance to work out why this had broken or whether this is the best solution so I haven't created a pull request. My Python/programming knowledge is quite limited
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.