WORK-019
ID:WORK-019Status:done

Build audio Rune

Priority:mediumComplexity:unknownSource:SPEC-008
Branches 3
History 5
  1. f2b3512
    Content editedby Claude
    Add {ID}-{slug}.md filename convention + migrate filenames subcommand
  2. f262d7b
    Content editedby Claude
  3. ebe0c64
    Content editedby Claude
    Migrate plan files to {% ref %} xref syntax (WORK-021)
  4. 7902f75
    statuspendingdone
    by Claude
  5. d275b2a
    Created (pending)by Claude
    Add work items for 16 unbuilt runes from SPEC-008

Summary

Self-hosted audio player with waveform visualization, chapters, and transcript. For podcasts, music, audiobooks, and sound design hosted on your own server. Schema.org: AudioObject.

Attributes

NameTypeDefaultRequiredDescription
srcStringYesAudio file URL
titleStringNoTrack title
artistStringNoArtist/speaker name
durationStringNoISO 8601 duration
waveformBooleantrueNoShow waveform visualization
chaptersStringNoWebVTT chapters file URL

Content Model

  • Paragraph → description/show notes
  • Ordered list → chapter markers (if no WebVTT file): 1. 00:00 — Introduction
  • Blockquotes → transcript excerpts

Transform Output

  • typeof: Audio
  • Tag: <figure>
  • Properties: src, title, artist (span), duration (span, formatted), waveform, chapters
  • Refs: player (audio element), chapterList (ol), transcript (div), caption (figcaption)

Status

Already implemented. Full schema, config, CSS, and tests exist:

  • Schema: runes/media/src/tags/audio.ts (98 lines)
  • Config: runes/media/src/config.ts (Audio)
  • CSS: packages/lumina/styles/runes/audio.css (195 lines)
  • Type: runes/media/src/schema/audio.ts (Audio class)
  • Tests: runes/media/test/audio.test.ts
  • Supports: src, playlist linking, title, artist, waveform, inline chapters, rf-audio web component