Privacy Policy
1. Data Controller
uStreamers is a software service owned by Marcelo Gabriel Serafini Dumo, Argentine tax ID (CUIT) 20-44194166-9, an individual domiciled in Colonia Caroya, Province of Córdoba, Argentine Republic (hereinafter, "uStreamers", "we", "us", or the "Data Controller"). uStreamers is the data controller for the personal data described in this policy, collected through the mobile app, the browser extension, the API, and the website associated with the Service. For any privacy-related inquiries or requests, our official contact email is legal@ustreamers.app.
2. Data We Collect
- Twitch, Kick, and TikTok profile data: username, account identifier, profile picture, and associated email address (if provided), retrieved when you authorize sign-in or voluntarily link external streaming channels.
- OAuth access tokens: stored encrypted using robust cryptographic algorithms (AES-256) and used exclusively to perform, on your behalf, the actions you authorized (reading your chat, receiving live stream events, moderating your channel, etc.).
- Your Twitch account emotes: if you authorized us to read them, we ask Twitch for the list of emotes you can use (from subscriptions, Prime, Turbo and similar) and the name of the channel each one belongs to, so we can show them in the emote picker and avoid marking the ones you already own as locked. That list is kept only in server memory for a few minutes and is not stored in any database.
- Spotify connection (optional, streamers only): if, as a streamer, you choose to have your channel's song requests play through Spotify, we store the Client ID of the Spotify app you created yourself (we never ask for or store its Client Secret), the refresh token of your Spotify account (encrypted with AES-256), the identifier and display name of that account, the permissions granted, and the last connection error. Each Spotify request also stores the song's details. What is accessed, why, and for how long is explained in section 16.
- Chat AI (optional, streamers with uStreamers Plus+ or uStreamers MAX only): if, as a streamer, you turn it on, we store the command, the personality you wrote (up to 10 words), who can ask, the wait between questions, and each period's usage of your channel's AI balance (amount spent by the Chat AI, by its web search, and by the other AI features that share that balance, number of uses of each, and tokens). If, as a viewer, you use its command, your question and display name are processed on the spot to generate the answer and are not stored. What is sent to the AI provider, and for how long, is explained in section 17.
- Technical data: IP address, device identifier, operating system, and app version, used for security, rate limiting, and error diagnostics.
- Access log: we record the IP address, source port, date and time, client identifier (User-Agent), and event type (sign-in or session renewal, publication, report, or pairing of an OBS panel or Studio web) to protect the security of the Service, prevent abuse, and respond to requests from judicial authorities. Records are automatically deleted after 180 days, unless a serious report under investigation or a judicial request requires longer retention solely for the affected account. Closing the account does not shorten that period. Only the administrator may access the log, must provide a reason, and every access is itself recorded.
- Chat messages: content you send in the merged chat is processed to display it to other users and to power moderation and reporting tools.
- Accounts hidden from chat: if you hide a Twitch or Kick account that has no uStreamers account from your chat, we store its identifier on that platform and the name it displayed, only to stop showing you its messages. It is deleted when you show it again or delete your account.
- Push notification tokens: to alert you when a channel you follow goes live.
- Subscription data: if you purchase uStreamers Plus+ or uStreamers MAX, your subscription status (which plan it is and until when it is active), the purchase source (App Store, Google Play), and the receipt the store gives us: the product and plan, the order number, the purchase token, the expiry and renewal dates, and the store's latest response about that purchase. If a purchase is refunded or voided, we also keep what is described under "Refunds and chargebacks" (section 10). We use them to activate and maintain your subscription, apply plan changes, handle claims, and prevent fraud. uStreamers does not store card numbers or payment details: those are handled exclusively by the relevant app store.
- Boosts: for each boost we store who gave it and to which streamer, the plan it was given with, the AI balance and boost points it added, the Google Play purchase it came from, the date and, if it was reversed, when and why. For the streamer who receives boosts we store the number received, their boost points, their received AI balance (which may become negative after a refund), and their redemptions. For the person who gives boosts we also store how many purchases they gave boosts with were refunded and whether their ability to give boosts was removed. Details in section 21.
- Plan gifts: if you give or receive uStreamers Plus+ or uStreamers MAX as a gift, we store who gave it and to whom, the plan and duration, whether it was anonymous, the message, where it was given from (a viewer's card inside a channel, with that channel, or a profile), the Google Play purchase receipt (product, order number, and purchase token), the gift's status with its dates (pending, accepted, declined, expired, refunded, or voided), and how it was applied on acceptance. We also store your "Receive plan gifts" setting and, if you are a streamer, your "Announce plan gifts" setting. Details in section 22.
- Evidentiary record of legal acceptance: upon checking the box agreeing to the Terms and Privacy Policy, we record the originating IP address, client identifier (User-Agent), accepted document version, platform, and UTC timestamp (updating the last acceptance timestamp upon subsequent logins). This record is maintained during the active lifecycle of the account and for the period necessary to prove legal consent and contractual mutual assent, surviving account closure or anonymization for these evidentiary purposes.
- Voice Alerts consent: the first time you use Voice Alerts, you accept their own conditions. We record the accepted version, the acceptance date and, if you withdraw it, the revocation date, together with the IP address and the client identifier (User-Agent). It is kept with the same scope and for the same period as the evidentiary record of legal acceptance.
- Suggestions: if you send a suggestion from Settings, we store its title and text, the language, the platform and app version you sent it from, the version of the legal documents in force when you sent it, its status, and the internal note we add when reviewing it. Because the suggestion is licensed to uStreamers (section 9.3 of the Terms of Service), it is kept after the account is deleted, linked to the anonymized identifier.
- Discord Webhooks (Tops and Live Announcements): if, as a streamer, you set up automated Tops publication or live broadcast announcements to your Discord community, we store the webhook URL encrypted using AES-256 and the destination channel label returned by Discord. You can paste the webhook yourself, or Discord can create it when you pick the channel from Discord's own screen (see section 18). uStreamers does not access or store messages, member lists, or private server data from your Discord server.
- Configuration import from external bot tools: if a broadcaster imports commands, counters, or timers from third-party tools (Nightbot, StreamElements, Botrix), provided credentials or uploaded files are processed transiently and strictly in volatile memory to query and transfer configurations. For Nightbot, you authorize read access through its official sign-in (OAuth 2.0) and we read your commands and timers with its API (
api.nightbot.tv); for StreamElements, we use the JWT token you paste to read them with its API. Those credentials are discarded as soon as the read finishes and are not persistently stored in our databases. - Audio recordings and voice messages (Microphone): if you voluntarily choose to use the Voice Alerts feature to send an audio message to a streamer, we temporarily collect the audio recording captured via your device's microphone. Biometric data safeguard (Illinois BIPA and GDPR Art. 9): uStreamers does NOT extract identifying acoustic vectors, voiceprints, or conduct biometric profiling or voice-based identity recognition. Audio files are processed strictly as ephemeral media files for community interaction. Automatic transcription and moderation: to moderate it, each audio file is converted to text with artificial intelligence using Cloudflare Workers AI (Whisper model), to which we send only the audio file, without your name or identifiers. That text, also without names or identifiers, is then checked with OpenAI's automated moderation service. Depending on the result, the audio may be rejected automatically (it is deleted and any points you used to send it are returned) or held for a person to review; suspected sexual content involving minors is never rejected automatically: a person always reviews it. If the streamer has prior review turned on, their moderators see the text and the moderation warnings before listening to the audio; if it is turned off, the audio only plays after passing this check, and if the check raises warnings or cannot be completed, it waits for human review instead of playing. An audio file is never rejected because this check failed. The transcription is stored with the alert and deleted with it, within a maximum of 48 hours (section 10); it is not used to identify you by your voice or for any other purpose, and it is not written to our technical logs.
- Optional personal and location data: country, state/region, and birthday (day and month only, without year). You may voluntarily provide these in the app's Settings. If you turn on the corresponding visibility toggles, your location and birthday will be shown on your public profile (as a streamer or as a viewer) and will enable your discovery in the catalog's local filters. While those toggles are off, the data is not shown to other users.
- Mobile device permissions: to operate specific features, the mobile app requests explicit operating system permissions (Android / iOS): (a) Microphone: requested optionally and only when the user taps to record a live voice alert or to dictate a message; (b) Speech recognition (dictation): on iOS, the system also asks for its own permission the first time dictation is used (see Voice dictation below); (c) Push notifications: to deliver alerts when a followed channel goes live (which can be disabled at any time within app settings or device OS settings); (d) Storage / Photo library: requested strictly when a user voluntarily attaches an image to a community feed post or updates their avatar, or when a streamer picks files for My files, their channel's points icon, or the photo used to create an AI character (sections 23 and 24); (e) Camera: only when you tap “Scan QR” to link the OBS panel or the web Studio. The camera image is processed solely on your device to read the code: uStreamers does not record, store or send photos or video, and only uses the link contained in the code. If you do not grant the permission, you can paste the link or type the code instead.
- Voice dictation (optional): in the mobile app you can dictate chat messages, community posts, and announcements instead of typing them by tapping the microphone button. Speech-to-text is performed by your device's operating system speech recognizer —on Android, the default speech recognition service (usually Google's); on iOS, Apple's speech recognition—, which may process the audio on the device itself or send it to Google's or Apple's servers depending on your device and its settings, under their own policies. uStreamers does not receive, record, or store dictation audio: it only receives the resulting text, and only if you choose to send it, with the same treatment as any message or post typed by hand. Dictation is not used to identify you by your voice.
4. Browser Extension
The uStreamers browser extension has a single purpose: to replace the chat of Twitch and Kick channels with the uStreamers merged chat and to give access, from the same page, to the features of the Service (channel points, voice alerts, GIFs, emotes, and streamer and moderator tools). It only runs on twitch.tv and kick.com: it does not read, record or transmit your activity on any other website, nor your browsing history. The only exception is the optional YouTube Music pause feature for streamers, which only runs if you enable it yourself and grant the corresponding browser permission (see section 14.5).
- Channel you are watching: when you open a Twitch or Kick channel page, the extension extracts only the public channel slug/identifier from the page URL path and sends it to our servers to determine whether the channel uses uStreamers and connect you to its chat. Full URLs, query parameters, and other pages you visit are never transmitted.
- Sign-in: if you sign in with Twitch or Kick, authorization takes place on that platform's official page and then on our servers. The extension receives and stores your uStreamers session tokens (never your password nor your Twitch or Kick tokens) to act on your behalf.
- Messages and actions: the messages you write, the GIFs and emotes you send, point redemptions, reports, blocks and, if you are a streamer or moderator, moderation and channel-control actions are sent to our servers to carry them out, with the same treatment as in the mobile app.
- Watch time: if you are signed in and the channel has points enabled, the extension inspects the page's video player status (confirming solely that the tab is active and the stream video is actively playing, without recording or processing stream video or audio) and periodically tells our servers that you are still watching, in order to award you points (see section 10).
- Microphone: only when you choose to record a voice alert, the extension asks the browser for permission to use the microphone. The audio is handled as described for Voice Alerts.
- GIFs: the GIF search queries KLIPY directly from your browser, as explained in section 9. The GIF you pick is sent to our servers to post it in the chat.
- Local storage: the extension keeps in its own extension storage, which the pages you visit cannot access, your session, your language, the selected visual theme, whether the extension is enabled, whether you have uStreamers Plus+ and a few chat interface preferences. It stores nothing in the storage of the Twitch or Kick pages. This data stays on your device and is deleted when you sign out (the session) or uninstall the extension.
- No tracking or ads: the extension includes no third-party analytics, advertising or tracking tools, and it does not run code downloaded from the internet: all of its code ships inside the package published in the store.
Limited Use: the extension's use of the information it receives adheres to the Chrome Web Store Limited Use policy. In particular: (a) we use the data only to provide and improve the single purpose described above; (b) we do not sell it or transfer it to third parties, except as strictly necessary to operate or improve the Service under section 9, to comply with applicable laws, to protect against malware, fraud, abuse, or security incidents, or as part of a merger, acquisition, or sale of assets after obtaining explicit prior consent from the user; (c) we do not use or transfer it for personalized advertising or to determine creditworthiness or for lending purposes; and (d) no human reads that data, except with your consent, when necessary for security purposes (for example, to investigate abuse or a report), to comply with the law, or when it is aggregated and anonymized for internal operations.
5. Source of the Data
Your profile and account data comes directly from Twitch, Kick, and TikTok through their respective official OAuth 2.0 (PKCE) authentication flows and developer APIs, which we access only after your explicit authorization during sign-in or when linking accounts in Settings.
In addition, to display and operate the channels that use uStreamers, we process information that Twitch and Kick show publicly to any visitor of their sites, such as messages in channels' public chat, clips, emotes, follower counts, and other public channel data. This is information from publicly accessible sources about channels and chats, not private data from your account.
YouTube data comes from the YouTube API Services: from the YouTube Data API v3 (using a uStreamers API key, without you signing in) and, if you are a streamer and link your Google account, from that account through OAuth 2.0 (PKCE) with your explicit authorization. You can revoke that access as explained in section 14.6.
Spotify data comes from the Spotify Web API, which we access using the Spotify app you created yourself and only if, as a streamer, you authorize your Spotify account through OAuth 2.0 (PKCE) with your explicit consent. You can revoke that access as explained in section 16.2.
Direct revocation from issuing platforms: In addition to unlinking accounts at any time from within uStreamers (in the app Settings or, for Spotify, in the OBS control dock), you may immediately and directly revoke permissions by accessing each platform's native security settings: on Twitch via Settings → Connections → Other Connections; on Kick via Account Settings → Applications; on TikTok via Settings and Privacy → Security & Permissions → Manage App Permissions; on Spotify via the Apps page of your account (Remove access); and on Discord via User Settings → Authorized Apps (or by deleting the channel webhook).
6. Purpose of Processing
- Operating the Service: displaying your profile, your merged chat, live room events, and the status of your favorite channels.
- Enabling moderation of your own channel, if you are a streamer.
- Sending notifications you requested (e.g. "your favorite streamer just went live").
- Preventing abuse, spam, and fraudulent access (rate limiting, detection of unauthorized minor accounts).
- Processing, moderating (including automatic transcription) and broadcasting in real time the voice notes and audio alerts you voluntarily submit to a channel, applying authorized audio filters or modulation effects where applicable.
- Managing your uStreamers Plus+ or uStreamers MAX subscription, if purchased, including plan changes.
- Preventing abusive use of refunds and chargebacks of those subscriptions, as described in section 10 and in section 8.3 of the Terms of Service.
- Giving, reversing, and redeeming boosts, and processing, applying, and refunding plan gifts, as described in sections 21 and 22.
- Generating, moderating, and showing AI drawings and characters, and storing and serving the files streamers upload for their alerts, as described in sections 23 and 24. Also, creating, moderating, showing and releasing viewers' pets, as described in section 25.
- Crediting and redeeming each channel's uStreamers points and, if the streamer turns it on, converting Twitch or Kick channel points into uStreamers points and mirroring rewards on those platforms, as described in section 10.
- Providing the streamer with aggregate statistics for each stream and answering chat commands such as
!followage. - If you are a streamer and connect Spotify, sending your channel's song requests to your Spotify, as described in section 16.
- If a streamer with uStreamers Plus+ or uStreamers MAX turns on Chat AI, generating and moderating the answer to the questions asked with its command, and capping its spending at their plan's AI balance, as described in section 17.
- Complying with legal obligations, including those described in section 3 of the Terms of Service regarding minors.
7. Legal Basis
We process your data based on: (a) performance of the contract you accept by using the Service; (b) your explicit consent when authorizing Twitch, Kick, TikTok, Google, or Spotify OAuth access; and (c) compliance with legal obligations, including the protection of minors. For Chat AI (section 17), sending a question to the AI provider is based on performance of the contract when the person asking is the streamer (for example, from the Try it tab) or a user with a uStreamers account; its moderation is based on our legitimate interest and our duty to protect minors. The automatic transcription and moderation of voice alerts (section 2) are also based on that legitimate interest and that duty.
Viewers without a uStreamers account: people who take part in the Twitch or Kick chat of a channel that uses uStreamers do not need a uStreamers account or to have accepted these documents. When such a person voluntarily uses an @uStreamersBot command (for example, the AI, song request, or giveaway command) or writes in a chat whose streamer turned on voiceover, we process the data strictly needed to handle that request (their display name, their platform identifier, and the message text) on behalf of the streamer who turned the feature on in their channel and on the basis of our legitimate interest, and theirs, in providing the feature that person started in a public chat, within the time and scope limits described in this policy. On the same basis we process, even if that person uses no command, the data generated by their own public actions in those channels: if they follow on Kick a channel that uses uStreamers, their Kick identifier and username with the follow date (for the !followage command); if they redeem a Twitch or Kick channel points reward set up with uStreamers, the redemption with their identifier; and, if they write in the chat during a stream, a code derived from their identifier (not the identifier or the name) that is used only to count distinct participants and is deleted when the stream ends (see section 10). That person can avoid this processing by not using those commands or features, and can exercise their rights as set out in section 11.
8. Minors
uStreamers is not directed at individuals under 13 years of age and does not knowingly collect personal data from that age group. If you are between 13 and 17 years old, using the Service requires the consent of your parent or legal guardian (see section 3.2 of the Terms of Service).
If a parent or legal guardian discovers that a child under 13 is using uStreamers without authorization, they may request the immediate deletion of the account and associated data by writing to legal@ustreamers.app. The account is suspended and the data is irreversibly anonymized or deleted.
10. Data Retention
We retain your data while your account is active. If you delete your account from Settings, it is deactivated immediately and, after 14 days, your personal data is irreversibly anonymized or erased, except for data we must retain to comply with legal obligations (for example, moderation audit logs).
Ephemeral Data Processing for TikTok LIVE (Zero-Persistence): In compliance with TikTok Developer Policies, live stream comments, viewer identifiers, avatars, and gift/coin events (*Gifts/Coins*) received from TikTok LIVE are not stored in persistent databases or server disks. They are processed strictly ephemerally within server volatile memory during the broadcast to distribute them in real time to authorized streamer endpoints (stream overlay, OBS dock, and, when available and authorized via official developer APIs, the mobile app), and are purged immediately after dispatch.
Ephemeral Lifecycle for Voice Alerts (Maximum 48 Hours): Voice recordings and audio files sent through Voice Alerts are stored on a strictly temporary basis. An automated cleanup worker permanently and irrecoverably deletes audio files from cloud object storage within a maximum of 48 hours following submission (or immediately for discarded/unapproved recordings in moderation), retaining no residual copies. The automatic transcription of each audio file (section 2) is stored with the alert and deleted with it, within the same period.
uStreamers points: points are earned by watching streams in the app or with the browser extension, through stream streaks, bonus chests, a channel's first favorite, and missions such as joining the channel's Discord, and, if the streamer turns it on, by converting Twitch or Kick channel points. To credit participation, we retain valid viewing seconds by channel and platform, the associated broadcast, the balance, and an immutable transaction ledger. Your balance, viewing time, and ledger are not sent to Twitch or Kick. When an account is deleted, sessions are closed and balances are reduced to zero; the ledger remains linked to an anonymized identifier for integrity, fraud prevention, and audit purposes. Operational statistics are shown only in aggregate form, without names, external identifiers, or redemption text. Viewing time is used only to credit points and for those aggregate metrics, and the detail is kept only as long as needed for those purposes. Per-user detail is accessible only to authorized staff through a specific permission, and every balance adjustment is recorded with its reason and author in an audit log.
Twitch and Kick channel points conversion (optional, turned on by the streamer): the streamer can create up to three rewards in Twitch or Kick channel points that, when redeemed there, credit uStreamers points to your account. When you redeem one, the platform deducts its own points and notifies us; we credit the points if you have a uStreamers account linked to that platform, or ask the platform to refund them if you do not. For each redemption we store its identifier and the reward's, your Twitch or Kick account identifier, your uStreamers account if any, the cost, the points credited, the outcome, and the date. This record is kept together with the transaction ledger, even after the account is deleted, to prevent duplicate credits and handle claims. The streamer can also mirror rewards from their catalog on Twitch or Kick: whoever redeems them there creates a normal redemption in the catalog, processed the same way as one made in uStreamers.
Kick followers (!followage): when someone follows on Kick a channel that uses uStreamers, Kick notifies us and we store that person's Kick identifier and username and the follow date, whether or not they have a uStreamers account, so the !followage command can answer how long they have followed the channel (Kick's API does not provide this). It is kept while the channel uses uStreamers and deleted when the streamer's account or that person's account is deleted (14 days after the deletion request). You can also request its deletion by writing to legal@ustreamers.app.
Per-stream statistics: so the streamer can see how each Twitch and Kick stream went, we record totals per stream and platform (minutes live, average and peak viewers, number of messages and of distinct chat participants, follows, subscriptions, bits, Kicks, and raids). To count distinct participants without storing who wrote, during the stream we store only a code derived from each participant's identifier (not the identifier or the name), which is deleted when the stream summary is closed. The totals, which contain no viewer data, are kept for 400 days.
Purchase receipts and suggestions: the receipt of each uStreamers Plus+ or uStreamers MAX purchase (section 2) is kept after the account is deleted, linked to the anonymized identifier, for as long as needed to prove the charge, handle claims from the store or the user, and prevent fraud. Suggestions are kept as set out in section 2.
Refunds and chargebacks: to prevent abusive use of refunds (section 8.3 of the Terms of Service), we record each account's purchase orders, whether they were refunded or voided, and the AI balance used while they were active, and, where applicable, the AI balance debt still to be deducted, how many refunded purchases with AI usage the account has accumulated, and whether it is blocked from subscribing to plans (including making plan gifts). If an account is suspended for that reason, we keep for up to two (2) years an encrypted, irreversible fingerprint of the identifiers of its linked Twitch, Kick, or TikTok accounts, even if the account is deleted. That fingerprint does not reveal which account it belongs to and is only used to prevent the same person from subscribing to plans again. We do this on the basis of our legitimate interest in preventing fraud.
Boosts and plan gifts: boost and gift records, together with the Google Play receipts they come from, are kept after the account is deleted, linked to the anonymized identifier, like purchase receipts, because they are needed for the streamer's AI balance and boost points, to reverse boosts and refund or void gifts, and to handle claims and prevent fraud. What happens to each of them when an account is deleted is explained in sections 21 and 22.
Channel currency icon and moderation evidence: when a streamer uploads one, the processed image is made public so channel viewers can see it in the app, panel, and overlay. The original is not retained. Public variants are deleted when the icon is changed or removed and when the account is deleted, followed by an orphan file cleanup sweep. If the icon is reported for sexual content or child safety, it stops being shown while a moderator reviews the report, but its variants are kept so it can be published again if the report is unfounded. If an image is reported and an enforcement action or block is applied, a backup copy securely preserved in private internal storage is retained for up to ninety (90) calendar days following report resolution—even if the offending account is subsequently deleted—based on our legitimate interest and legal duty to audit moderation decisions, handle disputes, and respond to lawful authority requests. Upon expiration of this period, the file is permanently deleted.
Community activity and posts: community activity events are retained for a maximum rolling window of thirty-one (31) calendar days, or ninety-one (91) calendar days for channels whose streamer has an active uStreamers MAX subscription, after which they are automatically purged. Creator-deleted community posts are permanently erased from active databases thirty (30) days after soft deletion, unless unresolved reports remain associated with that post.
YouTube and Google data: the retention periods for each feature (song requests: 30 days after they are made; name searches: up to 7 days, then deleted within 2 days; the Google account for background music: until you unlink it or your account is deleted; YouTube in News: title, duration, upload date and Short flag refreshed or deleted after 30 days, and records and imported posts deleted when you unlink your Google account or remove the permission from Google; Discord notice: webhook until you delete it or your account is deleted, and pending notices for up to 24 hours) are detailed in section 14.
ElevenLabs key: the ElevenLabs API key you load is kept encrypted until you remove it from the app (it is deleted immediately) or your account is deleted (14 days after the deletion request). The texts the voiceover sends to ElevenLabs from OBS do not pass through or get stored on our servers; how long ElevenLabs keeps them depends on the ElevenLabs account and conditions (section 15).
Chat AI: we do not store the text of questions or answers. The channel's settings (command, personality, who can ask, and wait time) and each period's AI balance usage (amount spent by each feature that shares the balance and number of uses and tokens, with no texts or data about who asked) are kept until the streamer deletes their account (14 days after the deletion request). What the AI provider keeps is explained in section 17.
Spotify data: the connected Spotify app and account are kept until you disconnect them or your uStreamers account is deleted; song requests, 30 days after they are made (see section 16).
11. Your Rights
Depending on your jurisdiction, you may have the right to access, rectify, delete, restrict, or object to the processing of your personal data, and to data portability. You can exercise these rights by deleting your account directly from the app (Settings → Delete account) or by writing to us at legal@ustreamers.app.
Download your data (access and portability): you can download a copy of the personal data we store about your account from the app, under Settings → My account and plan → Download my data. The copy is a JSON file, a structured, commonly used and machine-readable format that you can take to another service. It includes your account and preferences, your linked accounts, your consents, sessions and access records, your favorites, blocks, posts, reports and suggestions, your points and redemptions, your participation in channels, your pets, gifts, boosts and purchases, and, if you are a streamer, your channel settings. It does not include credentials or secrets (tokens, keys, hashes), other people's data (for example, your viewers'), the identity of whoever reported you, or our team's internal notes. You can request one copy every 24 hours, free of charge. This does not replace your right to request it by email.
11.1. Argentine Personal Data Protection Act (Law 25,326)
Pursuant to Law No. 25,326, users are advised that: "The holder of personal data has the right to exercise the right of access free of charge at intervals of not less than six months, unless a legitimate interest is established pursuant to article 14, section 3 of Law No. 25,326. The AGENCY FOR ACCESS TO PUBLIC INFORMATION, in its capacity as the Oversight Body of Law No. 25,326, has the authority to handle complaints and claims filed by individuals whose rights are affected by non-compliance with personal data protection regulations."
11.2. Notice for California and U.S. Residents (CCPA / CPRA)
If you are a resident of California or a U.S. state with comprehensive privacy legislation: (a) No Sale or Sharing of Personal Information: uStreamers does not sell your personal information, nor do we share or disclose personal information for cross-context behavioral advertising under the CCPA/CPRA; (b) Non-Discrimination: you will not face discrimination or diminished service quality for exercising your privacy rights; (c) Sensitive Personal Information: we do not collect or process sensitive personal information for the purpose of inferring user characteristics. You may exercise these rights by contacting legal@ustreamers.app.
11.3. Users in the European Economic Area, the United Kingdom, and Brazil (GDPR / LGPD)
If you reside in the European Economic Area, the United Kingdom, or Brazil, the legal bases for processing are those in section 7: performance of the contract (GDPR Art. 6(1)(b); LGPD Art. 7, V), your consent, which you can withdraw at any time without affecting prior processing (GDPR Art. 6(1)(a); LGPD Art. 7, I), compliance with legal obligations (GDPR Art. 6(1)(c); LGPD Art. 7, II), and our legitimate interest (GDPR Art. 6(1)(f); LGPD Art. 7, IX). In addition to the rights in section 11, you have the right to lodge a complaint with the data protection authority of your country (for example, the Agencia Española de Protección de Datos in Spain, the Information Commissioner's Office in the United Kingdom, or the Autoridade Nacional de Proteção de Dados in Brazil). Transfers of your data outside your country are described in section 13.
12. Security
On our servers, Twitch, Kick and TikTok access tokens, Google, Spotify and Discord tokens, Discord webhook URLs, and the ElevenLabs API key a streamer loads are stored encrypted (AES-256). On your device, the mobile app session is kept in the operating system's secure storage and the extension session in the extension's own storage within your browser profile. Connections travel over HTTPS/TLS, and administrative access to data is role-limited and audited. No system is 100% foolproof; if we detect a security incident affecting your data, we will notify you as required by applicable law.
13. International Transfers
Some of our infrastructure providers may process data outside your country of residence. In such cases, we take reasonable measures to ensure the processing maintains a level of protection equivalent to the one described in this policy.
In particular, the providers of the YouTube and Google API Services, Spotify, ElevenLabs, and Chat AI (OpenAI, plus Brave and Perplexity for its web search) may process the data they receive in the United States, in accordance with their own policies.
14. YouTube and Google API Services
uStreamers uses YouTube API Services (the YouTube Data API v3, the embedded YouTube player, and Google OAuth 2.0 sign-in). By using the features described in this section, you agree to be bound by the YouTube Terms of Service. Google processes the information it receives in accordance with the Google Privacy Policy. This section supplements the rest of this policy and covers only data obtained from YouTube and Google.
14.1. Song requests (!sr): no Google sign-in
- What is accessed: when a viewer requests a song in chat with a YouTube or YouTube Music link, our servers call
videos.listof the YouTube Data API v3 with a uStreamers API key, using only the video identifier. If the viewer types a name instead of a link (for example,!sr artist song), our servers first callsearch.listwith the same key, sending only the text of the request (without the name or identifier of whoever typed it), and keep the first video that can be played embedded, which then goes through the samevideos.listlookup. No permission is requested and no Google account is accessed. Public video information is obtained: title, channel name, duration, thumbnail, and whether it can be played embedded. - What is stored: the video identifier, title, channel name, duration, and the link to the thumbnail (displayed from
i.ytimg.com; we do not copy the image), together with the name and chat identifier of the person who requested it, the request status, and its timestamps. The result of the YouTube lookup is also held in server memory for at most 6 hours (10 minutes if the video does not exist) to avoid repeating the lookup. For requests by name we also store the normalized search text, the identifier of the video YouTube returned (or that nothing was found), the channel where it was searched, and the time, without the name or identifier of the viewer: that search is reused for up to 7 days (1 day if nothing was found) instead of asking YouTube again, and is then automatically deleted within 2 days. - Why: to validate the request, build the queue, show the current track on the overlay, panel, and chat (and, if the streamer enables it, to their moderators and viewers in the app and the extension), and apply the rules set by the streamer (maximum length, blocklist, approval). The channel and time of each search are used to share the daily search limit among channels.
- How long: requests are automatically deleted 30 days after they are made, whether they have finished or are still in the queue or awaiting approval. Searches by name, as described above. When the streamer's account is deleted (14 days after the deletion request), the channel's queue and its entire history are erased.
14.2. Background music (optional, streamers only): Google account
- What is accessed: if, as a streamer, you link your Google account, we request a single read-only permission:
https://www.googleapis.com/auth/youtube.readonly("view your YouTube account"). With it we read the identifier and name of your YouTube channel, the list of your playlists (name, number of videos, and thumbnail), and the videos of the playlist you choose or of your liked videos. uStreamers does not post, modify, or delete anything in your account, and does not use this permission for any other purpose. - What is stored: the identifier and name of your channel, the Google access and refresh tokens (encrypted with AES-256), and your background music preferences (source, chosen playlist, and shuffle). The list of videos read from your playlists or liked videos is kept only in server memory, for up to 30 minutes, and is not saved in the database. Each background track that plays is recorded as a channel request, with the data and retention periods of section 14.1 (without the name or identifier of any viewer).
- Why: to play your music on the overlay or panel when there are no chat requests, and to yield to a request when it arrives or, if you configure it that way, when the current song ends.
- How long: until you unlink the account or your uStreamers account is deleted.
14.3. YouTube in News (optional, streamers only) and Discord notice
- What is accessed: the feature is off by default and is turned on from the app. It uses the same linked Google account as background music (section 14.2) and the same read-only permission,
youtube.readonly, which is used only once, when you turn it on, to read your channel's identifier and name and check that the channel belongs to the linked account (one channel can only be active for one streamer at a time). Later imports do not read your account: YouTube notifies us of new videos on your channel through its public notification service (WebSub); as a fallback we read your channel's public RSS feed; and for each video's title, duration, and status we use the YouTube Data API v3 with a uStreamers API key (plus a lookup of the video's public page to tell whether it is a Short). Only public videos published after you turn the option on are imported (never your history), and not live streams until they end, nor age-restricted videos. There is a cap of 5 automatic posts per channel in any 24 hours. - What is stored: your channel's identifier and name, your publishing mode (automatic or "review first"), and a verification secret for YouTube's notifications (encrypted). For each video, a record with its identifier, title, duration, upload date, whether it is a Short, its status (for example, awaiting your approval or published), and the link to its thumbnail (displayed from
i.ytimg.com; we do not copy the image). We do not copy or host the video or its description. Videos awaiting your approval ("review first" mode) do not appear in News and expire after 14 days. - Where it is shown: each published video appears in your channel's News, visible to those who view them, with the YouTube attribution, its title, the thumbnail, and the link to the original video. It is subject to the same rules, reactions, reports, and moderation as any other News post; it cannot be edited, but you can delete it whenever you want.
- How long: the title, duration, upload date and whether it is a Short are checked again with YouTube after 30 days; if they cannot be confirmed, they are deleted (from our records and, for the title, also from the post) after 37 days at the latest, and if the video stops being public or is deleted, the post is withdrawn. If a video is never published (you discard it, it is skipped or withdrawn), that data is deleted at that moment. What remains is the link and the thumbnail, which are built from the video identifier, and a control record for each video (identifier and status, with no YouTube data), which prevents importing the same video twice and is kept while the feature stays linked to your Google account. If you turn it off, we cancel YouTube's notifications, discard what is pending and any Discord notices that were not sent, and keep the posts already made (which you can delete yourself). If you unlink your Google account (or link another one with a different channel), the feature is turned off and the imported posts and all of its records are deleted: the posts stop being shown immediately and are removed from the database within the period set out in section 10 for deleted posts.
Discord notice (optional). If you paste your own Discord webhook in the app, every time an imported video appears in your News (on its own, or when you approve it), uStreamers sends one text message to that Discord channel.
- What Discord receives: your account's streamer name, the video title, the link to the video on YouTube, the role mentions you configured (and
@everyoneonly if you enable it), and the template text you define. Discord may show its own preview of the link. uStreamers does not send images or copy the thumbnail. Discord receives that content and processes it in accordance with its Privacy Policy; it is a destination you choose, and the YouTube data it contains is not used for anything else. - What is stored: the webhook address, which is a credential (encrypted with AES-256; the app never shows it in full again), the name you gave the webhook in Discord, your template, the role identifiers, the notice status, the failure count, and the date of the last send. Each pending notice is stored as a transient queue entry (a reference to the post, times, and attempts) that is deleted when it is sent, discarded, or after 24 hours; the message sent and Discord's response are not stored.
- What cannot be undone: a message that has already reached Discord is not edited or deleted by uStreamers (for example, if you later delete the post or the video becomes private); you can delete it from Discord. If Discord reports that the webhook no longer exists, or it fails several times in a row, the notice turns itself off.
- How it is deleted: from the app you can remove the configuration, which deletes the encrypted webhook and the pending notices. Turning off YouTube in News or unlinking Google discards pending notices but keeps the webhook configuration; deleting your account deletes it with the rest (after 14 days). You can also delete the webhook from Discord.
14.4. Embedded YouTube player
Tracks are played with the official YouTube player, without altering its video, audio, or ads. While it runs, YouTube may store cookies or local storage in the OBS browser or in the browser where the streamer opens the panel, and receive its IP address and technical data (see section 3). uStreamers does not access that information.
14.5. Browser extension: YouTube Music pause
If you are a streamer, turn on this optional feature in the extension, and grant the browser the permission for music.youtube.com, the extension pauses the player in that tab while a song request plays and resumes it afterwards. To do so it reads only whether the player is paused or playing. It does not read the title of what you are listening to, your account, your history, or any other content of the tab, and it sends no information from it to uStreamers; the extension only receives from our servers the notice that a request is playing. You can turn the feature off and remove the permission at any time from the extension or from the browser settings.
14.6. How to revoke access and what is deleted
- From uStreamers: in the mobile app, in the song request music settings, tap Unlink Google account. We revoke the access with Google, immediately delete your tokens and the stored data of your YouTube channel, and turn off background music and, if it was on, YouTube in News, with the deletion of imported content described in section 14.3. If Google cannot process the revocation at that moment, the tokens are still deleted from our servers.
- From Google: you can remove uStreamers' permission at any time from the permissions page of your Google account. From then on uStreamers can no longer read your account and background music pauses, asking you to link again. We also check once a day that the permission is still valid: if you removed it, YouTube in News is turned off and the imported posts and their records are deleted just as when you unlink (section 14.3), usually within 24 hours. For the linked account, the data we had already stored (your channel name and identifier and the now-invalid token) is deleted when you unlink from uStreamers or when your account is deleted; for that reason we recommend also unlinking from the app.
- When you delete your uStreamers account: after 14 days your Google tokens, your YouTube channel data, your channel's request queue and its history, your music settings, the imported YouTube in News data and posts, and the Discord notice configuration are deleted. In that case we do not carry out the revocation with Google, so we recommend unlinking before deleting the account or removing the permission from the Google page.
- You can also request deletion of this data by writing to legal@ustreamers.app.
14.7. Limited Use Disclosure
uStreamers' use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements. In particular: (a) we use that data only to provide the features described in this section; (b) we do not transfer it to third parties, except as necessary to provide those features, to comply with applicable law, or as part of a merger, acquisition, or sale of assets with prior notice; (c) we do not use or transfer it for advertising (including personalized or interest-based advertising) and we do not sell it; (d) we do not use it to develop, improve, or train artificial intelligence or machine learning models; and (e) no human reads it, except with your consent, for security purposes (for example, to investigate abuse), to comply with the law, or when it is aggregated and anonymized for internal operations.
15. Voiceover (Read-Aloud) and ElevenLabs Voices
The voiceover is a source that the streamer adds to OBS to read aloud chat messages, point redemptions, and alerts from their channel. By default it uses voices that are generated inside the streamer's own OBS browser: the text is not sent to any external service to be turned into speech. For this, the first time each voice is used, the OBS browser downloads the voice model from uStreamers storage (Cloudflare R2) and keeps it in its cache; that download includes no text or chat data. This section describes the optional case in which the streamer chooses ElevenLabs voices.
- The streamer's account: ElevenLabs voices only work if the streamer loads in the app the API key of their own ElevenLabs account. The account, plan, credits, and contract with ElevenLabs are the streamer's; in that service, ElevenLabs acts under the relationship it has with the streamer and not under uStreamers'. Without a key, or if the streamer does not choose an ElevenLabs voice, nothing is sent to ElevenLabs.
- What our servers do with the key: when it is saved we verify it with ElevenLabs, and afterwards we use it to list the account's voices (including cloned or created ones, if the streamer has any) and, if the key has permission, to show the usage for the period; and, for each line read with an ElevenLabs voice, to request from ElevenLabs a single-use pass that expires after 15 minutes (with an hourly cap per channel). No viewer messages or data are sent in those requests. The key is stored encrypted (AES-256), never returns in full to the app (only its last characters), and never leaves our servers: the voiceover source registered for the channel only receives those single-use passes, never the key.
- What goes to ElevenLabs, and from where: whenever the streamer has an ElevenLabs voice, the streamer's own OBS browser, not our servers, sends directly to ElevenLabs, with a single-use pass generated with the streamer's key, the text to be read, the voice identifier, the chosen model, and, if the streamer changed it, the speed. That text is the already cleaned chat message (or the text of a redemption or an alert, such as the names of those who follow or gift, messages, and reward titles) and, if the streamer has the say-the-name option on (it is on by default), the display name of the person who wrote it. ElevenLabs also receives the IP address of the streamer's computer and the technical data of the connection, and returns the audio. If you write in the chat of a channel whose streamer uses ElevenLabs voices, your message and display name may be sent to ElevenLabs in this way.
- What ElevenLabs does with that data: ElevenLabs decides. According to its Privacy Policy, it may process the texts and the generated audio, transfer them to the United States and, unless disabled in the account settings, use them to improve its models; use of the account is also governed by its Terms of Use. For questions or deletion requests about what ElevenLabs keeps, you must contact ElevenLabs. uStreamers cannot access or delete that data.
- What we store for this feature: the encrypted key, its last characters, and the date it was loaded; and, among the voiceover source settings, the model and voices the streamer chose. We do not store the texts read with ElevenLabs, the generated audio, or the usage (it is queried from ElevenLabs on the spot).
- How it is deleted: the streamer can remove the key at any time from the app, which deletes it immediately from our servers and makes the chosen ElevenLabs voices read with the local voices; it is also deleted when the account is deleted (14 days after the deletion request). We also recommend revoking it from ElevenLabs. If ElevenLabs fails, rejects the key, or credits run out, that line is read with the local voice, and nothing more is sent to ElevenLabs.
- Basis and limits: the sending takes place because the streamer decides to use their own ElevenLabs account to provide the voiceover service on their channel; the streamer is responsible for that account's configuration (including the credit cap and the use of data for training) and for their broadcast.
16. Spotify
If you are a streamer, you can choose to have your channel's song requests play through your Spotify instead of YouTube. This is optional: without that choice, no Spotify account or data is accessed. This section refers only to data obtained from Spotify. Spotify is a service of Spotify AB; uStreamers is not a Spotify service and is not endorsed by Spotify. Spotify and the Spotify logo are trademarks of Spotify AB.
16.1. What is accessed, what is stored, why, and for how long
- Your own Spotify app: uStreamers does not use a Spotify app of its own: you create one at developer.spotify.com with your account, you are its owner, and you enter only its Client ID into uStreamers. The connection uses OAuth 2.0 with PKCE, so we never ask for or store your app's Client Secret. We only operate with that app, which we do not share with other channels.
- What is accessed: when you connect, you authorize your Spotify account with three permissions: view your playback state (
user-read-playback-state), modify your playback (user-modify-playback-state), and view what you are listening to (user-read-currently-playing). With them we check which song is playing and on which device, and we add the next requested song to your Spotify queue, skip it, pause or resume it, and adjust the volume. When you connect we also read the identifier and display name of your account. To validate requests we ask Spotify, using your app, for public song data (title, artists, duration, cover, whether it is playable) and, if a viewer requests by name, we search for that text. We do not request permissions to read your library, playlists, listening history, or email. - What is stored: the Client ID (in the clear: it is not a secret), the refresh token (encrypted with AES-256), the identifier and display name of your Spotify account, the permissions granted, the connection date, and the code of the last connection error (for example, that the account is not Premium or that Spotify disabled your app). The short-lived access token, the device, and the playback state we query are kept only in server memory. For each request we store the song identifier, title, artists, duration, and cover link (shown from
i.scdn.co; we do not copy the image), together with the name and chat identifier of who requested it, the request status, and its timestamps. - Why: to validate the request, build your channel's queue, send the next song to your Spotify, show what is playing in the overlay, the dock, the chat and, if you enable it for your moderators or viewers, the extension (always with the Spotify brand and a link to the song on Spotify; the app only shows who requested the song, without Spotify data), and apply the rules you set (maximum length, blocked artists, approval). To do so we query your Spotify while your channel has active requests. We do not use this data for advertising or to build profiles.
- For how long: the connected Spotify app and account, until you disconnect them or your uStreamers account is deleted. Requests are automatically deleted 30 days after they are made, whether they have finished or not, and when the account is deleted (14 days after the deletion request), your channel's queue is erased along with its entire history.
16.2. How to revoke access and what is deleted
- From uStreamers: in the OBS control dock, in the Spotify section of Song requests, click Disconnect and delete the app. We immediately delete the Client ID, the tokens, and your Spotify account data, remove the Spotify requests from the queue, and your channel's requests go back to YouTube. uStreamers cannot tell Spotify to revoke the permission, so we also recommend removing it as described below.
- From Spotify: you can remove your app's access at any time from the apps page of your Spotify account (Remove access), and delete your app from the developer.spotify.com dashboard. When uStreamers detects that the permission is no longer valid or that Spotify disabled your app, it stops querying your Spotify, deletes the stored tokens and account data, removes the pending Spotify requests from the queue (with a notice in chat), switches your channel's requests back to YouTube, and asks you to reconnect.
- When you delete your uStreamers account: after 14 days, your stored Spotify app, tokens, account data, and your channel's request queue with its history are deleted. In that case we do not notify Spotify either, so we recommend disconnecting first or removing the permission from Spotify's page.
- You can also request deletion of this data by writing to legal@ustreamers.app.
17. Chat AI (uStreamers Plus+ and uStreamers MAX)
Chat AI is an optional uStreamers Plus+ and uStreamers MAX benefit that the streamer turns on from Studio, in the app. When it is on, the people the streamer allows can type in their Twitch or Kick chat the command the streamer chose (!ia by default) followed by a question, and @uStreamersBot answers in that chat with AI-generated text, marked with 🤖. uStreamers pays for the AI service: the streamer does not load their own keys.
- Provider: answers are generated and moderated with OpenAI's API services. For web search we use the Brave Search API and, when it is not available, the Perplexity Search API. If we change providers, we will update this section before the change.
- What is sent: for each question that passes the prior checks (channel with Plus+ or MAX, asker's level, wait times, and balance), the text of the question (up to 200 characters), the asker's display name (without symbols), the channel name and platform, the personality chosen by the streamer (up to 10 words), and the stream's category and title. The question and the answer are also sent to OpenAI's moderation service. Instead of the Twitch or Kick account identifier, an opaque code is sent, which lets the provider detect abuse by the same person without knowing who they are. Requests leave from our servers, so OpenAI does not receive your IP address. If you type the AI command in the chat of a channel that has it turned on, your message and display name are sent to OpenAI this way. Other chat messages are not sent.
- Testing from Studio: when the streamer tests the AI from the Try it tab, their test question, their channel name, and their personality are sent (without the stream's category or title) and, instead of a chat identifier, an opaque code derived from their uStreamers account. That test can also search the web and is deducted from the same balance.
- What the provider does with that data: under its API terms, OpenAI does not use data received through the API to train its models and keeps it for a limited period (up to 30 days) to detect abuse, unless legally required otherwise; we also ask it not to store conversations for later display. It processes the data in accordance with its Privacy Policy and may transfer it to the United States. For questions or requests about what OpenAI keeps, you can write to us and we will handle it with the provider.
- Web search: unless the streamer turned it off (it is on by default and is turned off from the same AI card), when a question needs recent information —a result, a news story, a date— the AI may look it up before answering. In that case only a short keyword query, written by the AI from the question, is sent to Brave or Perplexity, without the asker's display name or identifier and without links; before sending it, we run it through the moderation service. Requests leave from our servers, so the search engines do not receive your IP address. The results (title, excerpt, and date of each page) are used only for that answer: they are filtered, moderated, and not stored. Brave keeps a record of the queries made with our account for up to 90 days for billing and support (its privacy notice); Perplexity may keep and use the queries it receives under its API terms and its Privacy Policy. Both may process them in the United States.
- What we store: we do not store the text of questions or answers, nor write it to server logs; nor search queries or their results. We store the channel's settings and each period's usage of the channel's AI balance, which is shared by the Chat AI, its web search, and the other AI features that are enabled (amount in dollars and number of uses of each, and number of tokens), and the total number of searches per month for each search engine, with no texts or data about who asked. Wait times between questions are kept only in server memory.
- Purpose: only to generate the requested answer, filter inappropriate content, cap spending at the streamer's plan balance, and show them how much each feature used. We do not use this data for advertising, profiling, or training models.
- Minors: the AI answers under fixed rules designed for an audience that includes teenagers; the question and the answer go through moderation, answers include no links and do not mention other people, and the AI never asks for personal data. Do not use the feature to send your own or other people's personal data.
- How to turn it off and delete it: the streamer can turn it off, or turn off only web search, at any time from Studio; when their account is deleted (14 days after the deletion request) their settings and usage are deleted. If you do not want your messages sent to the provider, do not use the AI command. Questions: legal@ustreamers.app.
18. Linked Discord account
You can link your Discord account to your uStreamers account. It is optional and it is a linked account, not a way to sign in. It uses Discord's official sign-in (OAuth 2.0): we never see your Discord password. uStreamers is not a Discord service and is not endorsed by Discord.
- What is stored: your Discord identifier, username, display name, avatar code (the image is loaded from Discord; we do not copy it), the access and refresh tokens (encrypted with AES-256), the permissions granted, and the date you linked it. If you turn on "Show on my public profile", your Discord username and avatar appear on your profile; it is off by default.
- Why: to show your Discord on your profile if you choose; to check with Discord that you joined a channel's server so we can give you the points for the "Join the Discord" mission (only your membership in that server is checked); to let a streamer pick, from Discord's own screen, the channel for their announcements and verify that they manage their server; and, in the future, to assign roles if the streamer installs the uStreamers bot. We do not use this data for advertising or profiling, and we do not sell it.
- What is looked at but not stored: when a streamer verifies their server, we read the list of servers on their Discord account with their permissions, only to check that they manage the one in their invitation; that list is not stored. We do not read your messages or direct messages.
- How it is deleted: by unlinking from uStreamers (we revoke the access at Discord and delete the record); by removing uStreamers in Discord, under User Settings → Authorized Apps (Discord notifies us and we unlink your account); or by deleting your uStreamers account, 14 days after the request. Points already given by the mission stay in your channel points history.
- Webhooks created by Discord: when a streamer picks the channel from Discord's screen, Discord creates the webhook in their server and hands it to us; it is stored encrypted and never travels in full to the app, just like one pasted by hand. If the streamer replaces it with another, we delete the old one at Discord.
19. Giveaways and tournaments
When you take part in a channel's giveaway or tournament, from the Twitch or Kick chat or from the app, we process this data so the streamer can run it.
- What is stored: your display name, the platform and identifier of the account you took part with (and your uStreamers account, if linked), your roles in that chat when you entered (subscriber, VIP or moderator), the number you guessed if applicable, your votes in a tournament, and the date. If you win, up to five messages you write in the chat while confirming are also stored, to show them on screen.
- What is checked but not stored: if the streamer requires a minimum follow or account age, Twitch is asked only about the person who was drawn, and the answer is kept in the server's memory for a few minutes, without being stored in the database. This check is not done on Kick. For the "active users" mode, the server keeps in memory who wrote in the chat during the last two hours at most; this is not stored in the database.
- Who sees it: the channel's overlay and viewers see the names and platform of the latest entries and of the winners. The full list of entries is visible to the streamer and their moderators, who can export it. In a verifiable giveaway, the list of participants (display name, platform and weight of each one) is available to signed-in users so they can check the result.
- How long: entries are deleted 30 days after the giveaway ends, and the giveaway with its winners after 180 days. Tournament votes are deleted after 7 days and the tournament after 180. If you delete your account, your name is replaced in other channels' results so they are not altered. We do not use this data for advertising or profiling, and we do not sell it.
20. Polls
The streamer or their moderators can open a poll that is published at the same time on Twitch, on Kick and in the app, and whose votes are added up. We process this data so the poll works.
- What is stored: for each poll, the question, the options, the duration, who created it, which platforms it was opened on, and the result. If you vote from the app, your uStreamers account, the option you chose and the date. To vote from the app you need a linked Twitch or Kick account.
- Votes on Twitch and Kick: those platforms only tell us how many votes each option has, not who voted, so we neither receive nor store who voted there. To open the poll we send them the question and the options: to Twitch with the streamer's account and to Kick through @uStreamersBot.
- Who sees it: the channel's overlay, the streamer, their moderators and viewers see only the totals for each option (and, if the streamer chooses, how many votes came from each platform). Nobody sees what each person voted: the app shows you only your own vote.
- How long: votes cast in the app are deleted 7 days after the poll ends, and only the total for each option remains. The poll, with its result, is deleted after 180 days. If you delete your account, your votes are deleted and, if you are a streamer, your polls; those you created as a moderator in someone else's channel remain, without your name. We do not use this data for advertising or profiling, and we do not sell it.
21. Boosts
Anyone with a paid uStreamers Plus+ or uStreamers MAX subscription receives boosts to give to streamers (section 8.4 of the Terms of Service). We process this data to make the feature work.
- What is stored: for each boost, who gave it and to which streamer, the giver's plan, the AI balance and boost points it added, the Google Play purchase it came from (its identifier and order number), the date and, if it was reversed, when and for what reason (refund of the purchase or a decision by uStreamers). For each streamer, the number of boosts received, their boost points, their received AI balance and, if it became negative, since when, and their redemptions (plan, points used, days granted, and dates). For the person who gives boosts, how many purchases they gave boosts with were refunded and whether their ability to give boosts was removed.
- What for: adding and deducting the streamer's AI balance and boost points, letting them redeem those points, reversing boosts whose purchases are refunded, and preventing abuse of refunds. We do not use this data for advertising or to build profiles, and we do not sell it.
- Who sees it: the streamer who receives a boost sees the name and profile picture of the person who gave it in the notification, in the app, and in their channel activity, and that name may appear in their live stream through the overlay alert, visible to their audience. The total number of boosts a streamer has received is shown on their public profile. The notice of a reversed boost tells the streamer the date and amount, but not who requested the refund.
- How long: boosts and redemptions are kept for as long as they are needed for the streamer's balance and points and to reverse boosts; the notice in the channel activity is deleted together with the rest of that activity (section 10). If the account of someone who gave boosts is deleted, the boosts they gave are kept, because they are part of the streamer's balance, but they no longer show their name or picture. If the streamer's account is deleted, their received AI balance and boost points can no longer be used, and the boost and redemption records remain linked to their account's anonymized identifier.
22. Plan gifts
From the Android app, uStreamers Plus+ or uStreamers MAX can be given to another user as a gift (section 8.5 of the Terms of Service). We process this data to process the gift and to protect you from unwanted gifts.
- What is stored: what is listed in section 2: who gave the gift and to whom, the plan and duration, whether it was anonymous, the message, where it was given from, the Google Play purchase receipt, the gift's status with its dates, and how it was applied. If the gift moved the charge date of a subscription, also the previous and new expiry dates and which subscription it was.
- Message moderation: if the person giving the gift writes a message, before the purchase is created we check that it contains no links and send only its text, with no names or identifiers, to OpenAI's moderation service, which processes it as described in section 17. If the moderation service is unavailable, the gift can be sent without a message, but not with one.
- Who sees it: the person receiving the gift sees the plan, the duration, the message, and the name and profile picture of the person who gave it, or "Someone" if it is anonymous. An anonymous gift is anonymous to the person receiving it and to the chat, not to uStreamers: we always store who bought it, for moderation, refunds, and fraud prevention, and a moderator sees it, together with the message, if the gift is reported. The person who gave the gift sees who they gave it to and the gift's status, but a declined gift and an expired one look the same to them, as refunded. If the gift is given from a viewer's card inside a channel that has "Announce plan gifts" turned on, @uStreamersBot posts in that channel's Twitch or Kick chat the name of the person receiving it, the plan, the duration, and the name of the person who gave it (or "Someone"), before the gift is accepted; Twitch or Kick receive that message and it is subject to their policies. So as not to reveal who blocked whom, when a gift cannot be given the app does not say whether it is because of a block or because of the "Receive plan gifts" setting.
- Notifications: the person receiving a gift gets a push notification with the plan, the duration, and the name of the person who gave it (no name if it is anonymous), through the services listed in section 9, and another one if the gift expires without an answer.
- Legal basis and purpose: we process the gift to perform the contract with the person who buys it and with the person who accepts it. Message moderation, recording who bought an anonymous gift, and mandatory acceptance are based on our legitimate interest and our duty to protect users, including minors, from unwanted contact and gifts. We do not use this data for advertising or to build profiles, and we do not sell it.
- How to avoid it: you can turn off "Receive plan gifts" in Settings → Plan gifts (pending gifts can still be accepted or declined), block a person so they cannot give you gifts, decline any gift, and report its message. If you are a streamer, you can turn off "Announce plan gifts" in the @uStreamersBot settings.
- How long: the gift record, with its message, and its purchase receipt are kept for as long as they are needed to prove the charge, apply, refund, or void the gift, handle claims, and prevent fraud, including after the account is deleted, linked to the anonymized identifier. If the account of someone with pending gifts is deleted, when the deletion becomes final we ask Google Play to refund those gifts to the people who bought them. If the account of someone who gave gifts is deleted, their gifts remain valid and the people who received them see them as anonymous.
23. AI drawings and characters
If a streamer with uStreamers Plus+ or uStreamers MAX turns on AI drawings (section 4.11 of the Terms of Service), their community can request drawings and characters that are shown on their stream. We process this data to generate, moderate and show them.
- What is sent to the AI provider (OpenAI): the request text (3 to 100 characters) and the style the streamer chose, to check the request with its moderation service, generate the image and check the generated image. We do not send the requester's name; for images generated from text, an opaque code derived from their account is also sent, which lets the provider detect abuse without knowing who they are. Requests leave from our servers, so OpenAI does not receive your IP address. OpenAI processes this data under its Privacy Policy.
- Character from a photo (streamer only): the photo is processed in memory and turned into a new image, without the original file's data (such as location). It is sent to OpenAI to check it with its moderation service, to verify that it does not show a real person (a query we ask OpenAI not to store) and to generate the character. We do not keep the photo on our servers or in our logs.
- What we store: for each request, the channel, the platform, the identifier and display name of the requester (and their uStreamers account, if any), the request text, the style, the status (pending review, approved, shown or rejected), who reviewed it and the cost. For each character, the image, its name and its settings and, if a viewer created it, their platform, identifier and display name.
- Who sees it: the streamer and their moderators see each request, with the requester's name, to approve or reject it. Approved drawings and characters are shown on the streamer's stream, and viewers' characters carry their name and show what they write in the chat in a speech bubble; those messages are shown live and are not stored for this feature. Images are served from public Cloudflare R2 addresses: anyone with the link can see them while they exist.
- How long: the request text is deleted when the drawing finishes its cycle (shown, rejected, expired or failed). The drawing's image is deleted once it has been shown or rejected, and within 2 hours at the latest if left unused; the rest of the request record is deleted after 48 hours. Unsaved character drafts expire after 30 minutes. Characters created by viewers with the channel's own system are deleted after 60 days without use (also if the viewer deletes their account), pets are released as explained in section 25, and each viewer's character choice after 90 days. The streamer's characters are kept until they delete them or their account, and deleting the account deletes all drawings and characters of their channel.
- Purpose: only to generate, moderate and show what was requested, and to cap the channel's spending. We do not use this data for advertising, profiling or model training.
24. My files (streamer files for their alerts)
If you are a streamer and upload files to My files (section 4.12 of the Terms of Service), we process this data to store them and show them in your alerts.
- What is stored: each file (image, GIF, sound or video), its name, type and size, a fingerprint of its content (SHA-256) and the date. Files are stored in Cloudflare R2 and served from media.ustreamers.app at public addresses, so OBS can show them on your stream.
- Checks: we verify each file's actual type and compare its fingerprint with those of removed files. Images go through Cloudflare's CSAM scanning (section 9); sounds and videos do not.
- Who sees it: your stream's audience, when an alert shows them, and anyone with a file's link while it exists. The uStreamers moderation team can see your files to review reports or violations.
- How long: until you delete them. If your plan is downgraded or ends, they are not deleted. Deleting your account deletes all of them when the deletion becomes final (14 days after the request). If we remove a file for violating the Terms, we keep a copy in private storage for up to one (1) year from removal, even if the account is deleted afterwards, based on our legitimate interest and legal duty to audit the action, resolve disputes and respond to lawful authority requests; its fingerprint stays on the list of removed files so it cannot be uploaded again.
25. Viewers' pets
If you create a pet in a channel with uStreamers Plus+ or uStreamers MAX (section 4.13 of the Terms of Service), we process this data to generate, moderate, show and release it. What is sent to the AI provider (OpenAI) when it is generated is explained in section 23.
- What we store: for each pet, the image, its name (the one you asked for when creating it or, if you asked for none, your username), its motion, temperament and species settings, the name style if you are on Plus+ or MAX, the channel where it was born, the system it was born with, your identity on the platform (platform, identifier and display name) and the last time you spoke in the chat of the channel where it was born. For that last time we store only the date and time, not what you wrote. If the pet visits another channel, we also store that channel's decision (pending, approved or rejected).
- Who sees it with the uStreamers system: pets, their name and the channel where they were born are shown on your public profile, only to people who are logged in to uStreamers, as long as your uStreamers account is linked to that platform identity. You can hide them by turning off "Show my pets on my profile" in your profile: they keep existing and showing on the channel's stage, but not on your profile. In addition, the channel where they were born lists them, with the name of whoever created them, in the channel's pet list (in the app and in the extension), and they appear with their name on the streamer's stream.
- Who sees it with the channel's own system: pets created with the channel's own system never leave that channel: they do not appear on any profile, do not visit other channels and are only seen in the channel where they were born.
- Visits: if the streamer of another channel allows visits, your pet may pass through that channel. Its host streamer and their moderators see, in the visits queue, the pet, its name, your username and the channel where it was born, and whether that channel's moderators reviewed it. The host's decision is stored per channel and per pet so it is not asked again.
- How long: until the pet is released. It is released when you do not speak in the chat of the channel where it was born for the period that channel sets (1 to 90 days; 30 by default), when you release it from your profile, or when the streamer deletes their account. With the channel's own system it is deleted after 60 days without use. On release, the image, the pet's record, its place on profiles and stages, and the visit decisions are deleted. If you unlink your account from the platform, your pets stop showing on your profile, but they are still released for inactivity like the others.
- If you release a pet yourself: to apply the limit of one pet per channel (section 4.13 of the Terms), we keep the channel, your platform identity (platform and identifier), and the date on which the pet would have been released for inactivity on its own. Until that date you cannot create another one in that channel; once it passes, the record is deleted.
- Purpose: only to generate, moderate, show and release the pet, and to apply each plan's limits. We rely on performing the service you request and on our legitimate interest in moderating what is shown on streams. We do not use this data for advertising or profiling, and we do not sell it.
26. Changes to this Policy
We may update this Privacy Policy to reflect regulatory or Service changes. Material changes will be communicated within the app before taking effect.
27. Contact
For questions about this Privacy Policy, or to exercise your rights, write to us at legal@ustreamers.app.