No description available.
Properties
MusicBrainz artist id, formatted as mbid:<uuid>.
The name of the artist.
maxLength: 2560 bytesminLength: 1 bytesmaxGraphemes: 256 graphemes
View raw schema
{
"properties": {
"artistMbId": {
"description": "MusicBrainz artist id, formatted as mbid:<uuid>.",
"format": "uri",
"type": "string"
},
"artistName": {
"description": "The name of the artist.",
"maxGraphemes": 256,
"maxLength": 2560,
"minLength": 1,
"type": "string"
}
},
"required": [
"artistName"
],
"type": "object"
}
One cover art candidate. Either url or image must be present.
Properties
No description available.
minimum: 1
A cached copy of the artwork stored in the hosting repo, so the record survives every external service going away.
maxSize: 1.0 MB
Who serves this image. 'self' means the image blob is stored in this repo.
maxLength: 64 bytes
Known values: spotify, appleMusic, coverArtArchive, youtube, self
No description available.
minimum: 1
View raw schema
{
"description": "One cover art candidate. Either url or image must be present.",
"properties": {
"height": {
"minimum": 1,
"type": "integer"
},
"image": {
"accept": [
"image/*"
],
"description": "A cached copy of the artwork stored in the hosting repo, so the record survives every external service going away.",
"maxSize": 1000000,
"type": "blob"
},
"provider": {
"description": "Who serves this image. 'self' means the image blob is stored in this repo.",
"knownValues": [
"spotify",
"appleMusic",
"coverArtArchive",
"youtube",
"self"
],
"maxLength": 64,
"type": "string"
},
"url": {
"description": "Public image URL.",
"format": "uri",
"type": "string"
},
"width": {
"minimum": 1,
"type": "integer"
}
},
"required": [
"provider"
],
"type": "object"
}
Who added something. Anonymous contributors have only a display name; signed-in contributors also carry their DID.
Properties
The contributor's ATProto identity, when they were signed in.
Name typed or chosen by the contributor.
maxLength: 640 bytesminLength: 1 bytesmaxGraphemes: 64 graphemes
View raw schema
{
"description": "Who added something. Anonymous contributors have only a display name; signed-in contributors also carry their DID.",
"properties": {
"did": {
"description": "The contributor's ATProto identity, when they were signed in.",
"format": "did",
"type": "string"
},
"displayName": {
"description": "Name typed or chosen by the contributor.",
"maxGraphemes": 64,
"maxLength": 640,
"minLength": 1,
"type": "string"
}
},
"required": [
"displayName"
],
"type": "object"
}
A native playlist on a music service that mirrors this record. The record is the source of truth; mirrors are downstream and append-only.
Properties
The service's playlist id.
maxLength: 256 bytes
DID of the account whose service login owns the mirror. Absent means the Open Playlist app account hosts it.
Service identifier.
maxLength: 64 bytes
Known values: spotify, appleMusic, youtube
When the mirror was last brought up to date with this record.
Public, followable URL of the mirrored playlist.
View raw schema
{
"description": "A native playlist on a music service that mirrors this record. The record is the source of truth; mirrors are downstream and append-only.",
"properties": {
"externalId": {
"description": "The service's playlist id.",
"maxLength": 256,
"type": "string"
},
"hostDid": {
"description": "DID of the account whose service login owns the mirror. Absent means the Open Playlist app account hosts it.",
"format": "did",
"type": "string"
},
"service": {
"description": "Service identifier.",
"knownValues": [
"spotify",
"appleMusic",
"youtube"
],
"maxLength": 64,
"type": "string"
},
"syncedAt": {
"description": "When the mirror was last brought up to date with this record.",
"format": "datetime",
"type": "string"
},
"url": {
"description": "Public, followable URL of the mirrored playlist.",
"format": "uri",
"type": "string"
}
},
"required": [
"service",
"url"
],
"type": "object"
}
A location for a track on a specific music service.
Properties
The service's own track identifier, e.g. a Spotify track id or an Apple Music catalog id.
maxLength: 256 bytes
ISO 3166-1 alpha-2 storefront code when the externalId is region-specific, as Apple Music catalog ids are.
maxLength: 2 bytesminLength: 2 bytes
Service identifier. Unknown values must be preserved by readers.
maxLength: 64 bytes
Known values: spotify, appleMusic, youtube, youtubeMusic, tidal, deezer, bandcamp, soundcloud, musicbrainz
Public URL of the track on that service.
View raw schema
{
"description": "A location for a track on a specific music service.",
"properties": {
"externalId": {
"description": "The service's own track identifier, e.g. a Spotify track id or an Apple Music catalog id.",
"maxLength": 256,
"type": "string"
},
"region": {
"description": "ISO 3166-1 alpha-2 storefront code when the externalId is region-specific, as Apple Music catalog ids are.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"service": {
"description": "Service identifier. Unknown values must be preserved by readers.",
"knownValues": [
"spotify",
"appleMusic",
"youtube",
"youtubeMusic",
"tidal",
"deezer",
"bandcamp",
"soundcloud",
"musicbrainz"
],
"maxLength": 64,
"type": "string"
},
"url": {
"description": "Public URL of the track on that service.",
"format": "uri",
"type": "string"
}
},
"required": [
"service",
"url"
],
"type": "object"
}
A catalog track. Identity is carried by isrc and MusicBrainz ids; per-service locations live in sources. Nothing here depends on a single music service.
Properties
Artists in order of original appearance.
maxLength: 20 items
Cover art candidates in preference order. Readers fall through on load failure.
maxLength: 10 items
The length of the track in seconds.
minimum: 0
International Standard Recording Code. The primary cross-service identifier; both Spotify and Apple Music return it.
maxLength: 15 bytes
MusicBrainz recording id, formatted as mbid:<uuid>.
Distinguishing information for release variants, e.g. 'Deluxe Edition', '2023 Remaster'.
maxLength: 1280 bytesmaxGraphemes: 128 graphemes
MusicBrainz release-group id, formatted as mbid:<uuid>. Used to fetch art from the Cover Art Archive.
MusicBrainz release id, formatted as mbid:<uuid>.
The name of the release or album.
maxLength: 2560 bytesmaxGraphemes: 256 graphemes
Where this track can be played, one entry per service. Readers pick the entry matching the listener's service, or resolve a missing one from isrc.
maxLength: 20 items
Distinguishing information for track variants, e.g. 'Live at Wembley', 'Radio Edit'.
maxLength: 1280 bytesmaxGraphemes: 128 graphemes
The name of the track.
maxLength: 2560 bytesminLength: 1 bytesmaxGraphemes: 256 graphemes
View raw schema
{
"description": "A catalog track. Identity is carried by isrc and MusicBrainz ids; per-service locations live in sources. Nothing here depends on a single music service.",
"properties": {
"artists": {
"description": "Artists in order of original appearance.",
"items": {
"ref": "#artist",
"type": "ref"
},
"maxLength": 20,
"type": "array"
},
"artwork": {
"description": "Cover art candidates in preference order. Readers fall through on load failure.",
"items": {
"ref": "#artwork",
"type": "ref"
},
"maxLength": 10,
"type": "array"
},
"duration": {
"description": "The length of the track in seconds.",
"minimum": 0,
"type": "integer"
},
"isrc": {
"description": "International Standard Recording Code. The primary cross-service identifier; both Spotify and Apple Music return it.",
"maxLength": 15,
"type": "string"
},
"recordingMbId": {
"description": "MusicBrainz recording id, formatted as mbid:<uuid>.",
"format": "uri",
"type": "string"
},
"releaseDiscriminant": {
"description": "Distinguishing information for release variants, e.g. 'Deluxe Edition', '2023 Remaster'.",
"maxGraphemes": 128,
"maxLength": 1280,
"type": "string"
},
"releaseGroupMbId": {
"description": "MusicBrainz release-group id, formatted as mbid:<uuid>. Used to fetch art from the Cover Art Archive.",
"format": "uri",
"type": "string"
},
"releaseMbId": {
"description": "MusicBrainz release id, formatted as mbid:<uuid>.",
"format": "uri",
"type": "string"
},
"releaseName": {
"description": "The name of the release or album.",
"maxGraphemes": 256,
"maxLength": 2560,
"type": "string"
},
"sources": {
"description": "Where this track can be played, one entry per service. Readers pick the entry matching the listener's service, or resolve a missing one from isrc.",
"items": {
"ref": "#source",
"type": "ref"
},
"maxLength": 20,
"type": "array"
},
"trackDiscriminant": {
"description": "Distinguishing information for track variants, e.g. 'Live at Wembley', 'Radio Edit'.",
"maxGraphemes": 128,
"maxLength": 1280,
"type": "string"
},
"trackName": {
"description": "The name of the track.",
"maxGraphemes": 256,
"maxLength": 2560,
"minLength": 1,
"type": "string"
}
},
"required": [
"trackName"
],
"type": "object"
}