Product architecture · 8 minute read

Preview first. Match carefully. Create only after review.

PlaylistXfer separates reading, analysis, review, authorization, and creation so you can see the result before granting write access.

1. Public Spotify preview

PlaylistXfer checks the submitted URL and reads metadata that Spotify exposes through the public link. No Spotify login is requested.

2. Apple Music matching

Each source row is compared with the destination storefront using identifiers and metadata. The output is a report, not yet a playlist.

3. Human review

Strong matches are ready. Ambiguous candidates wait for a decision. Missing rows stay excluded instead of receiving a weak substitute.

4. Authorized creation

Only then does PlaylistXfer request Apple Music access, create the playlist, add approved tracks, and return a receipt.

Stage 1: validate and preview the Spotify source

The first step determines whether the pasted value identifies a supported Spotify playlist or track. For a playlist, the preview verifies the title, owner, artwork, size, and initial track metadata before any expensive matching work begins.

This stage is intentionally read-only. PlaylistXfer does not request Spotify credentials and cannot edit the source. If a link depends on your signed-in Spotify session, the preview may fail even though it opens normally for you.

Why this separation helps:

A wrong or inaccessible link fails early, before Apple Music is involved and before the user waits for a full match analysis.

Stage 2: build an Apple Music match report

PlaylistXfer searches the Apple Music storefront associated with the destination context. It prefers recording-level evidence such as ISRC when available, then considers title, artist, album, duration, and edition markers.

An ISRC is strong evidence, but it is not the same thing as a unique Apple Music song ID. Apple documents that an ISRC lookup can return multiple catalog songs, often because one recording appears on several releases. The matcher still needs album and duration context to choose a useful candidate.

Analysis runs in batches for larger playlists. Progress reflects source rows analyzed, not a promise that every track will have a destination match.

Stage 3: turn confidence into explicit decisions

Ready

The evidence is strong enough for automatic inclusion.

Review

A candidate exists, but a person should inspect the version.

Missing

No candidate passed the safety threshold.

Review rows are not transferred by default. You can approve a suggested candidate or skip the row. The product is deliberately conservative because a confident-looking wrong version is harder to catch after hundreds of songs have moved.

Stage 4: ask for Apple Music access at the last responsible moment

Preview and matching do not need permission to change your Apple Music library. PlaylistXfer waits until you choose to create the destination playlist, then uses MusicKit authorization so the write is connected to your Apple Music account.

This late-authorization design makes the permission request easier to understand: it appears next to the action that needs it. If you leave during preview or review, no Apple Music playlist is created.

Stage 5: create the playlist and report the outcome

PlaylistXfer creates a new Apple Music library playlist, then adds the ready and explicitly approved catalog tracks in source order. Skipped and missing rows are not silently replaced.

The receipt distinguishes the successful additions from rows that stayed out. If Apple Music rejects an individual catalog item or the write is interrupted, the result should remain visible instead of presenting a blanket success message.

What data crosses each boundary

Stage Data used What is not needed
Spotify preview Submitted public URL and public metadata Spotify password or account authorization
Matching Track metadata, catalog candidates, and safe confidence signals Apple Music write permission
Review Temporary transfer report and your decisions Email or profile information
Creation Apple Music authorization and approved catalog IDs Spotify account control

Temporary reports let a review survive a refresh and normally expire after about seven days; in-progress jobs expire sooner. Operational analytics are designed around counts, durations, outcomes, and error categories—not tokens, emails, or full Spotify URLs.

Official references