Replace Spotify API with screenshot taste workflow and example profile.

Remove spotify integration; add TASTE-FROM-SCREENSHOTS guide; ship Ozan settings.json and taste_seeds.json as Cursor examples plus new wandering dervish track.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-07 14:47:47 +01:00
parent 6843ecd6b0
commit 02ea026851
21 changed files with 294 additions and 210 deletions
+10 -9
View File
@@ -1,6 +1,6 @@
---
name: ozan-radio
description: Operate Live Ozan Radio — DeepSeek DJ plans tracks, Google Lyria 3 generates them, Spotify supplies taste. Use when the user wants to start the radio, generate a track, skip, or tune the station.
description: Operate Live Ozan Radio — DeepSeek DJ, Lyria 3, taste from settings.json and taste_seeds.json. Use for start/generate/skip, or updating taste from Spotify screenshots (no API).
---
# Live Ozan Radio
@@ -8,12 +8,17 @@ description: Operate Live Ozan Radio — DeepSeek DJ plans tracks, Google Lyria
## When to use
- User says "ozan radio", "live radio", "generate a track", "what's playing"
- User sends **Spotify screenshots** — update `settings.json` + `taste_seeds.json` (see `docs/TASTE-FROM-SCREENSHOTS.md`)
- Operating or debugging `tinqs/live-radio`
## Taste from screenshots
**No Spotify API.** Read `docs/TASTE-FROM-SCREENSHOTS.md` for the copy-paste Cursor prompt. Infer genres/mood/instruments from Home, Library, Daily Mixes; write both JSON files; never suggest playing Spotify URLs.
## Prerequisites
- `GEMINI_API_KEY` and `DEEPSEEK_API_KEY` in `.env`
- Server running: `python -m ozan_radio serve` (port 8787)
- Server: `python -m ozan_radio serve` (port 8787)
## Operations
@@ -22,18 +27,14 @@ description: Operate Live Ozan Radio — DeepSeek DJ plans tracks, Google Lyria
| Start station | `python -m ozan_radio serve` |
| Generate track | `POST http://127.0.0.1:8787/api/generate` |
| Now playing | `GET http://127.0.0.1:8787/api/now` |
| Skip | `POST http://127.0.0.1:8787/api/skip` |
| Skip / shuffle | `POST http://127.0.0.1:8787/api/skip` |
| One-shot CLI | `python -m ozan_radio generate` |
## DJ behavior
DeepSeek reads Spotify taste (if configured), avoids recent titles, outputs a Lyria prompt. Do not suggest playing Spotify URLs — generation only.
DeepSeek reads `settings.json` + `taste_seeds.json`, avoids recent titles, outputs Lyria prompts. Generation only — no catalog playback.
## Models
- Lyria: `lyria-3-pro-preview` (songs) or `lyria-3-clip-preview` (30s)
- DeepSeek: `deepseek-chat` via Tinqs inference proxy by default
## Mac live layer
Magenta RealTime 2 (`pip install "magenta-rt[mlx]"`) for real-time beds — see README.
- DeepSeek: `deepseek-chat` via Tinqs inference or `https://api.deepseek.com/v1`