{
"id": "app.rocksky.song.defs",
"defs": {
"songViewBasic": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier of the song."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "The URI of the song."
},
"isrc": {
"type": "string",
"description": "The International Standard Recording Code (ISRC) of the song."
},
"mbid": {
"type": "string",
"description": "The MusicBrainz ID of the song."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"album": {
"type": "string",
"description": "The album of the song."
},
"title": {
"type": "string",
"description": "The title of the song."
},
"artist": {
"type": "string",
"description": "The artist of the song."
},
"sha256": {
"type": "string",
"description": "The SHA256 hash of the song."
},
"albumArt": {
"type": "string",
"format": "uri",
"description": "The URL of the album art image."
},
"albumUri": {
"type": "string",
"format": "at-uri",
"description": "The URI of the album the song belongs to."
},
"duration": {
"type": "integer",
"description": "The duration of the song in milliseconds."
},
"artistUri": {
"type": "string",
"format": "at-uri",
"description": "The URI of the artist of the song."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "The timestamp when the song was created."
},
"playCount": {
"type": "integer",
"minimum": 0,
"description": "The number of times the song has been played."
},
"discNumber": {
"type": "integer",
"description": "The disc number of the song in the album."
},
"albumArtist": {
"type": "string",
"description": "The artist of the album the song belongs to."
},
"trackNumber": {
"type": "integer",
"description": "The track number of the song in the album."
},
"uniqueListeners": {
"type": "integer",
"minimum": 0,
"description": "The number of unique listeners who have played the song."
}
}
},
"songViewDetailed": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier of the song."
},
"uri": {
"type": "string",
"format": "at-uri",
"description": "The URI of the song."
},
"isrc": {
"type": "string",
"description": "The International Standard Recording Code (ISRC) of the song."
},
"mbid": {
"type": "string",
"description": "The MusicBrainz ID of the song."
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"album": {
"type": "string",
"description": "The album of the song."
},
"title": {
"type": "string",
"description": "The title of the song."
},
"artist": {
"type": "string",
"description": "The artist of the song."
},
"sha256": {
"type": "string",
"description": "The SHA256 hash of the song."
},
"artists": {
"type": "array",
"items": {
"ref": "app.rocksky.artist.defs#artistViewBasic",
"type": "ref"
}
},
"albumArt": {
"type": "string",
"format": "uri",
"description": "The URL of the album art image."
},
"albumUri": {
"type": "string",
"format": "at-uri",
"description": "The URI of the album the song belongs to."
},
"duration": {
"type": "integer",
"description": "The duration of the song in milliseconds."
},
"artistUri": {
"type": "string",
"format": "at-uri",
"description": "The URI of the artist of the song."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "The timestamp when the song was created."
},
"playCount": {
"type": "integer",
"minimum": 0,
"description": "The number of times the song has been played."
},
"discNumber": {
"type": "integer",
"description": "The disc number of the song in the album."
},
"albumArtist": {
"type": "string",
"description": "The artist of the album the song belongs to."
},
"trackNumber": {
"type": "integer",
"description": "The track number of the song in the album."
},
"firstScrobble": {
"ref": "app.rocksky.song.defs#firstScrobbleView",
"type": "ref",
"description": "The first scrobble of this song on Rocksky."
},
"uniqueListeners": {
"type": "integer",
"minimum": 0,
"description": "The number of unique listeners who have played the song."
}
}
},
"firstScrobbleView": {
"type": "object",
"properties": {
"avatar": {
"type": "string",
"format": "uri",
"description": "The avatar URL of the user who first scrobbled this song."
},
"handle": {
"type": "string",
"description": "The handle of the user who first scrobbled this song."
},
"timestamp": {
"type": "string",
"format": "datetime",
"description": "The timestamp of the first scrobble."
}
}
},
"recentListenerView": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier of the listener."
},
"did": {
"type": "string",
"description": "The DID of the listener."
},
"avatar": {
"type": "string",
"format": "uri",
"description": "The URL of the listener's avatar image."
},
"handle": {
"type": "string",
"description": "The handle of the listener."
},
"timestamp": {
"type": "string",
"format": "datetime",
"description": "The timestamp of the listener's most recent scrobble of this song."
},
"displayName": {
"type": "string",
"description": "The display name of the listener."
},
"scrobbleUri": {
"type": "string",
"format": "at-uri",
"description": "The URI of the listener's most recent scrobble of this song."
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}