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 profilemoodradio_taste_feedback— artists you liked or skipped in the app, and recently played tracksmoodradio_google_tokenandmoodradio_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.