Adds GET /stories/{id}/listen: one <audio> element over a story's
stitched audiobook file plus a clickable chapter list. Clicking a
chapter seeks; the chapter under the playhead highlights as it
plays. Chapter offsets are summed from each chapter's latest
succeeded narration_run duration — the same order the file was
stitched. One small inline script, the web UI's first JS.
New stories.audiobook_path column (migration 0009) holds the
served path; the story page shows a "listen" action when set.
|
||
|---|---|---|
| .. | ||
| 0001_init.sql | ||
| 0002_voices_and_pronunciation.sql | ||
| 0003_narration_findings.sql | ||
| 0004_authors.sql | ||
| 0005_chapter_body_md_tts.sql | ||
| 0006_generation_runs_narrate_prep.sql | ||
| 0007_characters_voice.sql | ||
| 0008_chapter_rewrite.sql | ||
| 0009_story_audiobook.sql | ||