Backend:
- Added artist, album, comment columns to clips DB (migration in init_db)
- New update_metadata() function in database.py
- New PATCH /api/clips/{id}/metadata endpoint
- Updated download endpoint to write ID3 tags using mutagen:
* TIT2 (Title) — from clip title
* TPE1 (Artist) — from clip artist
* TALB (Album) — from clip album
* COMM (Comment) — from clip comment
* TBPM (BPM) — from detected BPM
* TKEY (Key) — from detected key
* TIT1 (Content Group) — prompt for reference
- Added mutagen==1.47.0 to requirements.txt
- Creates temporary copy with tags, original file untouched
Frontend:
- Clip interface updated with artist, album, comment fields
- New MetadataField component in DetailPanel:
* Inline editing with click-to-edit
* Input field with lyria-accent border
* Enter to save, Escape to cancel, blur to save
* Pencil icon on hover
* Shows placeholder when empty
- App.tsx: handleUpdateMetadata() function, passed to DetailPanel
- Updates state across clips, currentClip, selectedClip
Architecture KB and Tasks KB updated.
13 lines
221 B
Plaintext
13 lines
221 B
Plaintext
fastapi==0.115.0
|
|
uvicorn[standard]==0.32.0
|
|
httpx==0.27.0
|
|
aiosqlite==0.20.0
|
|
pydantic>=2.10.0
|
|
python-multipart==0.0.12
|
|
python-dotenv==1.0.0
|
|
numpy==2.2.0
|
|
librosa==0.10.2
|
|
soundfile==0.12.1
|
|
google-genai==1.0.0
|
|
mutagen==1.47.0
|