0.2.57 (2026-05-22)

  • Added Voxhelm speaker diarization configuration via CAST_VOXHELM_DIARIZATION_ENABLED and the site-level Wagtail Voxhelm settings. The default remains disabled and the Voxhelm diarization job payload is only sent when explicitly enabled. Enable it only when the Voxhelm backend has diarization configured; full-episode diarization can be slow and should run through the transcript worker. Diarized jobs use a distinct task_ref suffix so they do not reuse earlier non-diarized Voxhelm jobs.

  • Added podcast episode contributors with contributor snippets, ordered host/guest assignments, episode-page context, and item-level podcast:person feed output. The uniqueness constraint on episode contributors covers (episode, contributor, role), so the same person may be credited as both host and guest on one episode.

  • Contributor avatars are rendered through a fill-80x80|format-webp rendition on episode pages and in podcast:person feed items, and the rendition URL is precomputed in the post repository so detail and feed rendering remain query-free, including mixed post/episode querysets.

  • Added a top-level Wagtail admin menu item for contributors.

  • The episode contributor link field in the Wagtail admin now updates per contributor assignment and only offers links belonging to the selected contributor.

  • Added Wagtail transcript editing support for mapping diarization speaker labels such as Speaker 1 to an episode contributor. The admin workflow rewrites Podlove and DOTe transcript speaker fields while leaving WebVTT unchanged.

  • Transcript speaker mapping now uses draft episode contributor assignments, so editors can map speakers before publishing an unfinished episode.

  • The Podlove player API (/api/audios/podlove/<id>/) now includes a top-level contributors list derived from non-blank transcript speaker and voice labels in first-appearance order. Podlove Web Player resolves transcript segment speakers against these contributor entries and renders their names. The existing transcripts payload is unchanged and the Podlove transcript file is read once per response.

  • Fixed the Wagtail page action menu styling for transcript generation while keeping transcript status and edit links visible to editors.

  • Full page Post.serve() calls and Wagtail previews now expose render_detail=True to templates by default. Callers can still pass render_detail=False explicitly for overview-style rendering.

  • Feed repository construction now primes lastBuildDate from the newest visible post in the feed queryset instead of relying on queryset iteration order.

  • Custom themes that override episode body templates should render episode_contributors or include cast/contributors.html to show public episode credits.