Moving and sharing
Importing Playlists From Other Services
Most import problems are not failures. They are imports that produce no downloads because you already own the music, which looks identical to a broken integration unless you know what to look for.
Choosing a route
Each provider has a different access model, so the practical question is what credential you are willing to hand over.
| Source | Needs | Sync | Notes |
|---|---|---|---|
| Spotify | OAuth per user | Yes | Full details only for playlists you own or collaborate on |
| YouTube Music | Public playlist URL | Yes | No Google account or API key |
| Last.fm | Username | Yes | Three station types |
| ListenBrainz | Linked token | Yes | Includes two generated playlists |
| JSON file | Nothing | No | The route that always works |
Why an import downloads almost nothing
Aurral checks each track against your library before searching. Anything already present, whether Aurral downloaded it or Lidarr owns the file, is reused. Only genuinely missing tracks are searched.
So a 400-track playlist where you already own 340 produces about 60 downloads. That is correct behaviour and it is the fastest import you will ever do.
Sync behaviour when the provider changes
Each provider import has a sync schedule. Choose None for a fixed tracklist, change it later, or force a read immediately.
A sync re-reads the provider playlist, removes what is gone and queues what is new. By default a removed track leaves your playlist but its file stays in the library, because you may have added it deliberately. Turn that off if you want files deleted with the track.
When a provider import actually breaks
Spotify connections expire or get revoked. When that happens Aurral disconnects, pauses your synced Spotify playlists and shows a reconnect message rather than serving stale lists.
YouTube Music is more likely to return incomplete or repeated pages, or rate-limit the requests. Aurral loads every page before changing anything, so a partial response leaves your tracks untouched and pauses briefly before continuing.
In both cases the design goal is the same: never silently truncate a playlist.
- Spotify reconnect: open the import window and connect again.
- YouTube partial page: reload the preview or use Sync now later.
- ListenBrainz generated playlists always resolve to the newest version.
The JSON route, in detail
When OAuth is not an option, the file route has no dependencies at all. Aurral accepts several shapes: an exported Aurral playlist, one playlist object with a tracks array, a bare array of tracks, an object with a playlists array, or an object with a playlist property.
Field names are forgiving because they have to survive whatever exporter produced. Track needs an artist and a track name; album and artist ID are optional and only improve matching.
| Field | Accepted keys |
|---|---|
| Artist | artistName, artist, artist_name, Artist Name(s) |
| Track | trackName, title, name, track, Track Name |
| Album | albumName, album, Album Name |
| Artist ID | artistMbid, artistId, mbid |
Frequently asked questions
Why did importing a 400-track playlist download only 60 files?
Because you already own the rest. Aurral reuses existing library and Lidarr files rather than downloading them again.
Should I delete tracks the provider removed?
Only if you want the files gone too. By default a removed track leaves your playlist but its file stays in the library.
My Spotify import stopped syncing. What happened?
The connection expired or was revoked. Aurral disconnected it, paused synced Spotify playlists and shows a reconnect message.
Can I import a private YouTube Music playlist?
No. Private playlists, Liked Music and personal library playlists all need a Google sign-in that Aurral does not perform.
Ready to set it up
One container and one media path is genuinely all it takes. Everything else in this page is something you add when the need appears.