← MoodRadio

Privacy

Last updated 15 August 2026

In short

MoodRadio is a personal project. It reads your YouTube library to learn what you listen to, and sends the mood text you type to an AI model so it can pick music. Your taste profile never leaves your browser. The mood text and the emotion detected from it are saved so you can see your own history.

Signing in

Sign-in uses Google via Firebase Authentication. From your Google account MoodRadio receives your email address, display name, profile photo URL, and a Google user id. This is used only to identify your session and attach your mood history to you.

YouTube access

MoodRadio requests the youtube.readonly scope. It is read-only: nothing is ever posted, liked, subscribed to, or changed on your YouTube account.

It reads your liked videos, your playlists, and your subscriptions to work out which artists, genres and languages you actually listen to. Only videos in YouTube’s Music category are kept.

The resulting taste profile is stored in your browser’s localStorage and is not sent to any server or database. A summary of it (genres, artist names, languages) is included in the request to the AI model so suggestions match your taste.

Stored in your browser only

These never leave your device except as described above:

  • moodradio_music_profile — your taste profile
  • moodradio_taste_feedback — artists you liked or skipped in the app, and recently played tracks
  • moodradio_google_token and moodradio_google_token_expiry — your Google access token, so YouTube can be read without asking you to sign in repeatedly

Clearing site data in your browser removes all of it permanently.

Stored on a server

Mood history is saved to a hosted Postgres database (Supabase), in a table called mood_entries. Each row holds the text you typed, the emotion detected from it, its intensity, the search terms generated, and a timestamp. This is what the History and Insights pages read.

AI processing

The mood text you type is sent to Google’s Gemini model through a self-hosted proxy, together with the taste summary described above, in order to detect an emotion and choose search terms. Do not type anything into MoodRadio that you would not want processed by a third-party AI service.

Sharing a mood

If you use the share button on a mood, that single entry is given a public id and becomes readable by anyone who has the link, without signing in. Nothing is shared unless you press share.

Playback and embeds

Music plays through YouTube’s embedded player. YouTube receives the usual information it collects when you watch a video, governed by Google’s own privacy policy rather than this one. MoodRadio does not host or store any audio.

Limited use

MoodRadio’s use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. YouTube data is used only to personalise music suggestions for you. It is never sold, never used for advertising, and never transferred to anyone else.

What is not done

  • No analytics, tracking pixels, or advertising
  • No selling or sharing of personal data
  • No writes to your YouTube or Google account
  • No email beyond what Google provides at sign-in

Removing your data

Revoke MoodRadio’s access to your Google account at myaccount.google.com/permissions. Clear site data in your browser to erase everything held locally.

There is no self-serve delete for stored mood history yet. To have it removed, open an issue on the GitHub repository and it will be deleted.

Changes

This policy may change as the app does. The date at the top reflects the latest revision, and the full history is public in the repository.