Chrome Extension Privacy Policy
Privacy Policy
This policy is published by the developer of Sentence Listening Console (逐句精听控制台). It explains how the browser extension, companion mobile listening pages and material-request form below collect, process, store and share user data. Privacy contact: [email protected].
Automatic sync after sign-in
Listening data stays on your device while signed out. After sign-in, existing and new marks, mastery, progress and statistics automatically sync to Supabase.
Used for product features
Data supports authentication, listening, personal statistics and cross-device recovery. We do not sell data or use it for advertising or advertising profiles.
Retention and deletion
Signing out does not delete account caches or cloud data. Uninstalling removes local extension data only. Delete videos or email us to request account and cloud-data deletion.
Guest learning data and account ownership
You can mark sentences and practise listening while signed out. Learning data stays in the current browser; viewing history and statistics requires sign-in. On the next sign-in, this guest data is automatically assigned to that account and synced to the cloud when connectivity is available.
New guest data created after signing out also belongs to the next account that signs in. The previous account's caches and cloud data remain separate. When people share the same browser profile, the next person to sign in may claim this guest data into their own account.
1. Scope and when collection occurs
The extension identifies the current video on Bilibili and YouTube and provides sentence marking and playback controls. Basic marking works while signed out; history, statistics pages and cross-device sync use account features. On other websites, the extension processes selected text and its source URL only after you invoke its context-menu action. It does not enumerate browsing history, read or store platform passwords, cookies, private messages, payment information or audio/video files, or record your microphone or camera.
When a Bilibili video has no marks, the extension checks that platform's sign-in state and reads captions for the current video and part. The yellow button appears only after usable captions have been validated. Clicking it reuses the short-lived caption cache or fetches captions again, creating marks only for captions with text. When a YouTube video has no marks, the extension uses the current page's visitor context to request /youtubei/v1/player and obtain the track matching the original audio and its timedtext address; it retries briefly if the page is not ready. Clicking the yellow button obtains a fresh address for the default track, then requests /api/timedtext for the captions. Your browser may attach existing platform cookies to these requests. The extension does not persist cookies, visitor context or caption addresses or send them to Supabase.
Video information comes from the supported page; sentence boundaries and mastery marks come from your actions; learning statistics come from playback events. Listening time counts only actual playback within completed sentence boundaries in the active marking set while the console is visible. Playback before a sentence is closed, unmarked sections, gaps between sentences, pauses, buffering and seeking are excluded. Closing or hiding the console stops collection; reopening it does not add hidden playback time. Initial sentence marking does not retroactively count playback before its end boundary was set. Ordinary browsing of unmarked videos does not create listening history. Signing in automatically assigns existing guest learning data to that account and enables ongoing sync without a separate sync switch.
You can mark sentences and practise listening while signed out. Learning data stays in the current browser; viewing history and statistics requires sign-in. On the next sign-in, this guest data is automatically assigned to that account and synced to the cloud when connectivity is available.
New guest data created after signing out also belongs to the next account that signs in. The previous account's caches and cloud data remain separate. When people share the same browser profile, the next person to sign in may claim this guest data into their own account.
2. Data we collect and process
- Account and authentication: Your entered email and password, and service-generated user ID, access token and refresh token. Email and password are sent over HTTPS to Supabase Auth for registration and sign-in. The extension does not persist your plaintext password; it stores the resulting session to keep you signed in. Remember email is checked by default: after successful sign-in or registration, your email is saved locally for prefilling, including after sign-out. Uncheck it or select Clear saved email to remove it. This preference is not cloud-synced or included in marking exports.
- Video and page information: Platform, video ID, part/segment identifier, title, video page URL and thumbnail URL identify learning materials and display history. Relevant video information syncs with learning records after sign-in.
- One-click Bilibili subtitle marking: Reads text and timestamps for the current video and part and creates boundaries only for nonempty captions. The background keeps at most four sources in memory for 60 seconds; caption text and signed URLs are not persistently saved, uploaded to Supabase or exported. Conflicting track IDs combined with excessive duration prevent marking and show a suggestion to disable a proxy and refresh; this does not establish the cause or platform intent. Bilibili currently does not display original text or offer caption-based translation and saving. Caption caches from earlier development builds may remain locally but are not displayed; clearing extension data removes them.
- YouTube captions and previously saved phrases: Timedtext cues are joined at sentence-ending punctuation before marks are created. Caption text and language are stored on this browser to display the original text; signed caption URLs are not stored. When you select text while signed in to the extension, a Supabase Edge Function sends phrases, sentences and other translation directions to Azure Translator. Recognized English words translated into Chinese use Youdao basic meanings when available, falling back to Azure if unavailable. Short terms in supported English bilingual directions may also be sent to its dictionary endpoint for parts of speech and alternative meanings; these requests are also recorded in account translation details. Cloud requests contain the selected text and source/target languages, not the full caption, video ID or platform account. Supabase verifies the extension account token and does not forward it to Azure. Guests must sign in to translate; the popup provides a sign-in link. English words selected in the popup or displayed in favorite details are sent to Youdao Dictionary jsonapi for US/UK phonetics, without video information, source sentences, notes or extension account tokens. The target-language preference stays in local storage and is not synced or exported. You can copy original text and translations to the clipboard or save a favorite from the popup. Folders, selected text, translations, source/target languages, notes, video details, sentence IDs, start/end times and original sentences are stored directly in your Supabase account without a persistent local cache or offline queue. Blank notes remain empty; the original sentence is kept separately as source context. Favorites require sign-in and a network connection. When you click a speaker while signed in, selected text and its source language are sent through a Supabase Edge Function to Azure Speech for synthesis, without video details, notes or extension account tokens. Audio is used only for the current playback and is not cached or persisted. If cloud speech is unavailable, the extension attempts a matching device voice; remote device engines may send text to their providers. Supabase stores playback text, language/region, voice, provider, outcome and time per account, plus separate server-side synthesis character counts, provider calls and outcomes for usage reporting. Signed-out device speech is not attributed to an account. Earlier local favorites are not automatically uploaded. Deleting a history video does not delete independent cloud favorite snapshots. New v5 exports include cached caption text and legacy local phrases, but do not include new cloud favorites; older v4 exports do not include either.
- Marks and mastery: Sentence start/end times, marking-set names, record and sentence IDs, creation/update times and mastery colors support segmentation, navigation, looping and review across devices.
- Learning activity and progress: Learning sessions, study dates and timezone, actual playtime, playback speeds and time per speed, sentence completion and loop counts, daily aggregates, last study time, video position and associated sentence/set support personal statistics and resuming study.
- Device and synchronization information: Random device identifiers, device names, client type (extension or mobile), sync revisions, operation/session IDs and pending changes distinguish devices and support deduplication, offline retries and conflict recovery. Hardware fingerprinting is not used.
- Local preferences and temporary instructions: Panel position, visibility, playback settings and feature toggles remain in browser storage. Temporary instructions to open a sentence use extension session storage and are not advertising trackers.
3. Purposes and processing
We process this data only to provide authentication, sentence marking, navigation and looping, mastery management, learning history and statistics, import/export, offline recovery and cross-device sync. Statistics are calculated from learning events, not used for advertising profiles, sale or credit assessment. The extension has no advertising analytics or behavioral-tracking SDK.
After sign-in, the extension uploads and downloads personal learning data through Supabase over HTTPS, including pre-existing local marks and aggregate statistics during initial sync. Offline changes are queued locally and retried when connectivity and a valid session are available. Conflicts may preserve another marking copy and a local recovery backup. While signed out, listening records are not uploaded to the cloud, but video pages and thumbnails may still make platform resource requests.
Mobile listening pages use the same Supabase account to read and update learning data, and store an independent session and random device identifier in that mobile browser. The mobile listening QR code and copyable link contain account access and refresh tokens plus the target video ID in the URL # fragment so the phone can establish a session. Anyone who obtains the QR code or link may be able to use those tokens. Do not show or forward them to others. The mobile page removes the fragment from the address bar after reading it, but keeps its session in that browser.
4. Storage and security
On your device, chrome.storage.local holds extension account sessions, separate account learning caches, preferences, sync queues and recovery backups. chrome.storage.session holds short-lived opening instructions. Mobile pages use browser localStorage for sessions and device identifiers. Exported JSON files are saved to the location you choose.
In the cloud, Supabase provides authentication and database hosting for account information, synced learning records, statistics, progress and device information. Transfers use HTTPS and database permissions isolate personal business data by account. Cloud sync is not end-to-end encrypted; user-to-user row-level isolation does not prevent authorized administrative access needed to operate the service.
Service requests expose your IP address and necessary network request information to their recipients. Providers may retain operational logs for service delivery, security and troubleshooting. Cloud data is processed on the configured Supabase hosting infrastructure, which may be outside your country or region. Protect browser profiles, signed-in devices and exported files; local caches are not a separate password vault.
5. Sharing and third-party recipients
- Supabase: As our authentication, cloud-storage and Edge Function provider, it receives registration/sign-in email and password, authentication requests and, after sign-in, synced video information, marks, mastery, statistics, progress and device information. When you select text and use cloud translation, the function also processes the selected text and source/target languages transiently; the function does not persist translation request content.
- Bilibili and YouTube/Google: Loading video pages, thumbnails or the mobile YouTube embedded player requests platform resources. Bilibili marking requests sign-in and subtitle data; YouTube marking reads caption-track information from the current player and requests the selected timedtext track. Platform requests may include existing cookies. Platforms receive your IP address and necessary video/resource identifiers. The extension does not send your Supabase password or session tokens to video platforms.
- Youdao Dictionary: Receives English words selected in the popup or shown in favorite details and network request information to return US/UK phonetics.
- WeCom import requests: Only when you submit the form, sends the platform type, name, optional URL and supplied contact information to the developer’s WeCom group to evaluate support and contact you. No extension account, password, tokens or learning records are added, and the form is not persisted locally. WeCom and developers in the group receive and retain the message; contact the privacy email for correction or deletion.
- Webpage selection translation and favorites: A packaged selection script runs on ordinary HTTP/HTTPS pages and their HTTP/HTTPS frames. It handles selected text locally to display an icon, excluding input and editable fields. Only clicking the icon or selection context menu opens the popup and reads nearby context (up to 2,000 characters). Translation and listening analysis send only the selected text and languages. Explicitly saving a favorite stores the page URL, title, context, translation and note in your account. The selection script does not automatically send selected text or crawl page content. Sign-in is required; signed-out users see a popup prompt and can choose to open the login page.
- Whole-sentence translation: Clicking the sentence translation button sends the displayed sentence and languages through authenticated Supabase to Azure. Results appear temporarily and are not automatically added to favorites; you can explicitly save them. Target-language preferences are stored locally.
- Resource usage: The extension is currently free to use. Once tracking is enabled, translation and listening requests store their input, result, languages, time, provider/model, call count, character count, provider-reported tokens, duration, cache flag and error code in your Supabase usage ledger for details and future membership planning. Failed requests may consume resources; missing token values are not zero usage. Local cache display creates no new server request record. Only you and authorized server services can access these records. The user center displays them; there is currently no automatic retention period. Account deletion removes the ledger. Usage tracking does not create favorites automatically.
- Critical error notifications: The extension background automatically sends important AI/Supabase failures to the developer’s WeCom robot for troubleshooting. Reports contain only time, extension version, endpoint category, status codes and allowlisted technical diagnostics. They exclude accounts, user IDs, videos, study text, notes, keys and tokens. Only deduplication and rate-limit metadata is stored locally.
- ChatAnywhere AI listening tips: Only when you click View in favorite details or Why didn’t I understand? in the translation popup, a Supabase function sends the current original text, source language and explanation language to the ChatAnywhere API using a DeepSeek model. Notes, translations, videos, source-sentence context and extension account tokens are not sent. Popup analysis is not saved to favorites, but its input and successful result are retained in cloud request records. Content and timestamps generated from favorite details are stored with the favorite in your Supabase account and deleted with that item. Saved tips are reused without automatic AI calls. The provider may process requests and service logs under its policies. Guidance is based on text, with no audio analysis.
- Azure Speech: Receives selected text, source language and voice through Supabase when you request pronunciation, without video details, notes or extension account tokens. Audio is not cached or persisted. Supabase stores playback details and synthesis usage per account.
- Azure Translator: After you sign in, receives selected text and source/target languages through a Supabase Edge Function. Single words use bilingual dictionary lookup; phrases and sentences use translation. It does not receive your extension account token, video ID or full captions.
- Developer and recipients you choose: The developer may process contact information and relevant records as needed to provide support and maintain the service. Exported files may contain video URLs and personal marks; you decide whether to share them with others.
- Sharing limits: We do not sell or rent user data, provide it to advertisers or data brokers, or publish your personal learning records. Beyond the service provision described here, sharing you request, or disclosures necessary to comply with applicable law or protect service security, we do not share user data with other parties.
6. Retention, deletion and your choices
Marking caches and cloud learning records are generally retained until you delete them or request account-data deletion, without a universal automatic expiry. Local statistics have capacity limits: up to 500 recent sessions and 730 days of daily summaries; older details may be pruned. Signing out removes the local login session and hides that account workspace, but retains account caches and cloud data for a future sign-in.
Deleting a video from history clears associated local learning data and queues deletion of personal cloud associations, including marks, mastery, progress and statistics. Remain signed in and online for deletion to sync. Shared video metadata may remain. Uninstalling or clearing storage while deletion is queued may leave cloud deletion incomplete.
Clearing extension storage or uninstalling removes local extension data, not your Supabase account or cloud data, mobile-browser data or downloaded exports. New v5 JSON exports contain video data, marks, locally cached YouTube caption text and related saved phrases, but not passwords, session tokens or complete learning statistics. Keep exports private. After import, existing cloud learning data can sync when signed in; caption text and legacy saved phrases remain on this browser. New cloud favorites are separate and are not included in marking backups.
To request access, correction or deletion of your account and all personal cloud data, email [email protected] from your registered email. There is currently no self-service account-deletion button. We will verify the requester before processing; do not send passwords or session tokens. Provider security logs, backups and legally required records may not be erased immediately with business records; their retention depends on applicable service settings and requirements.
7. Extension permissions
- storage: Saves local learning records, preferences, sessions and sync queues.
- alarms: Periodically triggers synchronization and retries while the browser runs.
- scripting: Reads current YouTube player caption information and injects the translation/listening/favorite popup after your context-menu action on a webpage.
- Supabase host access: Sends authentication requests and reads, uploads and deletes cloud learning data.
- Bilibili and YouTube page access: Identifies the current video and metadata, observes playback events, controls playback and displays the console; it is not used to collect browsing history on other sites.
- Bilibili API and subtitle host access: Accesses api.bilibili.com to check Bilibili sign-in status and read subtitle information for the current video; accesses hdslb.com subdomains to download the current subtitle JSON for one-click marking.
- YouTube host access: Reads caption-track metadata from the current video page and requests timedtext from www.youtube.com; it does not download video or audio.
- Youdao Dictionary host access: Looks up US/UK phonetics for selected or favorited English words.
- WeCom host access: Sends your voluntary platform-integration request and automatically sends allowlisted critical service-error diagnostics.
- HTTP/HTTPS webpage access: Runs the packaged selection script to display an icon beside selected text and open the popup on click. No automatic selection uploads or page crawling.
- activeTab: Retains temporary access for context-menu actions. Automatic selection icons also require content-script access to HTTP/HTTPS webpages.
- contextMenus: Offers Translate/Listen/Save for selected text.
- offscreen: Plays requested cloud speech in a hidden extension document and releases temporary audio after playback; no page reading, recording or audio caching.
- tts: Uses a matching device speech engine when cloud speech is unavailable.
8. Chrome Web Store Limited Use
We comply with the Chrome Web Store User Data Policy, including its Limited Use requirements. Data obtained through the extension and Chrome APIs is used only for the clearly presented listening and related account-sync features, not for personalized advertising, sale to data brokers or unrelated purposes.
9. Product-page learning material form
The product page offers an optional English-learning-material request form. When you submit it, the nickname and email address you provide are sent through a secure server-side endpoint to the developer's WeCom workspace. They are used only to process the request and send the materials to that email address. Submitting the form, reviewing the extension, and the rating given do not affect extension functionality or eligibility for the materials.
A successful-submission status is stored locally in the current browser to prevent accidental duplicate requests; that status does not contain your email address. The developer will delete request information within a reasonable period after delivery and necessary follow-up. You may use the contact details below to request access or deletion.
10. Policy updates
When features or data practices change, we will update this policy and its date and provide notice where appropriate. The public policy, bundled policy and store privacy disclosures should remain consistent.
Web selections, AI analysis and request records
A packaged script runs on HTTP/HTTPS pages and their HTTP/HTTPS frames to show an icon beside selected text. Selection is handled locally; no text is sent automatically. Clicking the icon or invoking Translate/Listen/Save opens the popup and reads the selected text, page title, URL and available context. Input and editable fields do not show the icon. The extension does not crawl pages or enumerate browsing history. Signed-out users see a sign-in prompt in the popup; the extension login page opens only when they click Sign in / Sign up; restricted browser pages cannot be injected. A web favorite stores selected text, translation, notes, languages, source URL and available context. URLs can contain query parameters; avoid saving sensitive pages.
Translation and listening analysis use authenticated Supabase Edge Functions. The server retains account ownership, request kind and mode, time, input text, source/target languages, successful results or safe error codes, provider/model, characters, provider-call counts, cache status, duration and any known token usage returned by the provider. Your user center displays personal totals and request records. These support personal review, resource accounting, maintenance and potential future membership metering. The current free phase collects no payment information and does not automatically charge you. Local cache hits that make no server request create no new server event.
Temporary display or not automatically saving a favorite does not mean no request retention. Deleting favorites or history, signing out or uninstalling does not automatically delete independent usage records. Request records currently have no self-service deletion or automatic expiry; contact the developer from your registered email to request access or deletion. Folder counts and folder-creation events are also measured.
Public website and mobile listening pages
Visiting paste365.com sends necessary network information, such as IP addresses and page requests, to the website host for page delivery and operational security. Google Analytics scripts in the current website layout are disabled. The public policy page cannot directly read local extension storage; mobile listening pages can read account learning data from Supabase after you sign in and request video resources through the YouTube player.
11. Contact the developer
For questions about collection, processing, storage or sharing, or to request access, correction or deletion, contact the Sentence Listening Console developer:
[email protected]