Files
live-radio/docs/TASTE-FROM-SCREENSHOTS.md
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

3.3 KiB
Raw Permalink Blame History

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 515 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:

{
  "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 Full DJ direction — genres, mood, instruments, tempo, references, avoid
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.