Files
ALwrity/docs-site/docs/features/podcast-maker/api-reference.md
ajaysi e14ab7f931 Merge branch 'pr-525'
# Conflicts:
#	docs-site/docs/features/podcast-maker/api-reference.md
#	docs-site/docs/features/podcast-maker/implementation-overview.md
2026-05-23 13:35:24 +05:30

121 lines
2.8 KiB
Markdown

# Podcast Maker API Reference
Base prefix: `/api/podcast`
This page summarizes the Podcast Maker endpoints currently represented in frontend and backend code.
## Endpoint Map
```mermaid
flowchart TD
A[/api/podcast]
A --> P[projects.py]
A --> AN[analysis.py]
A --> R[research.py]
A --> S[script.py]
A --> AU[audio.py]
A --> V[video.py]
A --> I[images.py]
A --> AV[avatar.py]
A --> D[dubbing.py]
P --> P1[Create project]
P --> P2[List project history]
AN --> AN1[Run episode analysis]
R --> R1[Generate/select queries]
S --> S1[Create/update script]
AU --> AU1[Render audio]
V --> V1[Render video]
I --> I1[Generate supporting images]
AV --> AV1[Configure presenter avatar]
D --> D1[Voice dubbing / localization]
```
## Endpoints by workflow stage
### Analysis and idea shaping
- `POST /idea/enhance`
- `POST /analyze`
- `POST /regenerate-queries`
### Research
- `POST /research/exa`
### Scripting
- `POST /script`
- `POST /script/approve`
### Audio
- `POST /audio/upload`
- `POST /audio`
- `POST /combine-audio`
- `GET /audio/{filename}`
### Images
- `POST /image`
- `GET /images/{path}`
### Video
- `POST /render/video`
- `POST /render/combine-videos`
- `GET /videos`
- `GET /videos/{filename}`
- `GET /final-videos/{filename}`
### Avatars
- `POST /avatar/upload`
- `POST /avatar/make-presentable`
- `POST /avatar/generate`
### Projects
- `POST /projects`
- `GET /projects`
- `GET /projects/{project_id}`
- `PUT /projects/{project_id}`
- `DELETE /projects/{project_id}`
- `POST /projects/{project_id}/favorite`
### Dubbing (backend available)
- `POST /dub/audio`
- `GET /dub/{task_id}/result`
- `GET /dub/audio/{filename}`
- `POST /dub/estimate`
- `GET /dub/languages`
- `GET /dub/voices`
- `POST /dub/voices/clone`
- `GET /dub/voices/{task_id}/result`
- `GET /dub/voices/audio/{filename}`
## Implementation details
### Endpoint usage in frontend service
The current `podcastApi.ts` directly calls these podcast routes for analysis, research, script, audio, image, video, avatar, and project workflows.
Known gap:
- `cancelTask()` is a placeholder that posts to `/api/story/task/{taskId}/cancel` rather than a dedicated podcast route.
### Request/response model notes
At a high level:
- Script endpoints exchange `idea`, `duration_minutes`, `speakers`, and optional `research`/`analysis`/`bible` context.
- Audio endpoints exchange scene identifiers, text, and voice/rendering options.
- Video endpoints exchange scene identifiers plus `audio_url` and optional image/prompt context.
- Project endpoints exchange project-level state payloads suitable for restoring workflow progress.
## Engineering references
- `docs/Podcast_maker/AI_PODCAST_BACKEND_REFERENCE.md`
- `docs/Podcast_maker/PODCAST_PERSISTENCE_IMPLEMENTATION.md`