02ea026851
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>
97 lines
3.3 KiB
Markdown
97 lines
3.3 KiB
Markdown
# Taste from Spotify screenshots (no API keys)
|
||
|
||
Live Ozan Radio does **not** connect to Spotify. Every track is generated fresh — we never play catalog music.
|
||
|
||
Your taste lives in two files the DJ reads on every generate:
|
||
|
||
| File | Purpose |
|
||
|------|---------|
|
||
| `settings.json` | Broad profile — genres, mood, instruments, tempo, references, avoid |
|
||
| `taste_seeds.json` | Concrete anchors — artists, playlists, albums, track vibes |
|
||
|
||
**Easiest setup:** open this repo in **Cursor** (or Claude Code), paste Spotify screenshots, and ask the agent to update those two files.
|
||
|
||
---
|
||
|
||
## What to screenshot
|
||
|
||
Capture anything that shows your real listening — the more context, the better:
|
||
|
||
1. **Spotify Home** — Daily Mixes, Jump back in, Made For you
|
||
2. **Your Library** — playlists, artists, albums (scroll if needed)
|
||
3. **Liked Songs** or a playlist you actually use
|
||
4. **Now Playing** — optional, shows current mood
|
||
|
||
Two or three screenshots usually enough. PNG from desktop app or phone both work.
|
||
|
||
---
|
||
|
||
## Cursor prompt (copy-paste)
|
||
|
||
Attach your screenshots to the chat, then paste:
|
||
|
||
```
|
||
I'm setting up Live Ozan Radio (this repo). No Spotify API — taste only.
|
||
|
||
Look at my Spotify screenshots and update:
|
||
1. settings.json → taste section (summary, genres, mood, instruments, tempo_bpm, references, avoid)
|
||
2. taste_seeds.json → genres, artists, playlists, and 5–15 track/album seeds with short "vibe" lines
|
||
|
||
Rules:
|
||
- Infer crossover taste the DJ can compose toward — not a copy of any one artist
|
||
- settings.json = creative direction for Lyria; taste_seeds.json = concrete reference anchors
|
||
- Never suggest playing Spotify URLs — generation only
|
||
- Keep listener name as me unless I say otherwise
|
||
- Show me a short summary of what you inferred before writing files
|
||
```
|
||
|
||
The agent edits the JSON files. Restart the server (or just generate — settings reload every request).
|
||
|
||
---
|
||
|
||
## Claude Code / pi / other agents
|
||
|
||
Same flow: clone repo, add screenshots, use the prompt above. Entry point: `AGENTS.md` and `.cursor/skills/ozan-radio/SKILL.md`.
|
||
|
||
---
|
||
|
||
## Manual edit (no AI)
|
||
|
||
Edit `settings.json` and `taste_seeds.json` by hand. See `taste_seeds.json` for the track object shape:
|
||
|
||
```json
|
||
{
|
||
"title": "Garip",
|
||
"artists": ["Altın Gün"],
|
||
"album": "Garip",
|
||
"vibe": "Anadolu psych-folk, bağlama, fuzzy warmth, hypnotic groove"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Friends / group taste
|
||
|
||
For a shared WhatsApp vibe (everyone's links and references), paste the **chat excerpt + screenshots** into Cursor:
|
||
|
||
```
|
||
Our friend group shares this taste (chat + screenshots attached).
|
||
Update settings.json for a crossover station everyone would enjoy on repeat.
|
||
Bias: [e.g. Anadolu psych, Soap&Skin ether, Mercan Dede, dubtronica]
|
||
```
|
||
|
||
Commit `settings.json` + `taste_seeds.json` if you want the profile in git. Keep `.env` private (API keys only).
|
||
|
||
---
|
||
|
||
## Example profile (checked in)
|
||
|
||
The repo ships **Ozan's** profile as a reference — do not need to match it; replace with your own.
|
||
|
||
| File | What it shows |
|
||
|------|----------------|
|
||
| [`settings.json`](../settings.json) | Full DJ direction — genres, mood, instruments, tempo, references, avoid |
|
||
| [`taste_seeds.json`](../taste_seeds.json) | Concrete anchors — artists, playlists, albums, track vibes |
|
||
|
||
Built from Spotify screenshots: Altın Gün, Baaba Maal, Thievery Corporation, islandman, Blanco White, ethnic chill, dubtronica, Anadolu psych.
|