STREAM HEARTS / PRIVACY

Privacy Policy

Last updated: 2026-10-12 · First-release connections, local creations and external request paths clarified

Information we use and how it is stored, retained and deleted.

Read the Korean original

1. Scope and contact

Stream Hearts is a production brand operated by individual developer 이정희 (Lee Jeong-hui). Stream Hearts is a Windows application for livestream creators. This policy explains information handled through the application's stream connections and fan participation features, its introduction website and official email support.

Operator and person responsible for personal information: 이정희 (Lee Jeong-hui)

Inquiries and privacy requests: streamhearts.contact@gmail.com

Website: https://streamhearts.com/

Privacy policy: https://streamhearts.com/privacy

Terms of use: https://streamhearts.com/terms

2. Purposes of use

Information connects the account and broadcast chosen by the streamer and turns received chat into fan-character actions, game participation and broadcast output. Platform identifiers distinguish participants with the same nickname and participants from different platforms.

Free points, missions, balances and change histories, manual adjustments by the streamer, and backup/import features manage participation results and progress. Participation time is a game record calculated from the first and most recent chat activity; it is not measured video watch time or YouTube API viewing statistics. Current chat polls are free and do not deduct points. Donation-amount-linked reactions are on hold.

Character gender, affinity and friendships in the playground are generated game values. They are not used to infer a viewer's actual gender or relationships. Training attributes, fishing records and mineral contributions support gameplay and streamer administration. Mineral contributions are separate from a fan's personal balance and ordinary chat points.

Website settings retain the theme and music volume. Email materials support replies and necessary follow-up assistance. Support materials are not additionally used for advertising, sale, general AI training or public case studies.

3. Information handled

  • Streamer connection: platform and channel identifiers, channel name, authorization tokens, token expiry and verification times.
  • Selected broadcast: broadcast identifier and title, and information needed to connect its chat.
  • Chat: platform user identifiers, nicknames, message content and identifiers, and posting/receipt times.
  • Fan participation: fan identification, character assignments, game participation, orders and free poll records.
  • Points and missions: fan accounts, balances, earning statistics, participation time calculated from chat, latest receipt times, mission achievements, and the type, amount, resulting balance, reason and time of each change, including manual adjustments.
  • Playground: game-generated gender, affinity and friendships, care status, strength, agility and stamina, counts of three fish types and training cooldowns. These are linked to the fan's identification and last actual chat time. Ongoing training/fishing, unconfirmed duel choices and short-lived effects do not resume from saved records after restart.
  • Sea inventory: shared quantities of six item types are stored separately for broadcast and practice. No recipient ID, nickname or recipient list is attached. Gifts that change a fan's attributes update that fan's existing record.
  • Mineral contributions: one-way fan account identifiers, nicknames, contributions by mine/stage, platform/streamer distinction and last actual chat time. These are administrative statistics.
  • Materials entered or created by users: nickname assignments, block settings, presets, characters, artwork, music, fonts, schedules, notes, recordings, layouts, sound/language settings and backup/export files. Poll-card layouts are stored separately from participation records.
  • Audio for broadcast output: samples, playback format and synchronization information for music registered in the rhythm game. This path is for output on the PC; it does not collect microphone input, relay music externally or create a separate audio recording file.
  • Website and support: browser theme/volume settings, hosting-service visitor statistics, and an inquirer's email address, message and voluntarily supplied version, problem details and attachments.

Daily notes and timed events in the monthly calendar, along with quick-video projects, previews and exports, are included in locally managed creator files and settings. Enabling OBS visibility can display your calendar content on stream; review it before showing it.

4. Platform connections and permissions

YouTube features use YouTube API Services. The requested youtube.readonly permission identifies the streamer's channel and broadcast and receives the selected broadcast's chat. No additional permission to upload videos or post comments is requested. Please also read Google's privacy policy: https://policies.google.com/privacy

Twitch chat connections use user:read:chat. Users choosing a connection authorize it on the platform's official authentication screen. Do not enter platform passwords in Stream Hearts or send them to support.

YouTube authorization, token refresh, API and live-chat requests, and Twitch authorization, token refresh, user verification and chat connections run from the PC to the respective platform. Information is exchanged with the official platform to establish the connection.

The first release being prepared supports YouTube and Twitch chat connections. CHZZK and SOOP are excluded from that release and remain under separate inquiry and review. No future support date has been set.

Displaying an emote image in chat requests that image from the platform or its image CDN. The image provider may process connection information such as the requesting IP address. Locally managed calendars, notes and recording files are separate from platform authorization, chat and image requests.

