Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Legacy iTunes Integration (XML) #9688

Closed
mixxxbot opened this issue Aug 23, 2022 · 16 comments
Closed

Legacy iTunes Integration (XML) #9688

mixxxbot opened this issue Aug 23, 2022 · 16 comments

Comments

@mixxxbot
Copy link
Collaborator

Reported by: uklotzde
Date: 2019-07-09T06:58:50Z
Status: Confirmed
Importance: High
Launchpad Issue: lp1835876
Tags: library


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: esbrandt
Date: 2019-09-16T10:17:46Z


Upgrading to macOS 10.15 Catalina (due in 2019-10) will break Mixxx´ iTunes integration.
https://developer.apple.com/documentation/ituneslibrary?language=objc
https://djtechtools.com/2019/09/15/will-the-end-of-itunes-break-dj-software-in-macos-10-15-catalina/

@mixxxbot
Copy link
Collaborator Author

@mixxxbot
Copy link
Collaborator Author

Commented by: ywwg
Date: 2019-10-07T20:53:34Z


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?)

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2019-10-08T06:41:39Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: ywwg
Date: 2019-10-08T14:36:46Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: ywwg
Date: 2019-10-08T14:38:05Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: ferranpujolcamins
Date: 2019-11-01T09:39:31Z


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?

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2019-11-01T10:33:18Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2019-11-01T10:43:32Z


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.

@mixxxbot
Copy link
Collaborator Author

Commented by: foss-4
Date: 2020-09-02T07:58:54Z


Cross-linking Discourse thread: https://mixxx.discourse.group/t/itunes-integration/19871

@mixxxbot
Copy link
Collaborator Author

Commented by: uklotzde
Date: 2021-08-13T18:12:55Z


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

@mixxxbot
Copy link
Collaborator Author

Commented by: ferranpujolcamins
Date: 2021-08-13T18:28:55Z


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

@fwcd
Copy link
Member

fwcd commented Apr 4, 2023

macOS integration via the iTunesLibrary framework is now implemented with #11353, some notes on Windows and other platforms can be found in #11256

@Swiftb0y
Copy link
Member

Swiftb0y commented Apr 5, 2023

So assume you're in favor of marking this issue as fixed?

@uklotzde
Copy link
Contributor

uklotzde commented Apr 5, 2023

@Swiftb0y Sure. Mark issues as fixed eagerly. Assigning a release milestone for documentation purposes is helpful to identify the (upcoming) release. Remaining bugs or open issues could then be tracked by new issues.

@fwcd
Copy link
Member

fwcd commented Oct 14, 2023

Closing since the iTunesLibrary integration on macOS is implemented as of #11353. Other ideas from this thread (XML export) are better placed in a separate feature request and finding a solution for Windows users can be revisited if/when Apple stops supporting iTunes on Windows (which is presumably when other DJ programs will break too, see #11256).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants