at.eptss.trackLink
An assertion that a track plays at a URL, written by anyone, about any track, and never editing the track it is about. There is at least one of these per platform per song, which is exactly why the URL cannot live on the track itself. Prefer a deterministic rkey so re-running an importer upserts instead of piling up.
Details · record, key any
| Kind | record |
|---|---|
| Record key | any |
| Authority | eptss.at |
| Indexed |
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "An assertion that a track plays at a URL, written by anyone, about any track, and never editing the track it is about. There is at least one of these per platform per song, which is exactly why the URL cannot live on the track itself. Prefer a deterministic rkey so re-running an importer upserts instead of piling up.",
"key": "any",
"record": {
"properties": {
"createdAt": {
"format": "datetime",
"type": "string"
},
"service": {
"description": "Base domain the url belongs to — 'open.spotify.com', 'music.apple.com', 'bandcamp.com'. A domain and never an enum: a new service must cost zero schema changes.",
"maxLength": 253,
"type": "string"
},
"track": {
"description": "The at.eptss.track this link locates.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"url": {
"description": "Raw, exactly as encountered — query string and all. Stripping is a guess, and a guess in a record is permanent; normalize in the index, which is the only part that can be re-run.",
"format": "uri",
"type": "string"
}
},
"required": [
"track",
"url",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"id": "at.eptss.trackLink",
"lexicon": 1
}