Separate processing in older versions with CHZZK connections

The following applies to people who actually connected CHZZK in an older version that offered it. It does not describe an authentication relay used by the first release, which is limited to YouTube and Twitch.

Older CHZZK connections use an authentication relay on Cloudflare for login and token refresh. Approved access and refresh tokens are encrypted with AES-GCM in relay storage. Live CHZZK chat connects directly from the PC to Naver. The reviewed relay has no feature for uploading fan chat, images or recording files.

In the relay implementation, temporary login and exchange records expire after 10 minutes. Authentication sessions expire after 30 days, and a token refresh extends the session. Logout requests delete the corresponding session. A cleanup function for expired logins, sessions and rate-limit records is implemented. These expiration periods do not confirm that cleanup has run and completed physical deletion in production. Please contact the official support email if you need confirmation of deletion for an older connection.

The relay uses an IP-derived hash identifier for request limits. See Cloudflare’s privacy policy for the provider’s information processing.

Cloudflare Privacy Policy

5. Storage and protection

Application settings and participation records are stored in the StreamHearts folder within Windows user data, including the points database, poll participation, restaurant/playground/mine records and layouts. Login information is encrypted using Windows secure storage. If that facility is unavailable, plain-text storage is not used as a substitute. General settings, the points database, compressed backups and exports are not all encrypted in that same way.

Up to 120 displayed chat entries remain in memory. The display-lifetime setting controls cleanup; setting it to 0 disables time-based display expiry. This display history is not saved as a raw chat log file. Fan state and participation results are stored separately. Point deduplication uses a duplicate-detection value rather than the full original message.

Editing locks for the preview chat, timer, clock and memo are stored in the browser storage of that PC preview. They are editing settings and do not stop chat receipt or time progression.

Rhythm-game audio is passed through a bounded in-memory queue for the PC's internal broadcast connection and cleared when hidden, stopped or closed. User-registered originals and exported files are separate from this queue.

How Google user data and sensitive credentials are protected

External connections: Google sign-in, authorization-code exchange, token refresh, revocation and YouTube API requests use official HTTPS endpoints. The YouTube live-chat stream uses TLS. Google sign-in uses a state value and PKCE; authorization responses with a mismatched state or expired request are rejected.

Credentials stored on the PC: Connection credentials, including login tokens, are encrypted through Electron safeStorage using Windows secure storage. If encryption is unavailable, the application does not fall back to plain-text storage. This does not mean that all general settings, points records, external backups or exported files are encrypted.

Local access: The application server listens only on this PC’s loopback address (127.0.0.1). It checks request Host and Origin and separates administrator-authenticated controls from output protected by a separate output access key. Local HTTP connections are not described as HTTPS. These controls do not guarantee protection against every person or program with access to the PC; please protect your Windows account, output URLs and backup files.

Stopping access, revocation and deletion: The application features in sections 8–9 and Google account permission settings allow disconnection, revocation and record-deletion requests. Remote revocation and local deletion results are shown separately. Failures, offline operation, a fully closed app and external copies remain subject to the limits in sections 6, 8 and 9. Do not send passwords, verification codes or login tokens to support.

6. Retention and cleanup

The application applies these criteria:

  • Point accounts: 30 days from the last actual chat receipt. Manual adjustments or backup imports alone do not renew that period.
  • Point changes: 30 days from each change's original time. New chat does not rewrite earlier change times. Duplicate-detection records separately use a one-day period and a count limit.
  • Poll participation: 30 days from actual participation. A newly received choice updates its participation time. Poll titles, choices, summaries and card layouts are separate.
  • Restaurant/playground fan state, attributes, fish and relationship records, and mineral contributions: 30 days from the last actual chat receipt. Removing one fan's records does not necessarily remove the shared mine balance, facilities/unlocks or an entire inventory without identifying information.
  • Login information: 30 days from last verification. Older records lacking a verification time use the time the cleanup rule was introduced.
  • Identifiers for deletion retries: discarded immediately on success; following failure, cleaned up using a maximum of seven days from the deletion marker. Removing that identifier is different from successfully deleting remaining files.
  • User-entered settings, creations and external backups/exports: not all automatically removed when one fan's records are deleted. Separate retention/deletion criteria apply if they contain personal information received through an API.
  • Website theme/volume: removed when the browser's site data is cleared.
  • General support emails and follow-up records: deleted within 90 days after the issue is resolved. Diagnostic attachments containing personal information are deleted earlier, or identifying details removed, when the necessary handling ends. Shorter rules for platform API data and withdrawal/deletion requests take priority. Where separate retention is needed, its basis and duration are explained.

