Aurral

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.

SourceNeedsSyncNotes
SpotifyOAuth per userYesFull details only for playlists you own or collaborate on
YouTube MusicPublic playlist URLYesNo Google account or API key
Last.fmUsernameYesThree station types
ListenBrainzLinked tokenYesIncludes two generated playlists
JSON fileNothingNoThe 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.

FieldAccepted keys
ArtistartistName, artist, artist_name, Artist Name(s)
TracktrackName, title, name, track, Track Name
AlbumalbumName, album, Album Name
Artist IDartistMbid, 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.