space.remanso.recording

An audio recording — a past stream, a podcast episode, a voice note. A recording at rkey R is the recording of the space.remanso.note at rkey R in the same repo: one note, at most one recording, paired by convention rather than by a field, so a reader that knows the note's did and rkey reaches the audio with a single getRecord. A recording whose rkey matches no note stands alone and belongs to nobody. Legacy path: a recording is also referenced from a note by at-uri embedded in the note's content.

Repository @apoena.dev did:plc:4m3kouplb7s7xozjd3whinvl namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authorityremanso.space
Indexed

Record

record · key tid

Properties

audio

requiredblob

The recording itself. video/mp4 and video/webm are accepted alongside audio/* because a PDS sniffs the container rather than trusting the upload's Content-Type: an audio-only MP4 or M4A sniffs as video/mp4, and a sniffer that reads no further than the EBML magic calls an audio-only WebM video/webm.

  • maxSize: 50000000
  • accept: audio/*, video/mp4, video/webm

createdAt

requiredstring · datetime

credits

array

Attribution for openly licensed music mixed into the recording. Only licences that require it are listed — a CC0 track is deliberately absent, because CC0 asks for nothing and an entry here would imply otherwise.

  • maxLength: 64
itemsref
Reference

Playback length in seconds.

language

string

The language spoken in the recording. ISO 639-3, the same code space as space.remanso.note's `language`, so a note and its recording agree on how a language is spelled. A recording whose speech was never identified simply omits this.

  • maxLength: 10
  • knownValues: afr | ara | aze | bel | ben | bul | cat | ces | ckb | cmn | dan | deu | ell | eng | est | eus | fin | fra | hau | heb | hin | hrv | hun | hye | ind | isl | ita | jpn | kat | kaz | kor | lit | mar | mkd | nld | nob | pes | pol | por | ron | run | rus | slk | spa | srp | swe | tgl | tur | ukr | vie

recordedAt

string · datetime

When the audio was originally captured — a past stream's air date, not the upload time.

title

string
  • maxLength: 1000
Reference

#credit

object

One openly licensed work used in the recording, and where its terms live.

Properties

creator

requiredstring
  • maxLength: 1000

license

requiredstring

The licence's short id, e.g. "by".

  • maxLength: 64

licenseUrl

requiredstring · uri

sourceUrl

requiredstring · uri

The work's landing page at its provider.

title

requiredstring
  • maxLength: 1000

#transcript

object

What was said, as text. A recording is published before anything has transcribed it, so audio with no transcript is the normal starting state rather than an incomplete record — which is why this is optional and written by a later putRecord. `text` is the whole transcript in reading order and is always present; `segments` is that same text cut into timestamped spans. The two never disagree: a client renders either one without reconciling them, and a writer that edits one rewrites both.

Properties

createdAt

requiredstring · datetime

When this transcript was written, which is later than the recording's own createdAt, and is bumped on every correction.

The transcript cut into timestamped spans, one paragraph each — the granularity a reader scans and seeks by, not the two-second slivers a speech model emits. Absent when the audio yielded no usable timestamps, which happens on very short clips.

  • maxLength: 4096
itemsref
Reference

text

requiredstring

The transcript in reading order, paragraphs separated by a blank line. Equal to `segments` joined the same way, when segments are present.

  • maxLength: 100000

#transcriptSegment

object

One timestamped span of the transcript. Offsets are milliseconds from the start of the audio: the lexicon data model has no float, and rounding to whole seconds would land a seek target after the words the timestamp labels.

Properties

endMs

requiredinteger

Offset from the start of the audio, in milliseconds. Never before `startMs`.

  • minimum: 0

startMs

requiredinteger

Offset from the start of the audio, in milliseconds.

  • minimum: 0

text

requiredstring
  • maxLength: 10000

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.