Privacy policy
Last updated 14 October 2026.
Summary
This application is run by one person and acts only on that person's own YouTube channel, MCSR Replayoffs. It has no user accounts and no sign-in for anyone else. This website counts page views with Cloudflare Web Analytics, which sets no cookies and does not identify visitors. The "Show email address" button on the About page runs a Cloudflare Turnstile check. The home page loads the newest video from youtube-nocookie.com only when you press play; YouTube's privacy policy applies to it. Nothing the application reads is sold or shown to the public. A few services do receive data so the application can work; each is listed below under Where data goes.
Google user data it uses
The application asks for four OAuth scopes. All four apply only to the operator's own account and channel. It never asks for access to anyone else's Google account and cannot act on one.
youtube.upload:videos.insert, to upload the channel's own long-form videos and Shorts, private and scheduled.youtube.force-ssl:thumbnails.set;videos.updatefor title, description, tags and the scheduled publish time (also when a video uploaded by hand in YouTube Studio is adopted);playlists.insertandplaylistItems.insertfor the season, matchup and per-player playlists;commentThreads.insertfor one channel comment on each video;comments.insertfor replies the operator types to viewers.youtube.readonly:channels.list,playlists.list,playlistItems.listandvideos.liston the channel's own videos and playlists, so the tool knows what is already published;commentThreads.liston the channel's own videos, so the operator sees comments that have no reply yet. Before writing to a video whose id was typed in by hand, or swapping a live thumbnail, the tool reads it and refuses if it is on another channel.yt-analytics.readonly: the YouTube Analytics API and one standing YouTube Reporting API job, both for the channel's own videos only. They supply views, watch time, subscribers gained, audience retention, and thumbnail impressions and click-through rate. These numbers are used to compare thumbnails and titles in A/B tests (including YouTube's own Test & Compare), to choose which matches to make next, to track progress toward the YouTube Partner Programme, for the operator's daily summary, and for a review of one published video when the operator asks for it (see Where data goes).
Actions in YouTube Studio
Some things have no API. For those, a browser signed in by hand to this channel's own YouTube Studio works on the channel's own videos: it pins the channel's own comment, adds an end screen, starts and reads Test & Compare tests of thumbnails or titles, and links each Short to its full video. It never changes or removes anything the operator set by hand, and it reads nothing from other channels. The operator signs in to that browser by hand; the application never types a password or answers a security check.
Where data goes
- Cloudflare. Hosts this website, counts its page views (Web Analytics, no cookies) and runs the Turnstile check behind the "Show email address" button.
- The operator. YouTube data is shown on a dashboard that runs on the operator's own machine and has no public address, and in a private Telegram chat between the operator and the project's bot.
- Telegram (the Bot API) carries that chat: a morning report with video titles, channel and video statistics, upload status, the operator's own summaries, and the author name and the first 110 characters of each comment that has no reply yet. No one else is in the chat.
- Anthropic's Claude writes the report's headline and answers the operator's questions in that chat. For that it receives counts, video titles, match ids, player names and the operator's own notes about the channel. When the operator presses the audit button on a published video, a Claude session also watches that video and receives its title, both player names, its view, like and comment counts, its engaged views and minutes watched from YouTube Analytics, and its impressions and click-through rate, and writes a review for the operator. Claude never receives a comment's text or the name of the person who wrote it.
- Google's Gemini (through Google's Antigravity tool) watches a small, low-frame-rate copy of each finished video, with sound, plus stills and a transcript of each runner's stream, a few lines from the stream's Twitch chat and the operator's past video titles as style examples, to suggest a moment for the Short and a title. It receives no data read from the YouTube API.
- Groq (or OpenAI, if no Groq key is set) transcribes audio: the runners' stream audio for the match's duration, for the step above, and the published video's audio during an audit, when YouTube has no captions for it.
The OAuth refresh token is kept in one file on the operator's machine and is sent only to Google's token endpoint. The only server-side code this project runs is the small Cloudflare function behind the website's "Show email address" button.
What is stored, and for how long
- On the operator's machine, per match: both players' Twitch VOD windows, their Twitch chat replays, the finished video, thumbnails, the Short and the stills and transcripts made for picking it, any audit review the operator asked for, and a record of each upload (video id, title, upload and publish time, privacy status, the chosen thumbnail). Beside them: copies of live thumbnails kept so a change can be undone, A/B test results (impressions and click-through rate per video), each player's typical first-week views, and the last channel totals the morning report compared against.
- On the operator's home NAS: a copy of each published match's files, and secured VOD windows before Twitch deletes its archive.
- Not stored: comment text and commenter names. They are fetched when the dashboard or the report needs them and not written to disk.
There is no automatic expiry. Files stay until the operator deletes them.
Runners' footage and Twitch data
The pipeline reads public match data from the MCSR Ranked API, downloads the match's window of each player's publicly broadcast Twitch VOD, and saves the VOD's public chat replay. It reads public follower counts from Twitch and public skin renders of each player for the thumbnails. None of this is Google user data. Both players are credited by name in every video description.
To avoid posting a match another MCSR channel has already posted, the dashboard reads that channel's public upload feed (titles and dates) every six hours. It is held in memory only.
YouTube API Services
This application uses YouTube API Services. By granting it access to your Google account you are also accepting the YouTube Terms of Service, and Google's handling of your data is described in the Google Privacy Policy.
Limited Use
This application's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
Revoking access
Access can be reviewed and revoked at any time on the Google security settings page, which ends the application's access at once. Deleting the stored token file has the same effect locally.
Removal and contact
If you appear in a video and want it removed, either of these reaches the operator:
- a comment on any of the channel's videos asking for removal (the operator sees the channel's newest comments each morning);
- an issue on the project's GitHub.
A runner who asks is added to a block list: no match of theirs is suggested, rendered or uploaded again, and their existing videos are taken down.