1. Overview
Streamer Online collects what it needs to sign you in, save your tool settings, and make the connected streaming features work. It is not an advertising product. It runs no Google Analytics, Mixpanel, PostHog or similar tracking SDK. Streamer Online and deutschmark.online use Cloudflare Web Analytics, Cloudflare's own page-view measurement, to count visits.
Many features handle data about the people in your chat. Section 2.11 explains what is kept about viewers and for how long.
Operational logs are reviewed when investigating bugs, abuse or security incidents. They are not used for profiling or marketing.
2. Information Collected
2.1 Your account: Twitch, YouTube or guest
You can sign in with Twitch, sign in with YouTube, or look around as a guest. A guest has no account; guest choices stay in your browser. Public games and display rooms can still create the temporary server records described below.
Signing in creates one account with a random internal ID. It stores your Twitch user ID, login, display name, profile image and chat color, and your YouTube channel ID, handle, channel title and channel picture, for whichever of the two you connect. It also stores when the account was created and when you last signed in. You can link the other platform later from Settings → Network Connections.
The same account and session work on Streamer Online, Chat vs. Meteors, Chatnesia, Paint Party and the donate page. These apps ask the sign-in service who you are, and use your account ID, Twitch login and YouTube channel, whichever you have. Chatnesia uses Twitch public identity and requests no additional Twitch permissions when you sign in from that game. It does not replace permissions you already granted to Streamer Online. Chatnesia reads live chat anonymously and does not send messages as you.
2.2 Twitch permissions
Streamer Online requests its core Twitch permissions at sign-in. Some tools request additional permissions through their reconnect button, as marked below. Chatnesia sign-in uses public identity without these additional scopes. Your access and refresh tokens are stored encrypted. Write permissions are used for the controls, enabled commands and event replies you configure; Chat vs. Meteors changes slow mode only when you enable that setting.
user:read:emailPart of the Twitch sign-in request. Streamer Online does not read or store your email address.user:read:broadcastRead the stream markers on your past broadcasts.user:read:chatRead your channel's chat on the server, so chat overlays and chat commands share one connection.moderator:read:followersReceive follow events for the Event List, Stream Recap and the timer.channel:read:subscriptionsReceive sub, resub and gift-sub events.bits:readReceive cheer events.channel:read:redemptionsReceive channel point redemptions for tools that react to them.channel:read:hype_trainShow the Hype Train overlay.channel:read:goalsShow your Twitch goals on the Goal Bar.channel:read:pollsReceive the results of your Twitch polls.channel:read:predictionsReceive the results of your Twitch predictions.moderation:readList your Twitch moderators so you can offer them editor access. It never adds anyone on its own.user:read:followsVideo Shout-Out's raid filter: check whether you follow a channel that raids you.channel:read:adsAd Alerts: read your ad schedule and receive a notice when an ad break starts.channel:manage:adsAd Alerts: snooze the next ad, only when you or an editor press Snooze.channel:edit:commercialAd Alerts: start an ad, only when you press Run ad.user:write:chatSend messages typed in OBS Chat as you. Also send event replies as your broadcaster account when you select that sender in Messages.moderator:manage:chat_settingsChat vs. Meteors: if you enable slow mode, match it to the game's reload time while a game runs and restore the previous setting afterwards, unless a moderator changed it during the game.channel:manage:broadcastOptional Messages reconnect: let enabled title and game commands change your stream title or category.moderator:manage:banned_usersOptional Messages reconnect: let the vanish command time out the person who invokes it.moderator:manage:announcementsOptional Messages reconnect: send announcements from enabled commands.moderator:manage:chat_messagesOptional Messages reconnect: pin a chat message for an enabled pin command.moderator:read:chattersOptional Messages reconnect: read the current chat roster for chatters commands.user:botOptional Messages reconnect: authorize the server's chat-command connection.channel:manage:vipsOptional Game Time reconnect: manage VIP status for that feature.
Signing out ends your session but does not delete the stored tokens. To cut off access, remove Streamer Online under Connections in your Twitch settings, or ask for account deletion.
2.3 YouTube permissions
YouTube sign-in and linking ask Google for one permission, youtube.readonly, with offline access so the connection keeps working. It is used to read your channel's ID, handle, title and picture, find your current live stream, and read its live chat. Your Google tokens are stored encrypted. Use of YouTube data is also covered by the Google Privacy Policy. You can turn YouTube chat off in Settings → Network Connections without unlinking.
OBS Chat can ask for one more permission, youtube.force-ssl, but only when you press Allow sending to YouTube chat on the OBS Chat tool page. Sign-in never asks for it. It is used for one thing: writing to your own live chat from your OBS Chat dock, when a person presses a button there. That means sending the message typed in the dock, and removing a message, timing someone out, banning or unbanning them when Remove, Time out, Ban or Unban is pressed. Nothing is sent or removed on its own, and it is never used on anyone else's channel. It is added to the same Google grant, stored encrypted with the rest.
To stop it, press Turn off under Dock setup on the OBS Chat tool page: Streamer Online stops using it at once, and only pressing Allow again turns it back on. To also remove it at Google, remove Streamer Online at myaccount.google.com/permissions. Google holds both permissions as one grant, so that also stops YouTube chat reading until you link YouTube again. Unlinking YouTube or deleting your account deletes the tokens, this permission included.
To notice when you go live, Streamer Online subscribes to your channel's public video feed through Google's PubSubHubbub hub, which tells it the ID of each new or changed video; unlinking YouTube or deleting your account cancels the subscription.
2.4 Bot account
You can connect a second Twitch account as your bot. It is a separate sign-in with its own permissions. The bot sends Video Shout-Out messages and Twitch shout-outs, and is the account the ForgetMeNot desktop app chats as. If you turn them on, it also posts the Spin Wheel's results, Ad Alerts' messages and Chat vs. Meteors' game announcements. Streamer Online stores the bot's Twitch ID, login and display name, who connected it, and its tokens, encrypted. Disconnecting the bot deletes the record.
chat:read, chat:edit, user:write:chatRead and send chat messages as the bot account.user:botMark the account as a bot to Twitch.user:read:emailPart of the Twitch sign-in request. The email address is not stored.moderator:manage:shoutoutsSend a Twitch shout-out for Video Shout-Out.moderator:manage:banned_users, moderator:manage:chat_messages, moderator:manage:chat_settings, moderator:manage:announcementsModeration commands a bot you run can use: timeouts and bans, deleting a message, chat modes and announcements.moderator:read:chatters, moderator:read:followersSee who is in chat and receive follow events as a moderator.channel:read:redemptions, channel:read:subscriptions, bits:readReact to channel points, subs and cheers.
2.5 Spotify
To connect Spotify, you create your own Spotify Developer App and enter its client ID and client secret. Your Spotify use then runs under your own developer app, not one shared by every user.
Streamer Online stores the client ID and secret and your Spotify tokens, all encrypted, plus your Spotify display name, ID and profile image. The music tools read what is playing, control playback and the queue, like songs and add them to playlists. When a viewer uses !sr, the text they type is sent to Spotify search.
2.6 Tool settings, hosted sources and links
Streamer Online stores the settings for your widgets, scenes and stream tools, and the hosted OBS sources you create. Each source has an opaque random token (a wid). It does not encode your user ID and only opens that one source.
Some settings can name Twitch users: muted users in chat overlays, custom users in Video Shout-Out, and the viewer allow and deny lists for the chat bot. They are kept with your settings.
Control Deck trigger links carry a random secret in the address. Streamer Online stores the secret encrypted and looks it up by a hash. Rotating the link deletes the old one. Music extension tokens are stored with your account only as a SHA-256 hash, last 90 days and can be revoked at any time.
2.7 Editors (moderator access)
You can give up to 10 other Twitch accounts editor access to your tools. Streamer Online stores each editor's Twitch ID and login, when they were added and who added them. Changes made by you or an editor go into an activity log that holds the person's Twitch login, the action and a short summary. It keeps the newest 150 settings changes and 50 live-control entries. Removing an editor ends their access at once.
2.8 Stream data: Stream Recap, Stream Receipt and Ad Alerts
Stream Recap starts collecting once you open it. While you are live it records your stream's title and category history, viewer counts every 10 minutes, follows, subs, cheers, raids, hype trains, polls, predictions and redemptions, and chat counts. It keeps the names of up to 300 chatters with their message counts, gifters, cheerers, up to 30 followers and raiders. It does not keep chat text, only counts and emote names. A finished recap keeps the top 10 chatters, gifters and cheerers, follower names and raids. When chat was tracked, it also keeps the logins and display names of up to 200 chatters with their message counts, and the logins of up to 100 new followers. The Weekly view and the weekly email use these to show who came back across a week's streams; they are deleted with the recap. It also counts chat messages per 10 minutes of the stream (counts only, no names or text), so the Weekly view and the weekly email can show chat per hour by category and the busiest ten minutes of chat.
Stream Receipt is built from the recap when you show it. Its OBS source shows your channel name and a QR code to your channel, and can show the top chatters. It is not stored separately.
Ad Alerts reads your Twitch ad schedule and receives a notice when an ad break starts. Snooze can be pressed by you or an editor. Run ad can only be pressed by you, on the tool page, the dock, a Control Deck button or a trigger link you set up. Nothing happens to your ads without a press. If you turn on its chat messages, your bot account posts them in your chat before an ad, when it starts and when it ends. The message texts are saved with your channel's settings, with the time of the last ad each message went out for, so none posts twice.
Subathon tips. If you connect Ko-fi or Fourthwall to the timer, Streamer Online stores your Ko-fi verification token or Fourthwall signing secret, encrypted, and gives you a private webhook address. For each tip, and each Fourthwall order or gift purchase, it receives the amount, the currency and the name the provider sends ("Anonymous" for a private Ko-fi tip). The name can appear on the timer and in its chat reply. Only the tip's ID is kept, so a tip is never counted twice.
StreamElements tips. If you connect StreamElements in OBS Chat, Streamer Online verifies that its channel matches your linked Twitch account and stores the channel JWT encrypted. While a chat window or source is open, the server subscribes to completed tips. The donor display name, amount and currency appear in the Alerts feed. Tip IDs prevent duplicate notices; payer email, payment method and transaction details are not retained. Disconnecting removes the stored StreamElements credential and closes the tip connection. Account deletion also removes the connection and stored tip IDs. Editors never receive the JWT.
2.9 Weekly Stream Recap email
The weekly recap email is off until you turn it on. You enter an address, and a confirmation link (valid for 24 hours) must be opened before anything else is sent to it. The address is stored encrypted and is not logged. Emails are sent through Resend from [email protected], only for weeks with a stream.
Turning the email off, or using the unsubscribe link in any recap, deletes the address. An address that is not confirmed is deleted when its link expires, 24 hours after it was entered.
2.10 Webhooks and Discord posts
You can add up to 3 webhook addresses, including Discord webhooks. Streamer Online stores the addresses and a signing secret, and posts only the events you choose:
- Poll started and poll closed, with the question, options and vote counts. Voters are not named.
- Giveaway opened, closed and winner drawn, with the winners' names and platform.
- Control Deck button pressed, with the button and its settings.
- Stream Receipt when your stream ends, with your channel name and picture, the recap numbers, the top chatters, the top gifter and cheerer, and raiders.
Once posted, the content is held by the receiver you chose, under its own policies. Streamer Online keeps a log of the last 20 deliveries with only the host, status and event.
2.11 Viewers in your chat
Viewers are not account holders, but many tools handle their data on your behalf. As the streamer, you decide to use these tools in your channel. Chat reaches Streamer Online in two ways: the server reads your Twitch chat with your permission (and your YouTube live chat if YouTube is connected), and overlays can also join your Twitch chat anonymously, without signing in.
Streamer Online passes live chat messages to your overlays without keeping a chat archive. Chatnesia separately saves selected messages as described in section 2.18. To check chat commands, the server holds the last 500 messages (user ID, login, display name, text and badge level) for up to 5 minutes, in memory only. Text-to-speech text is filtered in memory and then spoken by the browser showing the TTS source.
What is kept about viewers:
- Polls and giveaways: each voter's or entrant's ID, choice or tickets, and for giveaways the name shown. Rosters are kept until the next poll or giveaway opens. Winners' names and claim codes are kept for the last 20 rounds, and a past-winners list (up to 1,000) is kept until you clear it.
- The viewer queue: platform, user ID, login, display name and join time, until the entry is removed.
- Chat commands: per-viewer counters and accumulated connected chat time are stored under Twitch user IDs when you enable those features. Recent message and redemption IDs prevent duplicate actions. These records are removed when your account is deleted; redemption receipts expire after five minutes. Connected chat time measures presence in chat while you are live, not whether someone watches the video.
- Spin Wheel: the display name of whoever spun it, with the result and time, for the last 50 spins, until you clear them. Names of recent chatters, for filling a wheel, are held in memory for 30 minutes and never saved.
- Hype Train: the top 10 contributors' logins and names, until the next hype train.
- Stream Recap: chatter, gifter, cheerer, follower and raider names, as described in 2.8.
- The timer: logins of followers already counted in the current run (up to 2,000), until the next run starts.
- Video Shout-Out: the logins of viewers who type !vsooptout, until they type !vsooptin or you remove them.
- Lurk Peek: a viewer's login, display name and profile picture, cached for 24 hours.
- Chat vs. Meteors' all-time leaderboard: for the top 200 players, their platform user ID, display name, chat color and totals (points, meteors broken, mega asteroids, games played, best wave), plus your channel's game count, until you reset it in the tool's settings or your account is deleted. The same details for the current session (one stream's games, up to 100 players), replaced when the next session starts and removed with the leaderboard. See 2.12.
The poll and giveaway join page. Viewers can vote or enter on a web page with no account. Their browser keeps a random device ID, the name they typed and the rounds they joined. The server stores a hash of the device ID and a hash of their IP address combined with your account ID, keyed with a server secret so it can't be reversed by trying addresses. The IP hash caps how many devices can join from one address; it is a pseudonym, not an anonymous value. A giveaway entrant's name can show on stream as soon as they enter.
Data about viewers (chat handles, clips, profile images) comes from Twitch or YouTube and is also governed by their policies. Chatnesia also uses an independent public archive; its local libraries and temporary shared games are described in section 2.18.
2.12 Chat vs. Meteors (formerly Meteor Defense; meteors.deutschmark.online and the Streamer Online tool)
Players need no account; they play by typing in chat. The game page in OBS reads each chatter's user ID, name and chat color from chat. Names, scores, the top defenders and the name of the chatter who starts the next game are shown in the game. The scoreboard for the current session is saved in the OBS browser's local storage, and is cleared once nobody has scored for 3 hours.
The all-time leaderboard, shown at the end of the credits, is kept on the server. When a game ends, the game page sends the server each scoring player's platform user ID, display name, chat color, points, meteors and mega asteroids broken, and the wave the game reached. The server keeps lifetime totals and each player's best wave for the top 200 players by points, and your channel's game count. It also keeps the same totals for the current session (a stream's games), for up to 100 players, shown in the credits and beside the game; a game that ends 3 hours or more after the last one, or the first game after a reset, starts a new session and replaces them. They are removed with the leaderboard. Names that fail the standard profanity filter and known chat bots are left out, and only chatters your settings let play are counted. The game page keeps a copy of the leaderboard, and any games it could not send yet, in its local storage. The leaderboard is kept until you reset it in the game's settings or your account is deleted.
Hosting a game on meteors.deutschmark.online needs sign-in with Twitch or YouTube. The server stores your account ID, Twitch login, YouTube channel ID and title, game settings, the key in your OBS link, the link your OBS page uses to read your YouTube chat (valid for a day) and your all-time leaderboard.
Local co-op (meteors.deutschmark.online/coop and /join) needs no account. A co-op room stores each player's name, seat number, seat token and a hash of their IP address, made with a random value kept only by that room and used to limit joins and to stop a removed player from rejoining. During remote beta, the server relays what players type, the fire-ready words and scores between the phones and the screen. It does not store or log these gameplay messages; the latest words and scores are held only in memory for joining players. Outside remote beta, phones connect directly over the screen's local network. Their connection details pass through the server without storage or logging, while gameplay messages use that direct connection instead. A room and everything in it are deleted 15 minutes after its last screen closes, and 12 hours after it was made at most.
If you turn on chat announcements, your bot account posts a few lines in your Twitch chat during a game: when it starts, when a boss arrives, who brought a boss down and, at the end, the top scorer, with their Twitch name and points. The game page sends the server only what happened (the event, the wave, the points and those players' Twitch names); the server builds the line from your saved text and posts it. So that a game posts each line once and at most eight in all, it keeps a note of which lines recent games posted: a random game ID and the kind of line, no names. Games older than 6 hours are dropped from it when the next line posts, and it is deleted with your account. Nothing is posted while the setting is off or no bot account is connected.
2.13 Paint Party (draw.deutschmark.online)
Hosting a room needs sign-in with Twitch or YouTube. Players join with a room code and a name; no account is needed. A room stores the host's account ID and Twitch login, the link its stage uses to read the host's YouTube chat (valid for a day), each player's name, color, score, seat token and a hash of their IP address, the drawings and their titles, and votes. Twitch and YouTube chat can vote by typing a number; those votes are stored by Twitch user ID or YouTube channel ID and are cleared after each drawing. Chatters are not named on screen. The IP hash uses a random value kept only by that room, and is used to stop a kicked player from rejoining.
Everything about a room is deleted when it ends. A room on autopilot ends 2 hours after its last screen disconnects. A room the host runs ends after 15 quiet minutes, or 2 hours after the host took over. On autopilot, a player who leaves the lobby loses the seat after 2 minutes, and their seat token and IP hash are deleted. Kicking a player deletes their seat but keeps their IP hash and name blocked until the room ends. Drawings are not saved anywhere after a room ends.
2.14 ForgetMeNot desktop app
ForgetMeNot runs on your computer. Streamer Online stores its settings and policy, install records and short-lived pairing codes. Each install's secret is stored only as a SHA-256 hash.
You paste your Gemini key into the ForgetMeNot app on your computer. Streamer Online never receives the key, the prompts or the replies; they go between your computer and Google. Chat that ForgetMeNot reads is processed on your computer, and what it remembers is governed by your local settings.
2.15 Donations and supporter perks
The donate page and the Streamer Online /support page accept one-time gifts and a $6 monthly tier through Stripe Checkout. Stripe collects your card and email on its own page; Streamer Online never sees your card. You can type a name, and if you are signed in with Twitch you can give anonymously.
For every payment Streamer Online stores the amount, the date, the Stripe customer ID, the name you typed and whether it was anonymous. When you are signed in, it also sends your Twitch ID and login to Stripe with the payment, and keeps a supporter record on your account: lifetime total, subscription status, perk dates and your supporter wall choice.
The donate page shows this month's supporters: your name (or anonymous), a link to your Twitch channel and picture if you gave signed in and not anonymously, and the amount. Past months list names only. The supporter wall shows your name, picture and tier only if you opt in, for 30 days after a payment. Stripe processes payment data under Stripe's privacy policy.
2.16 Other deutschmark.online pages
The Gym Floor Planner at deutschmark.online/fit keeps its data in your browser. Its optional sync encrypts your data on your device with a code that never leaves it; the server stores only the encrypted copy and deletes a copy left untouched for 400 days. The downloads and users pages ask GitHub for release download counts, and the users page reads anonymous usage totals from the databases of other deutschmark.online apps. These requests come from your browser.
2.17 Technical data
Cloudflare and the workers process the following to serve the sites, prevent abuse and keep sessions safe:
- Your IP address, used for rate limits and abuse checks. Rate-limit counters are kept in memory or in Cloudflare's rate limiter for windows of about a minute, not in storage.
- User agent, request path, query parameters, response code and time.
- Error and diagnostic log lines from the workers. They name the event and the error (and, for payments, Stripe's event ID), not your account ID, Twitch ID, Stripe customer ID, email address or tokens. They are used only to investigate problems.
- Cookies, described in section 5.
2.18 Chatnesia (chatnesia.deutschmark.online)
Chatnesia makes guessing games from a selected Twitch channel's messages and emotes. It reads live chat anonymously and can load older messages from Best Logs / Spanix (bl.spanix.team), an independent public archive with its own coverage and retention. The data includes message text and IDs, timestamps, Twitch user IDs, logins, display names, chat colors and emote metadata. Activity dates help choose familiar chatters as possible answers; they do not show whether someone watched the stream.
In your browser. A channel library keeps up to 2,000 selected messages, a separate store of up to 2,000 emote events, chatter activity, exclusions, opt-outs and removed-message IDs. Browser storage also holds the current game, votes and results, display-room links and settings. These remain until you clear or replace them; the ordinary library is not uploaded to sync between accounts or devices. Questions, possible authors and voter names can appear on the host's screen and linked OBS display. Saved or shared result cards contain the channel name, game and match scores.
On the server. Public archive responses can be cached for five minutes. The shared daily game stores a channel's question set, selected messages, candidate identities and game metadata until 48 hours after that UTC day began. A display room keeps its latest public presentation and hashed access keys, and expires after two hours without a host state update. Anyone with its display link can read that presentation. Signed-in preferences, such as theme, sound, game timing and voting channel, are stored under your account ID and expire after 180 days without a read or change. Signing out ends the shared session; it does not clear browser libraries or delete those preferences.
Your controls. The host can pause collection, remove a message or person, or clear the local library in Settings. Typing !chatnesia off in a connected channel tells the running game to remove that viewer's local evidence and exclude further collection and votes. !chatnesia on allows future participation again. Observed Twitch message deletions and chat purges also remove affected local evidence and votes. These controls apply to copies that receive the event; they do not erase other browsers, Twitch, the independent archive, downloaded cards or past broadcasts. Daily games recheck source removals and opt-outs on demand, no more often than every five minutes. A verified removal withdraws the set; unavailable upstream checks can delay this. Contact the address in section 8 to request removal of data held by this service. Upstream archive removal needs a separate request to that archive.
Twitch, 7TV, BetterTTV and FrankerFaceZ supply public emote catalogs and images. Direct browser requests disclose the browser's IP address and requested channel or image to those providers. Cloudflare hosts Chatnesia and processes request data as described in sections 2.17 and 4.
3. How Your Information Is Used
- Sign you in with Twitch or YouTube and keep your session active across deutschmark.online.
- Save and load your widget, scene, source, bot, stream and command settings.
- Create, check and delete hosted OBS source tokens and trigger links.
- Run chat-driven overlays, commands, polls, giveaways and games from your Twitch and YouTube chat.
- Build Chatnesia questions from live Twitch chat and the public archive, serve its shared daily games and OBS displays, and sync signed-in preferences.
- Connect Spotify for now-playing, song requests, queue controls and playlists.
- Fetch Twitch clips, videos, markers, goals, the ad schedule and follow checks for the tools that need them.
- Build Stream Recap and Stream Receipt, and send the weekly email and webhook posts you turn on.
- Snooze or start an ad when you or an editor press the button.
- Let editors you add work on your tools, and keep a log of their changes.
- Pair ForgetMeNot and deliver its settings to it.
- Process donations through Stripe and grant supporter badges and perks.
- Protect the service with CSRF checks, CORS allowlists, rate limits, encrypted records and security headers.
- Investigate bugs, abuse and reliability issues, and answer support, privacy and security requests.
4. Data Processors and Third-Party Services
The services below process or receive data when you use these features. Twitch, Google, Spotify, Stripe and Discord act as independent data controllers for data on their platforms; their own privacy policies apply to it.
| Service | Purpose | Data involved | Location |
|---|---|---|---|
| Best Logs / Spanix (bl.spanix.team) | Independent public Twitch chat archive used for Chatnesia questions and shared daily games | Selected channel login, archive dates and message queries; returns public message text, message IDs, timestamps, chatter IDs, names, colors and emote metadata. Hosted archive requests go through the Chatnesia server | The archive provider's infrastructure; its storage location and upstream retention are controlled by that provider |
| Cloudflare | Hosting (Pages, Workers, KV storage, Durable Objects), CDN, rate limiting, abuse protection and Web Analytics | IP address, request path, response code, time and user agent; every stored record described in this policy | Cloudflare's global network. Stored data is not pinned to one country and may be kept in the United States or other countries where Cloudflare operates |
| Twitch (Amazon) | Sign-in, account identity, chat, channel events, clips, shout-outs, ad schedule | Twitch user ID, login, display name, profile image, chat color, OAuth tokens, channel and chat data the tools use | United States. Twitch is an independent data controller for your Twitch account |
| Google (YouTube) | Sign-in with YouTube, YouTube live chat and, if you allow it, sending and moderating from OBS Chat | YouTube channel ID, handle, channel title, channel picture, OAuth tokens and the permissions they carry, live chat messages while you stream, the messages and moderation actions you send from OBS Chat | United States. Google is an independent data controller for your Google account |
| Spotify | Music widgets, !sr song requests, playback controls, playlist features | The Spotify Developer client ID and secret you provide, OAuth tokens, Spotify profile name, ID and image, playback, queue and playlist data, song-request search text | Sweden / United States. Spotify is an independent data controller for your Spotify account |
| StreamElements (optional) | Completed tip notifications in OBS Chat and the in-app chat | An encrypted channel JWT and channel ID; completed tip ID, donor display name, amount and currency. Payer email and payment transaction details are not retained | StreamElements operates its own service and privacy policy |
| Stripe | Donations, the monthly supporter tier and the Stripe Customer Portal | Card details and email (collected by Stripe on its own checkout page), amount, payment status, Stripe customer ID, Twitch ID and login if you are signed in, the name you type | United States. Stripe is an independent data controller for payment data |
| Resend | The optional weekly Stream Recap email | The email address you enter and the recap sent to it (stream titles, categories, hours live, viewer and follower numbers, the top clip and who clipped it) | United States |
| Discord and other webhook receivers | Posts you set up: Stream Receipt, poll and giveaway results, Control Deck presses | What each post contains (see section 2.10), sent to the address you enter | Wherever the receiver you choose is hosted. Discord is an independent data controller |
| 7TV, BetterTTV, FrankerFaceZ | Third-party emotes in the emote picker, chat overlays, Emote Rain and Chatnesia | The viewer's IP address and the channel's numeric Twitch ID, sent by the browser that shows the page | Each provider's own servers |
| Google Fonts | Fonts you pick for overlays, Stream Receipt and Chat vs. Meteors | The IP address of the browser that loads the font, and the font name | United States |
| Google Gemini | Optional AI replies in the ForgetMeNot desktop app | Your Gemini key and chat prompts go from your own computer to Google. Streamer Online never receives them | United States. Google is an independent data controller |
What your browser and OBS load directly
Some pages and overlays contact other services straight from the browser or OBS. Those services see the IP address of the computer that shows the page:
- Twitch chat (an anonymous connection), Twitch images, and Twitch's own web service to find a clip's video file for BRB Player, Clip Play and Video Shout-Out.
- Video embeds from Twitch, YouTube, TikTok, Instagram and Facebook in BRB Player and Clip Play. YouTube videos use YouTube's privacy-enhanced mode (youtube-nocookie.com). These providers can set their own cookies in that browser.
- 7TV, BetterTTV and FrankerFaceZ for emotes, and Google Fonts for fonts you pick.
- collab.deutschmark.online, for the public stream schedule Video Shout-Out can show.
- The ForgetMeNot app on your own computer (127.0.0.1), from the Chat Bot page.
5. Cookies and Local Storage
The sign-in service sets two cookies for .deutschmark.online, so one sign-in works on every subdomain: a secure, HTTP-only dm_session cookie for your session, and a dm_csrf cookie that pages read to protect changes against cross-site forgery. During sign-in it also sets a short dm_oauth_nonce cookie, only on auth.deutschmark.online, that expires after 10 minutes. Cloudflare may set its own security cookies. Blocking these cookies stops sign-in from working.
Pages also keep preferences in your browser's storage: desktop layout, recent tools, the last settings page you opened, themes, guest choices and similar. Some entries name people: the Task List overlay keeps chatters' logins, names and tasks in the OBS browser; Chat vs. Meteors keeps its scoreboard and a copy of its all-time leaderboard there; the poll and giveaway join page keeps a viewer's device ID and typed name; and an editor's browser remembers which channel they are working on for the session. Chatnesia keeps its channel libraries, game state, local preferences and display-room access keys there, as described in section 2.18. Clearing browser storage removes these local copies; it does not delete server records or the independent archive.
6. Data Retention
- Sessions last 24 hours. While you keep using a deutschmark.online app they are extended, but never past 30 days from sign-in. Signing out ends the session at once.
- Sign-in state lasts 10 minutes, ForgetMeNot pairing codes 5 minutes, and recap email confirmation links 24 hours.
- Your account, Twitch and YouTube profiles, encrypted tokens, tool settings, sources, scenes and bot settings are kept until you delete them or your account is deleted.
- Disconnecting Spotify, unlinking YouTube, disconnecting the bot account, removing an editor or deleting a source, scene, webhook or extension token deletes that record at once.
- The weekly recap email address is kept while the email is on, and deleted when you turn it off or unsubscribe. An address that is never confirmed is deleted after 24 hours.
- Stream Recap keeps your 20 most recent recaps; you can delete any of them. A stream in progress becomes a recap when it ends, or after 18 hours at most.
- Viewer data is kept as listed in section 2.11. Poll and giveaway room codes expire after 12 hours.
- Show Kit remembers what is on screen for 12 hours, so an OBS refresh does not clear it.
- Paint Party rooms are deleted as described in section 2.13. Chat vs. Meteors host settings are kept until you ask for them to be deleted. The Chat vs. Meteors all-time leaderboard (players' names and totals) is kept until you reset it or your account is deleted.
- Chatnesia: archive response cache five minutes; shared daily set until 48 hours after its UTC day began; display room two hours without a host state update; account preferences 180 days without a read or change. Local libraries and games remain in that browser until cleared or replaced. See section 2.18 for removal controls and their limits.
- Donation and payment records (Stripe customer ID, totals, payment amounts and dates, the names given, perk dates) and the monthly supporter lists are kept as financial records. Stripe keeps payment records under its own retention policy and financial law.
- Gym Floor Planner sync copies are deleted after 400 days without use.
- Cloudflare keeps its own security and operational logs under its own policies.
Deleting your account
There is no delete button yet. Email the address below to ask for deletion; section 8 explains how you show the account is yours. Account deletion removes your account, profiles, tokens, settings, sources, scenes, recaps, viewer lists, email address, editor access you gave or were given, and Chat vs. Meteors settings and all-time leaderboards. Payment records and past supporter lists are kept as financial records, as described above. Chatnesia preferences live in a separate store; include Chatnesia in your request so their removal can be handled separately. Deleting the shared account does not automatically erase that store or data saved in a browser. Its inactivity expiry and temporary game retention still apply.
7. Data Security
The services use HTTPS, HTTP-only session cookies, CSRF checks on every change, CORS allowlists that separate private app routes from public widget reads, rate limits per route, IP and token, no-referrer and other security headers, and ownership checks on opaque source tokens. Twitch, YouTube, Spotify and bot-account tokens, Spotify client credentials, recap email addresses and trigger-link secrets are encrypted with AES-GCM under a versioned key. Once pairing finishes, ForgetMeNot install secrets are kept only as SHA-256 hashes, as are music extension tokens, and the links in recap emails are looked up by their hash.
No system is perfect. If you believe there is a security issue, contact the address below; security reports are reviewed first.
Breach notification. If a security incident affects your personal data, affected users will be told without undue delay and as applicable law requires.
8. Your Rights and Choices
You have the following rights over data stored about your account:
- Ask for a copy of the personal data stored about your account.
- Ask for inaccurate account or configuration data to be corrected.
- Ask for your account and the data tied to it to be deleted (see section 6).
- Disconnect Spotify from Settings → Network Connections. This deletes your Spotify credentials, tokens and profile.
- Unlink YouTube from Settings → Network Connections when Twitch is your sign-in. This deletes your YouTube tokens and the link to your channel.
- Turn off sending to YouTube chat under Dock setup on the OBS Chat tool page. OBS Chat stops sending and moderating on YouTube at once.
- Turn off the weekly recap email, or use the unsubscribe link in any recap email. Either one deletes your address.
- Delete hosted sources, scenes, editors, webhooks, music extension tokens, Paint Party rooms and saved recaps from their pages.
- Cancel or change monthly support from the Stripe Customer Portal under Settings → Billing and Support.
- Remove Streamer Online's access to your Twitch account in Twitch's settings (Connections), and to your Google account at myaccount.google.com/permissions.
- Pause Chatnesia collection, remove messages or people, or clear the local library in Settings. Viewers can use !chatnesia off in a connected channel; see section 2.18 for its limits.
- Clear local preferences and cookies with your browser settings. This also clears Chatnesia libraries and local game history in that browser.
Depending on where you live, you may have more rights under laws such as the EU GDPR, the UK GDPR, the California Consumer Privacy Act (CCPA / CPRA) or similar laws.
Making a privacy request
Email [email protected] with the Twitch login or YouTube channel of the account. Privacy requests are acknowledged within 7 days and completed within 30 days; if more time is needed, you'll be told why and given a new date.
Identity verification. You may be asked to prove you control the account, for example by posting a unique string in your Twitch chat or your YouTube channel. This stops someone else from deleting your data in your name.
Viewers. If you are a viewer and want data about you removed, ask the streamer, who can remove you from their lists, or email the address above with your Twitch login.
EU / UK GDPR. You may complain to your local supervisory authority if you believe your privacy rights have not been respected.
California (CCPA / CPRA). You have the right to know what personal information is collected and how it is used, and to delete or correct it. Authorized agents may make requests for you with verifiable written authorization. Personal information is not sold or shared for cross-context behavioral advertising (see section 10), so there is nothing for an opt-out or a Global Privacy Control signal to switch off.
9. Children's Privacy
These services are made for streamers and their communities. They are not directed at children under 13, and personal information from children under 13 is not knowingly collected. The minimum age follows Twitch's and YouTube's own age rules. If you believe a child has given personal information through these services, contact the address below so it can be reviewed and deleted.
10. Data Sale Policy
User data is not sold. Streamer Online is not funded by advertisers or data brokers. Your account, Twitch, YouTube, Spotify, bot, widget, source, donor and viewer data is not sold to third parties or shared with them for their own marketing.
For California residents: personal information is not "sold" or "shared" as the CCPA / CPRA defines those terms, including for cross-context behavioral advertising.
11. International Data Transfers
The services run on Cloudflare's global network (Workers, KV, Durable Objects and Pages). Stored data is not pinned to one country, so if you use them from outside the United States, including from the European Economic Area or the United Kingdom, your data may be transferred to and processed in the United States and other countries.
Where required, transfers rely on the recipient's own legal mechanisms (for example, Cloudflare publishes Standard Contractual Clauses and a Data Processing Addendum). Twitch, Google, Spotify, Stripe, Resend and Discord each keep their own mechanisms for their processing.
12. Changes to This Policy
This Privacy Policy changes as the services change. The "Last Updated" date at the top shows the latest revision, and material changes are noted on the changes page. Continued use after an update means the updated policy applies to your use.
13. Contact
For privacy questions, data requests or security concerns, email [email protected] or check the docs for setup help.
For copyright, DMCA notices and rules of use, see the Terms of Service.