Alexander Whitestone
|
722f2c7206
|
feat: add content pipeline — highlights to published episode (#880)
Tests / lint (pull_request) Failing after 32s
Tests / test (pull_request) Has been skipped
Implements end-to-end automated episode compiler:
- src/content/extraction/clipper.py — FFmpeg frame-accurate clip extraction
- src/content/composition/episode.py — MoviePy episode builder (intro, highlights, narration, outro)
- src/content/narration/narrator.py — TTS narration via Kokoro-82M/Piper with fallback chain
- src/content/publishing/youtube.py — YouTube Data API v3 upload with 6/day quota enforcement
- src/content/publishing/nostr.py — Blossom (NIP-B7) upload + NIP-94 metadata event
- src/content/archive/indexer.py — Meilisearch indexing for searchable episode archive
- config.py: 18 new settings for content pipeline (dirs, TTS, YouTube, Nostr, Meilisearch)
All modules degrade gracefully when optional dependencies (ffmpeg, moviepy,
mlx_audio, google-api-python-client, meilisearch) are unavailable.
Adds 90 unit tests across 5 test files — all 647 unit tests pass.
Fixes #880
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-23 22:04:20 -04:00 |
|