Files
live-radio/.cursor/skills/ozan-radio/SKILL.md
T
ozan 02ea026851 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>
2026-06-07 14:47:47 +01:00

41 lines
1.5 KiB
Markdown

---
name: ozan-radio
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
## 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: `python -m ozan_radio serve` (port 8787)
## Operations
| Intent | Action |
|--------|--------|
| 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 / shuffle | `POST http://127.0.0.1:8787/api/skip` |
| One-shot CLI | `python -m ozan_radio generate` |
## DJ behavior
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 or `https://api.deepseek.com/v1`