Privacy

Your data, in plain words

The short version: BubbleFacts runs on your computer. It talks to the song list service you connect (StreamerSongList or StreamElements), to a file your music app writes, if you use one, to Wikipedia, Wikidata and MusicBrainz to look songs up, to Hugging Face once to download the built-in AI, to GitHub to check for updates, to Twitch or YouTube only in the cases below, to an online AI only if you choose one, and to another app only if you turn on sharing and enter its address. Nothing is sent to this project.

  • Everything runs on your computer

    The app, the overlay and the built-in AI all run on your own computer. There's no BubbleFacts account and no BubbleFacts server.

  • Your settings stay on your computer

    Your settings are saved in the app's folder on your computer, along with the facts you add for particular songs, the sources you've marked Wrong, the facts your current stream has shown (so a restart doesn't repeat them), a list of the last 500 facts shown on your overlay, so a report can say exactly which fact it means, the songs played on your stream (never who requested them), and, if you use Prepare my songs, the facts prepared for them. They stay on your computer. A backup you make with Back up… holds your settings and facts, never your sign-in, your keys or which AI you use, and goes only where you save it. Your StreamerSongList sign-in (or token), your StreamElements JWT token, your Twitch connection if you made one, and any API keys are encrypted using your system's keychain, the same secure storage your computer uses for its own passwords. On Linux that needs a keyring such as GNOME Keyring or KWallet; without one, they're saved without real encryption, and the app warns you.

  • StreamerSongList

    The app reads your request queue and your song list from StreamerSongList, using your sign-in (or your token, if you use one), so it knows which song you're playing, how your list writes songs and, with Prepare my songs, which songs to prepare. Now and then it also asks StreamerSongList whether your sign-in still works, so it can tell you when it doesn't. You sign in on StreamerSongList's own website, in your web browser, so BubbleFacts never sees your Twitch password.

  • StreamElements

    If you use StreamElements instead, the app uses your JWT token and channel name to ask StreamElements which song request is playing, and to get told when it changes. You copy the token from your StreamElements dashboard yourself.

  • A now playing file

    If you follow a now playing file (Streamling, Nightbot's desktop app, or another app's), BubbleFacts only reads that file on your computer. Nothing is sent to anyone to do that. The song it holds is then looked up like any other (next).

  • Wikipedia, Wikidata and MusicBrainz

    Song titles, and the artist or game name, are sent to Wikipedia to look up articles about the song, and to Wikidata and MusicBrainz, two public music databases, for plain facts such as the year and the album. For a classical piece, the composer, catalog number or nickname from the title also go to Wikidata, to find the piece. Like any website, they see your computer's internet address. Nothing else about you or your stream is sent. With Prepare my songs on, this includes songs on your list you haven't played yet. A note in a song's title or artist naming who commissioned or requested it is left out of every lookup: that viewer's name is never searched, sent to an AI or written to the log.

  • Twitch (only if you connect it)

    If you click Connect Twitch, Twitch's own site opens with a short code filled in. You check it matches the one in BubbleFacts and click Authorize. BubbleFacts asks for no permissions and never sees your Twitch password. When you click Fill from their Twitch About, BubbleFacts asks Twitch for that one channel's public About text. While connected, with Check Twitch for artists no source knows checked, it does the same on its own for a song no source knows: it sends Twitch the artist's name to read that channel's public About. Nothing about you or your viewers is read. Disconnect ends the connection on Twitch too.

  • YouTube (StreamElements only)

    StreamElements song requests are YouTube videos. Some are uploads YouTube makes automatically (their channel names end in "- Topic"). For those only, when your copy of the app has a YouTube key built in, it sends the video ID to Google's YouTube Data API to read the exact artist and song. Nothing else about you or your stream is sent. Google's privacy policy applies. Otherwise, the app only reads the video's title.

  • The AI

    With the built-in AI, the default, captions are written on your computer. The AI model is downloaded once, from Hugging Face, a site that hosts AI models. After that, nothing is sent anywhere to write captions.

    If you choose an online AI (Groq or Anthropic), only the song title, artist and the Wikipedia article text (sometimes with a few lines from a related article, like its album's) are sent to that service to write the captions. Nothing about you or your channel is. Their own privacy policies apply. If you choose your own Ollama, they go to the Ollama address you set. Prepare my songs never uses an online AI.

  • Sharing song facts (only if you turn it on)

    This is off unless you turn on Share song facts with other apps in Settings and enter the address of an app you choose and your API key for it, which is saved encrypted like your other keys. While it's on, the app sends that address your channel name, the song's title and artist, and that song's facts. It doesn't send who requested the song, or anything else about you or your stream. That app's own privacy policy applies. Turn it off in Settings at any time.

  • Nothing is sent to the project

    No analytics, no tracking, no usage counts. The app does check GitHub for new versions when it starts and after some settings changes, which is how it can tell you an update is out. If you click Update now, it downloads the new version from GitHub, checks it against the release's checksum list, and installs it when you click Install now.

  • Problem reports only happen when you click

    A report is only created when you click Report it (opens GitHub) after marking a fact Wrong, or Report a problem. It opens GitHub in your browser with the report already filled in, so GitHub receives those details when the page opens: things like the song, the fact, the app version, your system, recent log lines and the facts shown recently. Your token is removed. Clicking Wrong on its own sends nothing: BubbleFacts just remembers it on your computer. Copy report sends nothing either: it puts the same report, token removed, on your clipboard, and it goes only where you paste it.

    Nothing is posted until you click Create. If you do, it's posted on GitHub publicly, under your own GitHub account, where anyone can see it. Edit out anything you don't want to share before you submit.

  • This website

    This site has no cookies, analytics or trackers. To show the newest version and its download links, the download buttons ask GitHub's public API about the latest release. GitHub sees that request like any visit to GitHub. Nothing else is loaded from other companies. Like any website, the web host may keep basic server logs, such as IP addresses, for security.

Questions? Ask in #help on the BubbleFacts Discord. The app is open source, so anyone can check what it does on GitHub.