Legacy iTunes Integration (XML)

Bug #1835876 reported by Uwe Klotz
16
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Mixxx
Confirmed
High
Unassigned

Bug Description

Apple is gradually dropping support for exporting the iTunes database as an XML file. In newer versions exporting the XML file is no longer enabled by default ("Share iTunes Library XML with other applications"), and this option won't be available in the new Apple Music app.

See also: https://djtechtools.com/2019/04/14/an-itunes-breakup-is-probably-coming-will-this-impact-djs/

The number of bug reports from users that are not able to import their iTunes library is already increasing.

As a replacement Apple offers the database with the iTunesLibrary framework: https://developer.apple.com/documentation/ituneslibrary. Development of a new iTunes integration is limited to macOS due to Apples restrictive practices.

Tags: library
Revision history for this message
jus (jus) wrote :
Changed in mixxx:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :
Revision history for this message
Owen Williams (ywwg) wrote :

Similarly, a lot of DJs use the XML export function from iTunes to get their tracks into other DJ programs. Maybe we should add support for that? We currently only export M3U/CSV/Text. (Should that be a separate feature request?)

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

The XML export is history with the introduction of Apple Music and this is what this bug report is all about.

Revision history for this message
Owen Williams (ywwg) wrote :

Right. I'm proposing we add xml export so that people who used to organize their libraries with itunes could now organize their libraries with mixxx instead.

Revision history for this message
Owen Williams (ywwg) wrote :

(that seems obviously off topic now, sorry, disregard)

Revision history for this message
Ferran Pujol (ferranpujol) wrote :

So if we want to use this new apple api we must write a client in swift or objc. We could write this client and integrate it into mixxx somehow. But I think this will cause headaches.

What about writing a simple standalone swift client that talks to aoide?

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

All tracks could be imported and added to a separate aoide collection, i.e. "iTunesLibrary @timestamp" in a first step.

As a workaround for the missing playlist feature all tracks of a playlist could be tagged with facet = "crate". Conceptually those tags identify unordered crates and not ordered playlists. The hierarchical structure needs to be encoded in the tags' labels somehow, i.e. label = "...<playlist path separator><parent playlist name><playlist path separator><playlist name>" with a configurable playlist path separator.

I'm already thinking about how to add support for playlists as one of the last missing features that is required to allow lossless import of external libraries.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

You can provide a hierarchical structure for those imported queries by generating a JSON file with prepared queries that could be loaded into Mixxx:

https://github.com/uklotzde/mixxx/blob/dev_aoide/res/aoide/example_prepared_queries.json

Each leaf node is a query for a playlist tag:

{
    "@type": "query",
    "name": "<visible playlist name>",
    "filter": {
        "tag": {
            "facets": [
                "crate"
            ],
            "label": {
                "equals": "<internal playlist name>"
            }
        }
    }
}

You need to ensure that the playlist names are unique. The internal playlist names in the tag could differ from the visible names in this file.

Changed in mixxx:
assignee: nobody → Ferran Pujol (ferranpujol)
Changed in mixxx:
status: Confirmed → In Progress
Revision history for this message
Foss-4 (foss-4) wrote :
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Any progress? Otherwise let's reset the status and assignment.

Revision history for this message
Ferran Pujol (ferranpujol) wrote : Re: [Bug 1835876] Re: Legacy iTunes Integration (XML)

No. I won't work on it anymore since I don't own a mac. It's everything on
my repo in case anybody is interested to take over.

El dv., 13 d’ag. 2021, 20:20, Uwe Klotz <email address hidden> va
escriure:

> Any progress? Otherwise let's reset the status and assignment.
>
> --
> You received this bug notification because you are a bug assignee.
> https://bugs.launchpad.net/bugs/1835876
>
> Title:
> Legacy iTunes Integration (XML)
>
> Status in Mixxx:
> In Progress
>
> Bug description:
> Apple is gradually dropping support for exporting the iTunes database
> as an XML file. In newer versions exporting the XML file is no longer
> enabled by default ("Share iTunes Library XML with other
> applications"), and this option won't be available in the new Apple
> Music app.
>
> See also: https://djtechtools.com/2019/04/14/an-itunes-breakup-is-
> probably-coming-will-this-impact-djs/
>
> The number of bug reports from users that are not able to import their
> iTunes library is already increasing.
>
> As a replacement Apple offers the database with the iTunesLibrary
> framework: https://developer.apple.com/documentation/ituneslibrary.
> Development of a new iTunes integration is limited to macOS due to
> Apples restrictive practices.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/1835876/+subscriptions
>
>

Be (be.ing)
Changed in mixxx:
assignee: Ferran Pujol (ferranpujol) → nobody
status: In Progress → Confirmed
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/9688

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.