rin.kagamine
119b75fbcd
feat: MP3 download/export capability
Backend:
- New endpoint: GET /api/clips/{id}/download
- Returns MP3 with Content-Disposition: attachment header
- Filename derived from clip title (sanitized) or prompt, falls back to clip ID
- Sanitization: alphanumeric + spaces/hyphens/underscores only, max 60 chars
- Uses FastAPI FileResponse with media_type=audio/mpeg
Frontend:
- Gallery ribbons: Download button (downward arrow icon) next to delete button
- Uses window.open() to trigger browser download
- Hover: lyria-accent color
- Gallery tiles: Download button in tile footer action row
- Small icon (w-3 h-3), same hover behavior
- DetailPanel: Full-width 'Download MP3' button above Delete Track
- lyria-accent styled, with download icon
- Uses <a href> with download attribute for native browser handling
Architecture KB updated with Export/Download section.
2026-05-29 21:32:41 -04:00
..
2026-05-29 21:32:41 -04:00
2026-05-26 18:18:55 -04:00
2026-05-26 18:18:55 -04:00
2026-05-26 18:18:55 -04:00
2026-05-26 18:18:55 -04:00
2026-05-26 18:18:55 -04:00
2026-05-29 20:50:36 -04:00
2026-05-26 18:18:55 -04:00
2026-05-26 18:18:55 -04:00
2026-05-29 16:59:28 -04:00