TrackBinding
One provider's copy of a record, with whatever the station holds of it.
PER BINDING and never per track, which is the rule the whole page is built on: one canonical record may bind to several copies inside one provider, those copies are different files with different loudness and different cue points, and the one that airs is the one that was resolved. Collapsing them would make "clear the audio" ambiguous about which file it took.
The failure columns are here rather than hidden because that is the question this page exists to answer. A row with
attemptsand nofetchedAtis a remembered failure, andlastErrorwithnextAttemptAtis the whole of why a perfectly good-looking record will not play.
Attributes (15)
| Attribute | Type | Required | Description |
|---|---|---|---|
sourceId | string | Yes | track_sources.id, which is also what the audio URL carries. read-only |
pluginId | string | Yes | read-only |
externalId | string | Yes | read-only |
playable | boolean | Yes | False when the provider still knows the record but will not serve it here. read-only |
missingAt | string | No | When the station gave up on this copy. Cleared by the next sync that sees it again. read-only |
origin | string | Yes | sync if a playlist walk saw it, discovered if something looked it up. read-only |
bitrate | number | No | read-only |
format | string | No | read-only |
lastSeenAt | string | No | read-only |
byteSize | number | No | What the station holds of this copy, absent when nothing has ever fetched it.. read-only |
fetchedAt | string | No | read-only |
lastServedAt | string | No | read-only |
attempts | number | Yes | CONSECUTIVE failures. Reset by a fetch that works. read-only |
lastError | string | No | read-only |
nextAttemptAt | string | No | read-only |