Last Updated: 5 May 2026
This Privacy Policy explains what the Twitch Mini Player — Multi-Stream, Clips, VODs, Emotes Chrome extension ("the extension") does with your information.
It is written in plain language. If something is unclear, please contact thomas.doganay@gmail.com.
The extension is built and operated by an independent developer. It is not affiliated with, endorsed by, or sponsored by Twitch Interactive, Inc. or Amazon. "Twitch" is a trademark of Twitch Interactive, Inc.
In this policy, "we" / "us" refers to the developer of the extension.
The extension is a viewer tool for Twitch. After you sign in with your Twitch account, it can:
You stay in control: signing in, enabling notifications, pinning streamers, and saving items are all explicit actions you take.
When you use the extension, the following information is involved.
When you complete the Twitch sign-in flow, our backend exchanges the Twitch authorization code for an access token, then asks Twitch for your basic identity. The extension then stores:
user:read:email scope,
so in current versions Twitch normally returns null
here, but the field exists in the data shape returned by Twitch.
While you are signed in, the extension uses your access token to ask Twitch (through our backend) for things like your followed live streams, a channel's clips and VODs, channel schedule, channel emotes, search results, and top games / streams. The extension does not request any other personal information from Twitch.
The only Twitch OAuth scope the extension requests is user:read:follows, which is the scope Twitch requires to list the channels you follow that are currently live.
The extension reads only what it needs to work:
parent= query parameter) to allow embedding. The
extension does not read page text, form fields, page DOM content, or
your browsing history.
We do not ask for your name, address, phone number, payment details, location, or any other identifier beyond what Twitch returns about your own account.
We use the information described above only to:
We do not sell your personal information. We do not use it for advertising, profiling, or tracking, and we do not run analytics, telemetry, or third-party tracking SDKs in the extension.
The extension uses Twitch's official Authorization Code OAuth flow:
chrome.identity.launchWebAuthFlow. You sign in directly
to Twitch — the extension never sees your Twitch password.
chromiumapp.org
URL with a short-lived authorization code.
code with Twitch for an
access token (and a refresh token if Twitch returns one). The Twitch
client secret lives only on the backend.
/helix/users endpoint once to
identify you, then returns the access token, refresh token (if any),
and your basic profile to the extension.
Scope requested:
user:read:follows only.
If your access token expires, the extension uses the refresh token (if available) to ask the backend to get a new one, transparently. If that fails or returns 401, the extension clears your session locally and asks you to sign in again.
When you sign out, the extension calls Twitch's revoke endpoint (through our backend) on a best-effort basis, then deletes the saved token, refresh token, and profile from local storage.
All app data lives on your own device, in your browser. Specifically:
session. This
object contains accessToken, refreshToken
(if Twitch returned one), expiresAt, and
user (id, login, displayName, profileImageUrl, and
email if Twitch returned it). This is not synced across devices.
enabled, pinnedOnly,
includeTitle, includeCategory,
baselineDone, lastLiveIds,
lastSentAt, lastCheckAt,
lastError, reconnectNotifiedAt).
This data is not encrypted at rest beyond the standard protection your browser and operating system already apply to extension storage and IndexedDB. We do not add any extra encryption layer.
This data is not synced to your other devices. We do not use Chrome sync storage.
You can clear all of it at any time — see "Your Choices and Controls".
The extension does not call Twitch directly. Instead, it calls our
small backend (twitch-extinction-server), which:
code with Twitch for an
access token, using the Twitch client secret (which only the backend
has).
/helix/users, /helix/streams,
/helix/streams/followed, /helix/clips,
/helix/schedule, /helix/videos,
/helix/chat/emotes, /helix/games/top,
/helix/search/channels) and returns the response.
The backend does not use a database. Based on the
current code, it has no persistent server-side storage of user
profiles, tokens, saved items, search history, or app activity. Each
request is handled in memory and the response is returned to the
extension. The Twitch access token is included in your request as a
Bearer header and is only used to make the matching
Twitch call; it is not written to disk.
The backend does emit operational JSON logs
for each HTTP request, containing the request method, path, status
code, and duration. The OAuth controller additionally logs whether a
code and state were present and the Twitch
login of the user who just signed in (so we can debug failed sign-ins).
These logs do not contain access tokens, refresh tokens, email
addresses, saved items, or your search queries.
Like most hosted web services, our hosting provider may also process standard technical request data (such as IP addresses, request times, and HTTP status codes) for security, abuse prevention, and reliability. We do not combine that data with anything else or use it to build a profile of you.
Go-live notifications are off by default. If you turn them on:
chrome.alarms API to wake the
background service worker about every 5 minutes.
All notification settings and bookkeeping (the last-seen live IDs, the last time we alerted for each channel, the last error, etc.) are stored only in local IndexedDB. Whether the OS / browser actually displays a notification is controlled by your Chrome and operating system notification settings. Closing the browser may stop notifications from appearing.
You can turn notifications off at any time from the extension's Settings.
The extension declares these permissions in its manifest. Each one is used only for the purpose listed.
chrome.storage.local and
watch for session changes after sign-in.
chrome.identity.launchWebAuthFlow.
http(s) page you visit. The
content script does not read your page content,
form fields, or browsing history. It only injects a Twitch player
iframe when you ask for it.
The extension does not declare the
downloads permission. The "download emote" button creates
an <a download> link in the popup, which uses
Chrome's normal anchor-download behavior; any saved file is written by
your browser to your usual download location. The extension never
reads or indexes those files.
The extension does not embed analytics, error tracking, advertising, or third-party tracking SDKs. The only third parties involved are the ones needed to run the extension:
We do not share data with any other third party.
We do not sell your personal information. We do not share it with advertisers, data brokers, or any other party.
We share data only as needed to make the extension work:
If we are ever required to disclose information by law (for example, in response to a valid legal process), we may do so. Because the backend has no database, the only data we have is what is in transient request logs.
You can:
chrome://extensions, or by clearing
site data for IndexedDB (twitch-ext-db) and
chrome.storage for this extension in your browser.
We take reasonable steps to handle your data carefully:
state value is an HMAC-signed, short-lived
token verified on every exchange.
No system can be guaranteed 100% secure. If you believe you have found a security issue, please email thomas.doganay@gmail.com.
The extension is intended for users who are old enough to use Twitch under Twitch's terms. It is not directed at children under 13 (or the equivalent minimum age in your jurisdiction), and we do not knowingly collect information from such users.
The extension may be used worldwide. If you are in the European Economic Area, the United Kingdom, or another region with similar data-protection laws, you may have rights to:
Because the backend has no user database, the only personal data we "hold" is what is in transient request logs and what stays on your own device. To make a request or ask a question, email thomas.doganay@gmail.com.
If the extension changes in a way that affects this policy, we will update this document and bump the "Last Updated" date at the top. Substantial changes (for example, new Twitch OAuth scopes, new third-party services, or a backend database) will be reflected here before the new version ships.
By using the extension, you consent to this Privacy Policy.
Questions, requests, or security reports: thomas.doganay@gmail.com.
This extension is an independent project. It is not affiliated with, endorsed by, or sponsored by Twitch Interactive, Inc. or Amazon. "Twitch" and the Twitch logo are trademarks of Twitch Interactive, Inc.
This document is a plain-language description of how the extension handles data, written from the current code. It is not a legal opinion and is not a guarantee of compliance with any specific law. It should be reviewed by the developer (and, if needed, a qualified legal professional) before publication.