Privacy
This website
This website is a set of static pages. It has no sign-in, sets no cookies, and includes no analytics, advertising or tracking scripts. Like any website, the service that hosts it receives the technical information needed to deliver a page (such as your IP address), under that host's own terms.
The rest of this page is about the Shadowing Player Chrome extension.
Shadowing Player, version 0.1.0
Shadowing Player runs inside your browser. It has no server of its own.
What is not collected
- There is no account. You are never asked to sign up or log in.
- There is no server. The extension's own code makes no network requests.
- There are no analytics, ads or tracking code.
- Subtitle files are not uploaded anywhere.
- Your browsing history and watch history are not collected.
- YouTube's own subtitles are not collected or downloaded.
- There is no microphone use and no speech recognition. Nothing you say is recorded or analysed.
What is stored in your browser
Three things are stored in Chrome's local extension storage (chrome.storage.local). This data does not leave your browser profile.
1. Subtitles you load
The parsed content of each subtitle file you load is stored: for every sentence, its start and end time, the English text and the Korean text, plus the optional title, language tag, video ID and notes if the file contains them. This is so the subtitle can be loaded automatically when you open the same video again. The original file itself is not stored. Stored together with it:
- the ID of the YouTube video you were watching when you loaded the file
- the file name and its format (JSON, SRT or VTT)
- if the file was a lesson file: its sentence IDs, the language the video speaks, and the text of its quiz questions and choices (used for Quiz practice) and of its author-written prompts (stored, not used yet). A lesson file cannot carry audio, video or images; anything of the kind is discarded when the file is loaded
- the date and time you loaded it
The video ID is used only to link the saved subtitle to that video. It is stored only for videos you loaded a subtitle for. Nothing is stored about videos you watch without loading a subtitle.
2. Settings
Playback speed, repeat count, practice order (linear or random), whether shadowing, recall or quiz is on, what happens after a quiz question, its speaking time and what happens after a sentence, the recall options (prompt voice, voice speed, countdown, voice guidance, sounds), learning target, which languages are shown, and the video subtitle settings (on or off, size, position, and whether YouTube's captions are hidden).
Temporary playback state, such as the playback position or repeat progress, is not stored.
3. Learning progress
For each video you practise with, the extension keeps what you have done with its sentences, so that favorites, mastery and your practice history are there next time:
- which sentences you marked as favorite and which as mastered
- how many times you completed a practice of each sentence (and how many of those were Shadowing or Recall), and when the last one was
- for quiz questions that have a right answer: how many times you answered and how many answers were right
- the target scope you last chose for that video
Sentences are identified by a short key only: the ID the lesson file gives them, or, for subtitle files, their position and times. No sentence text is stored here, and nothing is stored for sentences you have never marked or practised. This data is kept under the video's ID, stays in this browser profile like everything else, is not synchronised to other browsers or devices, and is never sent anywhere. There is no account.
Quiz answers and score (memory only)
In Quiz practice, which choice you picked and the session score ("Score 2 / 3") are kept only in the memory of the open tab. They are not written to storage (only the totals described under "Learning progress" are) and are not sent anywhere, and they are gone when you load another lesson, open another video, restart the quiz or reload the tab.
Guidance voice (bundled recordings)
The app's own fixed phrases ("Choose the best answer.", "Correct.") can be played from short audio files shipped inside the extension. These files are generated ahead of time by the developer and are the same for everyone. Playing one loads a file from the extension itself; no network request is made and nothing about you is involved. The extension contains no speech-synthesis model and downloads none. This version ships recordings for the English interface only. In the Korean interface, and for any phrase whose recording cannot be played, these phrases are spoken by the browser's speech synthesis, as described next.
Spoken prompts (browser speech synthesis)
In Recall practice the extension can read a prompt aloud. It does this with the speech synthesis built into your browser (the Web Speech API). What this means, stated as far as it can be verified:
- Shadowing Player does not operate a text-to-speech service, has no API key, and does not itself send prompt text to any server.
- When Prompt voice is on, one sentence of your subtitle in the prompt language is passed to the browser's speech synthesis. When Voice guidance is on and no bundled recording exists for a phrase, that fixed phrase (such as "Say it in English." or "Correct.") is passed to it as well. Quiz questions and choices are never read aloud.
- How the browser turns that text into sound is not decided by the extension. Depending on your browser, operating system and the voice that is used, the voice may be produced on your device or by a service of the browser or system vendor, in which case the text is sent to that vendor under their terms. The extension cannot see or control which of these happens, so it makes no promise that speech is produced offline.
- The extension chooses a voice only by language (for example a Korean voice for a Korean prompt). It does not store the list of your voices or which one was used.
- Speech happens only inside a practice session you started. Opening or reloading a page never speaks.
- To use Recall with no speech synthesis at all, turn Prompt voice and Voice guidance off (Prompt voice is with Recall's settings; Voice guidance is under Voice and sounds).
The countdown tick and the chime before an answer are tones generated in the browser by the extension. They are not recordings and involve no network.
Diagnostics (memory only)
To help track down problems, the extension keeps a list of its last 50 internal events (for example "session started", "sentence ended") in the memory of the open tab. Each entry holds numbers and state names: the video ID, the playback time, sentence numbers and the current settings. It contains no subtitle text, no prompt text and no page address. For speech it records only that speech started, ended or was unavailable, and the language. This list is not written to storage, is never sent anywhere, and disappears when the tab is reloaded or closed. It leaves the tab only if you press Copy diagnostics, which puts it on your clipboard for you to paste where you choose. The copied text also has one summary line: the extension version, the interface language, whether the video is in fullscreen, the tag, ID and class names of the player and of the fullscreen element, the size of the player and the window, how many of the extension's overlays exist and which element they are inside, and whether saved settings, a saved subtitle and saved learning progress exist for this video together with the approximate number of bytes stored. It holds no subtitle text, no quiz text and no page address.
Deleting stored data
- More → Delete this video's subtitle in the panel removes the subtitle saved for the current video.
- More → Delete all saved subtitles removes the saved subtitles of every video.
- Content → Reset progress in this scope forgets the learning progress of the selected scope, and Reset all progress for this video that of the whole video. Deleting a saved subtitle does not delete learning progress.
- Removing the extension deletes all saved subtitles, settings and learning progress.
Permissions
| Permission | Why |
|---|---|
storage | To store the subtitles and settings described above in your browser |
Access to youtube.com pages | To show the practice panel on YouTube video pages and to control the video's position, play, pause and speed |
The extension's script is loaded on youtube.com pages, and the panel is shown only on regular video pages. On those pages it reads the page address (to get the video ID), the video element, whether the page is in dark mode, and the state of the player element that shows whether an ad is playing. It adds two things to the page: the practice panel and, inside the video player, an overlay showing your subtitle. While that overlay is in use it can also hide YouTube's own caption display from view; this only changes how the page looks, is undone when the overlay is turned off, and does not change your YouTube settings. It does not read YouTube's captions, other page content or any account information.
Changes
If a feature changes any of this (for example, adding an account or a server), this page will be updated first.