Cleanup criteria are checked at startup and hourly while the app runs. No separate cleanup service runs while it is fully closed; overdue periods are checked on the next run. When platform permission is withdrawn, local cleanup starts when the app detects lost authorization. It cannot immediately detect this while closed or offline. These execution methods and retention criteria do not mean physical deletion finishes in every situation while the app is closed.

Platform-specific cutoff times prevent deleted records from returning through old backups. These contain no individual viewer IDs and remain in application data. Restoration restrictions depend on preserving the saved cutoff and are distinct from retention of retry identifiers.

7. Information shown in broadcasts

Nicknames, chat, characters, game state and poll results selected for display by the streamer may be visible to viewers. Streamers should explain participation and visibility and check the actual broadcast output.

Playground attributes, fish counts and current activity may appear on screen. Unconfirmed duel choices are not disclosed; character attack effects appear after the result. Internal privacy-management identifiers and administrator selections are separate from broadcast display. Fan-specific mineral-contribution statistics are administrative and do not appear in the public mine scene.

Users choose whether to share recordings or exported files. Copies already published or sent externally cannot be recalled simply by deleting records in the application.

Who receives or can see Google user data

Channel, broadcast and chat information obtained through YouTube API Services, and authorization information, follow the paths below. These recipients and purposes are distinct; this is not a claim that no information leaves the PC or that no third party receives information.

  • The streamer’s Windows PC — The app processes the selected channel, broadcast, chat and participation records. Sections 3–6 explain credentials, storage, protection and retention. Records managed on the streamer’s PC are not automatically sent to the website operator.
  • Google / YouTube — The PC communicates directly with official Google authorization, token and revocation services and YouTube API servers. It sends the authorization codes or tokens required for the connection, selected broadcast information and API requests, and receives channel, broadcast and chat information. Twitch connections communicate separately with Twitch’s official services.
  • Streamer-selected OBS, broadcast services and viewers — Nicknames, chat, characters, game state and poll results chosen for output may pass through OBS or another PC output tool to the broadcast service and viewers. Login tokens are not broadcast display items. Broadcasts, recordings and shared copies may remain with the services and viewers selected by the streamer.
  • Official email support and Gmail — The app does not automatically send API chat or credentials to support email. If users voluntarily include chat, nicknames or diagnostic attachments in an inquiry, those materials are transmitted and stored through the operator and Gmail provider Google LLC. Send only what is needed to diagnose the problem and mask unnecessary identifying details. Sections 6 and 11 distinguish retention and deletion responsibilities.
  • Public website hosting: OpenAI ChatGPT Sites — The public introduction website is not an OAuth relay or chat-receiving server for the Windows app. It has no feature that transfers the app’s Google API chat, channel records or login tokens to the website, and does not automatically pass them to the hosting provider. Website visit information and hosting statistics are separate, as explained in sections 10–11.

Limits on other uses and disclosure of Google user data

Stream Hearts does not sell Google API user data or provide it to data brokers. It also does not use or provide that data for personalized advertising, ad targeting, profiling real people, or training general-purpose AI or machine-learning models. These prohibited purposes are distinct from the app features, user-selected broadcast output and necessary support paths described above. Please also review the Limited Use requirements of the Google API Services User Data Policy.

8. Disconnection and withdrawal

Turning off a connection stops chat receipt. Disconnecting, deleting saved login information, withdrawing platform access and deleting fan participation records have different scopes.

In the app's privacy and stored-records screen, users can choose to revoke platform access or revoke access and delete records. Check the remote YouTube/Twitch result separately from the PC cleanup result. Remote failure or pending processing is not reported as completed withdrawal.

Platform account settings also allow access to be reviewed or withdrawn.

Google account connections: https://myaccount.google.com/connections

Google security permissions: https://security.google.com/settings/security/permissions

Twitch connections: https://www.twitch.tv/settings/connections

Deleting Stream Hearts records does not delete chat or accounts held by YouTube or Twitch. Follow the respective platform's procedures for information held there.

9. Deletion and backups

Select the platform and streamer/viewer ID and review the displayed target and scope before acting. Different fans are not treated as one person solely because they share a nickname. Users can confirm or cancel.

Deletion covers the selected current data, application-managed internal backups and known interrupted temporary files. Accounts outside the scope remain. Importing an old points backup for the same platform may also exclude other fans' records preceding the deletion cutoff. Check the displayed exclusion count and reasons before restoring. Changes in scope after confirmation require another confirmation.

