Only when you purchase, sign in, or contact us do we receive the email address and other data needed for that action. Each purpose and retention period is listed below.
1. What we collect
1.1 Subtitle text
When you watch a video on F1TV with English subtitles turned on, PitLingo reads the English subtitle text on the page and sends it to our server to be translated into Traditional Chinese.
These translations are stored and shared with other users. A video's subtitles are the same for everyone, so once a line has been translated, nobody else needs to translate it again. This is how the service keeps its cost low. What we store is only the mapping “English sentence → Chinese translation”. It does not include who sent it.
1.2 Installation ID
On first launch we generate a random ID (for example a3f2c1e8-…) and store it in your browser.
It is used for three things only:
- Preventing abuse (a daily translation limit per installation)
- Staged rollouts (letting a small share of users try new remote settings first)
- License binding (if you purchased a paid plan)
The ID is random, contains no personal information, and is not linked to your F1TV account. In the following two cases, however, it is recorded together with other data. We tell you this explicitly:
- When you activate a license code: the ID is added to that license's list of activated devices (with the activation and last-used times) to enforce the per-license device limit. The license code itself is associated with the email used at purchase.
- When you sign in inside the extension: translation requests carry your sign-in credential, and the daily free allowance is counted per account (clearing browser data does not reset it). We record only “how many lines this account used today”, not which videos.
You can change this ID at any time by removing and reinstalling the extension.
1.3 Usage statistics
We collect aggregate usage statistics to improve the product and its pricing. All of them are counts and contain nothing that identifies you:
| What we record | Why |
|---|---|
| Session type (practice / qualifying / sprint / race / other) | To judge whether the free tier is reasonable |
| Minutes watched when the free allowance ran out (in buckets, such as “10–15 min”) | To judge whether 15 minutes is enough |
| Whether the user is a paying user (yes / no) | To understand conversion |
| Extension version and error type | To detect problems caused by a new version |
1.4 Diagnostic reports (only when you send one)
When you click “Send diagnostics” in the extension, we receive:
- The extension's operating state: version, cache hit rate, and an event timeline
- The URL of the video you are watching (authorization data in the URL is masked)
- The problem description and contact details you choose to enter (both optional)
Diagnostic reports do not contain your license code or any access token. They are used only to reproduce and fix problems and are deleted automatically after 90 days. A copy is also emailed to our support inbox (see “Resend” and “support inbox” in Section 5).
1.5 Account sign-in
The “My account” page lets you see your purchases, license codes and activated devices. You can purchase and use the free allowance without signing in; a license code, however, works only when the extension is signed in to the account of the email used at purchase (license codes are bound to an account, so a leaked code cannot be used by someone else). There are two ways to sign in:
| Method | Data we receive and keep |
|---|---|
| Sign in with Google | Your Google account ID, email, display name, and the account creation and last sign-in times. We do not receive your profile photo, contacts, Drive, Gmail content or any other Google data. Google performs the authentication; we never receive your Google password. |
| Email verification code | We email a 6-digit code to you. The server stores only a hash of the code, which expires after 10 minutes. After sign-in we keep your email and the account creation and last sign-in times. |
After you sign in, the website keeps your session in one strictly necessary cookie: it is HttpOnly (scripts on the page cannot read it), sent only over encrypted connections and only to our API, and valid for 14 days. The extension keeps its sign-in credential in the extension's own storage, valid for 30 days. When you click “Sign out”, the server revokes that credential immediately; “Sign out of all devices” revokes the credentials of all your browsers and extensions. We do not use any advertising or tracking cookies. If you start the sign-in from the extension, the website hands the credential to the extension through a one-time pairing code that is valid for 5 minutes and deleted as soon as it is used.
If you purchased with a different email, you can “claim” that purchase on the account page by entering the license code: we email a verification code to the email used at purchase, and only after you enter it is that email added to your account's list of merged addresses.
Transferring a complimentary race-week pass: the recipient email you enter on the account page becomes the owner of the new license code. We send that person an email with the code and keep “transferred to whom” in your order record for customer support and refunds. Please enter only the email of someone who has agreed to receive the transfer.
New-device sign-in alerts: when your account signs in on a new browser or a new extension installation, we email you (device type, approximate location, time) so you can immediately “sign out of all devices” if it was not you. To recognize a “new” device, the website sets a device-recognition cookie in your browser (randomly generated, HttpOnly, valid for 400 days, not deleted on sign-out), and your account data keeps up to 20 previously used devices as a hashed identifier, device type (for example “Windows Chrome”) and sign-in time. The approximate location in the alert is estimated by Cloudflare from the connection (city and country); it is written only into that email and not stored elsewhere, and the IP address is not stored.
1.6 Payment information
We never see or store your card number or any payment details. Payment is completed entirely on the pages of our payment provider, ECPay (綠界科技). At checkout we pass the order number, amount, product name and the email you entered to ECPay to create the transaction, and receive ECPay's notification of whether the order was paid. For ATM or convenience-store payments we also receive the payment account or code generated by ECPay, to show it to you on the payment result page. Your email is used to send the license code and receipt and to resend a forgotten code. It is not used for marketing.
1.7 Orders and cart
The plans, quantities, discount details and amount due that you choose on the purchase page are stored together with the order number and email to issue license codes, look up orders and handle refund disputes. An order is created at checkout (including orders that are never paid). The upgrade feature uses your email and license code to look up the amount paid for earlier race-week passes — it looks up only amounts and validity periods, never what you watched.
1.8 F1TV subscription purchasing service
If you buy our F1TV subscription purchasing service, we also receive what is necessary to provide it:
- Your email — to complete the subscription and send you the account information
- The order's processing status (pending / completed), for customer support
We never ask for your F1TV password and do not hold any account credentials. This is a manual service, and the information above is handled by a person.
1.9 Contact form
When you submit the “Contact us” form, we store the email, order number (optional) and problem description you enter and create a ticket number. This data is used only to reply to you and is deleted automatically after 90 days.
2. What we do not collect
- We do not record which video you watch. The video ID is used as a cache key for translations, but it is never stored together with your installation ID, license code or account — the service cannot reconstruct any user's viewing history from the data it stores. (The only exception is a diagnostic report you choose to send, which contains the current video URL; see 1.4.)
- We do not store IP addresses. To prevent the free allowance from being claimed repeatedly and to rate-limit forms and sign-in attempts, we apply a one-way hash (HMAC-SHA256) to your IP address and use the first 16 characters. The raw IP address is never written to storage; the hash cannot be turned back into an IP address and cannot be matched to your license code or email. Free-allowance records expire daily and rate-limit records within 2 minutes; attempt counters kept to stop verification codes from being brute-forced (hashed IP and email, never the code itself) are deleted after at most 3 days.
- We do not read your browsing history, bookmarks, passwords or other tabs.
- We do not read your F1TV account information or cookies.
- We do not use advertising trackers, nor analytics tools such as Google Analytics that build personal browsing histories. The website (pitlingo.com) uses Cloudflare Web Analytics to count overall page views and page-load speed (see Section 5): according to Cloudflare, it does not use cookies or browser storage such as localStorage and does not identify individuals by IP address or browser information. Cloudflare adds it when serving the website; it is not part of our code, and the extension contains no analytics tools at all.
- We do not track you across websites.
- We do not sell, rent or exchange any data.
3. Extension permissions
| Permission | Purpose |
|---|---|
storage | Stores your display settings, license status and sign-in credential locally |
*.formula1.com | Reads the subtitles on the page, displays the Chinese overlay, and fetches the subtitle files (the same files the player fetches). Covers f1tv.formula1.com and the CDN hosts that serve subtitle files (ott-video-cf / ott-video-fer-cf — F1TV uses different host names for live and replay). We read only subtitles — never video, audio or your F1TV account information. |
api.pitlingo.com | Communicates with our translation server |
f1zh-api.pitlingo.workers.dev | The translation server's previous address, kept for older versions |
PitLingo runs only on F1TV pages and does not activate on any other website.
4. Retention and deletion
| Data | Retention |
|---|---|
| Translations (shared cache) | Kept long-term. Content is subtitle translations with no personal information |
| Usage statistics | About 13 months, for season-over-season comparison |
| Diagnostic reports, contact-form tickets | Deleted automatically after 90 days |
| Order records (including unpaid orders) | Deleted automatically after about 13 months (400 days) |
| License data (license code, email, order number, activated devices) | While the license is valid, plus the retention period required for tax purposes |
| Account data (sign-in method, email, display name, sign-in times) | Until you ask us to delete it |
| Sign-in verification codes (hashed) | 10 minutes |
| Sign-in credentials | Expire after 14 days (website) or 30 days (extension); revoked immediately on sign-out |
| Sign-in protection counters (hashed IP and email) | At most 3 days |
| Free-allowance counters | Valid for the current day, expire the next day |
| Local settings and installation ID | Stored in your browser; deleted when you remove the extension |
| Notification emails sent to our support inbox (orders, diagnostic reports) | At most 13 months, cleaned up by us periodically |
How to delete your data
- Local data and sign-in credentials: sign out, or remove the extension.
- Usage statistics: these are aggregate counts that cannot be linked to a person, so they cannot be deleted individually.
- Account, license data, orders and tickets: email [email protected] with your sign-in email, license code or ticket number, and we will process the request within 30 days. Transaction records that must be kept by law (for example for tax purposes) are kept until the statutory period ends.
5. Third-party services
We share only the data necessary to provide the service with the following providers:
| Service | Purpose | What it can access |
|---|---|---|
| Cloudflare (Workers, KV, Pages) | Website hosting, servers and database | All data described in this policy that is stored on our servers, and the IP address of each connection (handled by Cloudflare under its own policy for network security and delivery) |
| Cloudflare Web Analytics | Overall website page views and page-load speed | Only when you browse the website (pitlingo.com): the page URL, referrer, country, device type, browser, operating system and page-load time. According to Cloudflare, it does not use cookies or browser storage such as localStorage, does not identify individuals by IP address, browser information or other data, and does not track individual users across websites; we see only aggregate numbers. The extension never loads it. |
| Anthropic (Claude) | Translation engine | English subtitle text only, without any identifier |
| ECPay (綠界科技) | Payments | Order number, amount, product name, email, and the payment details you enter on ECPay's pages (which we never see) |
| Google (Google Identity Services) | “Sign in with Google” | Only when you open the “My account” page, your browser loads the sign-in button from Google, so Google can see your IP address and browser information; if you choose to sign in with Google, Google gives us your account ID, email and display name. In addition, every page of the website loads a Latin display font from Google Fonts (fonts.googleapis.com, fonts.gstatic.com), so Google can see your IP address and browser information; we do not and cannot obtain any other data from this. The extension never loads any Google resources. |
| Resend | Sending email | Recipient email and message content: sign-in and claim verification codes, license codes and receipts, new-device sign-in alerts (including device type and approximate location), and notifications sent to our support inbox |
| Google (Gmail, support inbox [email protected]) | Customer support and operational notifications | Emails you send us, and notifications the system sends to the support inbox — new orders (order number, plan, email, license code) and diagnostic reports (see 1.4) |
6. Your rights
Under Taiwan's Personal Data Protection Act, you have the right to inquire about, review, correct and delete the personal data we hold, and to ask us to stop collecting, processing or using it.
The service is designed to minimize the personal data it collects. The personal data we may actually hold is: the email and order records from your purchases, the email, display name and Google account ID from signing in, and the contact details and content you provide through the contact form or a diagnostic report. Please send requests to [email protected].
7. Children's privacy
The service is not directed at children under 13 and does not knowingly collect their personal data.
8. Governing law and jurisdiction
This policy is governed by the laws of the Republic of China (Taiwan). Any dispute arising from this policy shall be submitted to the Taiwan Taichung District Court as the court of first instance.
9. Changes to this policy
If this policy changes, we will update the date at the top of this page. If the change materially affects how data is collected, we will notify you in the extension.