What the local application processes
This policy describes the current repository and its local command-line workflow. It is not a statement about features that are only planned.
Who operates this project
Twitch Auto Clipper is a personal software project operated by Aymeric Leclerre-Lemoine. The public contact address is aymeric.leclerre@gmail.com. The project is not affiliated with YouTube, Google, or Twitch.
Data processed locally
- Local videos and downloaded Twitch VOD files.
- Whisper transcription segments and word timestamps.
- Heuristic highlight candidates and optional Gemini evaluation data.
- Twitch chat replay JSON files, including message timestamps and text, when downloaded.
- Generated clips, ASS subtitle files, and JSON metadata in local project folders.
- OAuth client configuration supplied by the operator and the local YouTube OAuth token.
The current repository does not implement a hosted account system, a database, browser analytics, cookies, or automatic deletion schedules. Local files remain until the operator deletes them, with two exceptions in the monitoring mode: the downloaded VOD audio and chat replay are deleted once the VOD has been fully processed, and a generated Short is deleted locally after YouTube has confirmed its upload.
Third-party services
Twitch
The monitoring mode uses the Twitch API (application credentials, no Twitch user login) to read public live stream information: channel names, stream IDs, viewer counts and VOD metadata. The VOD audio is downloaded with yt-dlp for the transcription, each Short reads only its own few seconds of VOD video from Twitch, and chat replay is downloaded with TwitchDownloaderCLI. Twitch content and chat are processed only when the operator runs these commands. Their use remains subject to Twitch's own terms and the rights of the relevant content owners.
Gemini
To select highlights, the application sends candidate timestamps, heuristic scores, transcript text, and a short chat activity summary with a few chat messages per candidate to Google GenAI. Gemini is called by the VOD pipeline (monitoring mode and --process-vod) and by --auto-clip; the manual clip and upload commands do not call it. Review Google's applicable privacy documentation for that service.
YouTube API Services
The YouTube upload command uses OAuth 2.0 and youtube.videos.insert. It requests https://www.googleapis.com/auth/youtube.upload for uploads and https://www.googleapis.com/auth/youtube.readonly when channel verification is needed. The application receives and stores the OAuth token locally, and sends the video file, title, description, privacyStatus, and Made for Kids declaration to YouTube for upload. With the manual upload command, the operator enters these values. In automatic upload mode, the title and description are generated from the clip transcript, the video is uploaded with the visibility chosen by the operator (private by default) and declared not made for kids. The returned video ID and URL are displayed and saved in a local manifest.
If YOUTUBE_EXPECTED_CHANNEL_ID is configured, the application also calls youtube.channels.list with mine=true to verify the OAuth-authorized channel before upload. If it is not configured, this verification is not active. The intended destination is the LiveActions! channel; the associated Google account address is not published here. YouTube API Services are subject to the Google Privacy Policy, YouTube Developer Policies, and YouTube API Services Terms.
Storage, security, and deletion
Videos, transcripts, chat files, candidate files, logs created by external tools, and generated outputs are stored locally according to the repository's folder layout and the operator's environment. The OAuth client secret file credentials.json and OAuth token file youtube-token.json are excluded by .gitignore; users must still protect their local machine and must never commit them.
The current application does not provide an in-app deletion or account-disconnection command. To delete local data, the operator must remove the relevant files. To revoke YouTube authorization, use Google account security settings; after revocation, remove the local token and any related local authorized data. The only automatic deletions are the local copy of a generated Short after YouTube confirmed its upload (if an upload fails, the file is kept) and, in the monitoring mode, the VOD audio and chat replay once the VOD has been fully processed.
Your choices and contact
You choose whether to run transcription, chat retrieval, Gemini evaluation, and YouTube upload. Before upload, the CLI asks you to confirm your rights to publish the content and that you have access to the project's configured Privacy Policy URL. With the manual upload command, you choose the YouTube title, description, visibility, and Made for Kids declaration. Automatic upload is off by default; when you enable it, the same confirmations are asked once at startup and videos are uploaded with the visibility you configured (private by default). Questions or privacy requests can be sent to aymeric.leclerre@gmail.com.
Changes
This policy may be updated when the implementation or applicable requirements change. The date at the top will be updated with substantive revisions.