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.
|