podmunge-ii API All routes below require authentication: either an `Authorization: Bearer ` header, or, for the feed/media routes (consumed directly by podcast clients that can't send custom headers), a `?token=` query parameter. Create a token with `podmunge-ii tokens create `. Feeds GET /api/feeds List feeds POST /api/feeds Add a feed (enqueues a fetch) GET /api/feeds/{id} Feed detail PATCH /api/feeds/{id} Update backlog_limit (re-fetches to backfill) DELETE /api/feeds/{id} Remove a feed POST /api/feeds/{id}/fetch Manually re-check a feed now GET /api/feeds/{id}/episodes List a feed's episodes Episodes GET /api/episodes/{id} Episode detail POST /api/episodes/{id}/dedupe Manually re-trigger cutting GET /api/episodes/{id}/chunks Inspect an episode's audio chunk fingerprints GET /api/episodes/{id}/runs List detected duplicate-segment runs Runs GET /api/runs/{id} Run detail, with cross-episode correlations PATCH /api/runs/{id} Set a run's decision (pending/keep/drop) Jobs GET /api/jobs List background jobs (filter by status/job_type) GET /api/jobs/{id} Job detail POST /api/jobs/{id}/cancel Cancel a pending/in-progress job POST /api/jobs/{id}/retry Retry a failed job POST /api/jobs/retry-failed Retry every currently-failed job Media & feeds GET /media/{episode_id} Episode audio: deduped if available, else raw (range-aware) GET /media/{episode_id}/raw Always the original, undeduped audio GET /feeds/{id}/rss Modified RSS feed with enclosures rewritten to /media API docs (Scalar): /docs OpenAPI spec: /api-docs/openapi.json