Spotify Developer Mode

OAuth path and fallback status.

Spotify can enhance MULOME when connected. If setup is missing or the token is absent, the app keeps using mocked music signals.

Env setup

Ready

Spotify

Auth status

Not connected

Spotify

Profile mode

Mock Spotify taste data

Spotify

Connection actions

Connect Spotify

Provider tokens are AES-256-GCM encrypted in server-only database storage. Refresh tokens are never sent to browser components.

Available scopes

user-read-emailuser-read-privateuser-top-readuser-read-recently-playedplaylist-read-private

Mocked profile status

{
  "mode": "mocked",
  "profile": null,
  "topArtists": [
    {
      "id": "mock-kavinsky",
      "name": "Kavinsky",
      "genres": [
        "synthwave",
        "cinematic"
      ]
    },
    {
      "id": "mock-yoko",
      "name": "Yoko Kanno",
      "genres": [
        "anime",
        "soundtrack"
      ]
    },
    {
      "id": "mock-ludwig",
      "name": "Ludwig Goransson",
      "genres": [
        "score",
        "cinematic"
      ]
    }
  ],
  "topTracks": [
    {
      "id": "mock-nightcall",
      "name": "Nightcall",
      "artist": "Kavinsky"
    },
    {
      "id": "mock-tank",
      "name": "Tank!",
      "artist": "Seatbelts"
    },
    {
      "id": "mock-score",
      "name": "Rainy Night Score",
      "artist": "MULOME Mix"
    }
  ],
  "recentlyPlayed": [
    {
      "id": "mock-club",
      "name": "Club Action Pulse",
      "artist": "MULOME Mix"
    },
    {
      "id": "mock-anime",
      "name": "Training Arc Theme",
      "artist": "MULOME Mix"
    },
    {
      "id": "mock-ambient",
      "name": "Dark Room Ambient",
      "artist": "MULOME Mix"
    }
  ],
  "genres": [
    "soundtrack",
    "synthwave",
    "anime rock",
    "dark ambient"
  ],
  "listeningMoods": [
    "dark",
    "cinematic",
    "energetic",
    "nostalgic"
  ],
  "contentSignals": [
    "Prioritize crime, mystery, and shadowy character drama.",
    "Surface movies and shows with strong score identity.",
    "Boost action titles, anime battles, and fast pacing.",
    "Include retro mysteries and synth-driven stories."
  ]
}

Mock search response

[
  {
    "id": "spotify-john-wick-club",
    "source": "spotify",
    "title": "John Wick: Club Mix",
    "type": "playlist",
    "platform": "Spotify",
    "description": "Electronic and club tracks inspired by neon action scenes."
  },
  {
    "id": "spotify-atmospheric-score-radio",
    "source": "spotify",
    "title": "Atmospheric Score Radio",
    "type": "playlist",
    "platform": "Spotify",
    "description": "Cinematic tracks for dark drama, sci-fi, and focus sessions."
  }
]

Next hardening steps

Monitor encrypted credential access and key rotation.
Exercise refresh rotation and expiry recovery against the live provider.
Add a durable OAuth consent and disconnect audit trail.
Request the smallest set of scopes needed for each feature.
Add account unlinking, audit logs, and data deletion controls.
Normalize Spotify taste data into MULOME Taste DNA.