Restoration restrictions apply while the application's saved deletion cutoff remains intact. Replacing or removing all application data or the cutoff file with an earlier copy means that restriction cannot be guaranteed. Externally exported copies require separate cleanup.

Damaged files, older records with unidentifiable owners, pending deletion or write failures are not treated as complete deletion. Review the remaining-data notice and contact official support. A deletion marker or expiry of retry identifiers does not prove file deletion. If remote revocation fails because of network problems, login information needed to retry may remain; remote withdrawal and local file deletion must be checked separately.

Externally exported/copied backups, manually entered assignments/block lists/presets, artwork, schedules and recordings are not all deleted by a fan-specific deletion. External copies containing personal information also need handling according to their content and who holds them.

Clearing the broadcast stage or clearing tests removes that stage's installations/layouts and temporary effects. It is different from deleting all personal information, revoking an account or discarding backups.

Records held on a streamer's PC may need to be removed by that streamer using the app's procedure. Support information held by the operator is handled separately.

10. Website and browser settings

This introduction website has no signup/login, file upload, inquiry-entry or direct payment form. Platform connections are chosen within the Windows application.

The selected light/dark theme and music volume are saved in the browser. They contain no platform login information or chat and are not sent to a server by the website code. Clearing this site's browser data resets them. Restricted browser storage may prevent settings from being retained for the next visit.

The website is hosted with OpenAI's ChatGPT Sites. The hosting provider is involved in hosting, maintenance, support and visitor statistics, separately from browser-only display settings.

11. Email and external services

Official email: streamhearts.contact@gmail.com. Do not send passwords, authentication codes, login tokens or complete payment-card information. Inquiry materials are transmitted and stored through Gmail.

Gmail uses Google LLC as the provider under Google's general service terms. Google may process information on servers worldwide. Retention for operator-managed support information is separate from the provider's internal logs and backups. Google's processing/deletion information: https://policies.google.com/privacy , https://policies.google.com/technologies/retention

Support cleanup includes received emails, sent replies, trash and separately downloaded/copied attachments. Moving information to trash is different from permanent deletion. This procedure does not immediately delete all internal logs/backups held by the email provider.

The website uses OpenAI's ChatGPT Sites. Under the standard contract for individual users in Korea, the contracting entity is OpenAI OpCo, LLC. The consumer Sites data-processing addendum applies to hosting, maintenance and support of personal data collected on published sites on the operator's behalf. Conversations/files used to create the site are distinct from hosting of published-site visitor data.

Under the addendum, processing lasts for the hosting contract and the period needed to meet obligations such as deletion after termination. On termination, data and existing copies are returned or deleted according to the operator's instructions; legally required retention is protected separately with use restricted. These contractual criteria do not establish actual retention days for each access log, statistic or backup.

The addendum provides for reasonable provider assistance with requests such as access, correction and deletion. Hosting-related inquiries can also be sent to official support. This does not guarantee that the operator can directly inspect or immediately delete all provider-held information.

YouTube/Twitch privacy notices also apply when connecting to those platforms. For Steam/STOVE purchase, payment and refund information, consult the store used for the purchase.

12. Exercising your rights

Requests for access, correction, deletion, suspension of processing or withdrawal of consent can be sent to streamhearts.contact@gmail.com. The operator, 이정희 (Lee Jeong-hui), uses the minimum necessary information to confirm the requested records and the requester's identity or lawful representative status. Passwords/login tokens or unnecessary identity documents are not routinely requested. The holder of support materials or fan records on a streamer's PC is identified when explaining how the request can be handled.

Requests are handled without delay under applicable law and platform rules. The applicable ten-day legal standard is followed for notifying results of access, correction, deletion or processing-suspension requests; shorter deletion/withdrawal requirements take priority. If handling is restricted or further verification is needed, the reason, required actions and how to object are explained. Objections to results may be sent to the same official email.

13. Related notices and changes

YouTube terms: https://www.youtube.com/t/terms

Google privacy policy: https://policies.google.com/privacy

Google API Services User Data Policy: https://developers.google.com/terms/api-services-user-data-policy

YouTube API developer policies: https://developers.google.com/youtube/terms/developer-policies

Twitch privacy notice: https://legal.twitch.com/en/legal/privacy-notice/

Twitch terms: https://legal.twitch.com/en/legal/terms-of-service/

Changes to purposes, information categories, retention or sharing are reflected in this policy and the app notice with an effective date. Changes requiring separate consent are subject to a consent procedure.