Guide
How it works, features, and shortcuts.
What is Shadowing?
Shadowing is a language learning technique where you listen to a native speaker and repeat what they say as closely as possible — matching their rhythm, intonation, and pronunciation.
Shadowing trains your ear and mouth together — pronunciation, listening, and speaking all at once. Using real YouTube content means real speech patterns instead of textbook phrases.
Getting Started
Paste a link
Practice
Compare
Paste a YouTube URL with subtitles — the app extracts sentences automatically. Choose Manual or Auto flow, play each sentence, then record yourself repeating it. Use seekable waveform playback to compare side-by-side and track progress on the dashboard.
Practice Modes
Manual
You control play, record, and navigation. Step through sentences at your own pace.
Best for focused, deliberate practice.
Auto
Hands-free loop: playback, then recording starts automatically. Voice activity detection stops recording on silence and advances to the next sentence.
Best for immersive, flow-state sessions.
Features
Live Waveform
Scrolling voice-memo style visualization during recording.
Waveform Playback
Seekable waveform display for recorded audio.
Speed Control
Adjust playback speed with presets or a custom value.
Transcript Toggle
Blur subtitles to train your ear (press T).
Progress Tracking
Per-video completion tracking on the dashboard.
Local-first
IndexedDB storage, no servers, no accounts.
Open Source & Privacy
MIT license. The full source is on GitHub.
All data stays in your browser (IndexedDB). Nothing is sent to a server.
You can self-host with Vercel, Docker, or any Node.js setup.
Keyboard Shortcuts
| Key | Action |
|---|---|
| Space | Play / Pause |
| R | Record your voice |
| A | Replay original sentence |
| B | Play your recording |
| M | Toggle flow (Manual / Auto) |
| T | Toggle transcript visibility |
| ← | Previous sentence |
| → | Next sentence |
FAQ
What kind of videos work best?
Videos with clear speech and accurate subtitles work best. Try TED talks, news clips, interviews, or language learning channels. Avoid videos with heavy background music, multiple overlapping speakers, or auto-generated captions that may be inaccurate.
My video failed to import. What should I do?
Make sure the video has subtitles (not just auto-generated ones, though those can work too). Some videos have embedding restrictions that prevent playback. Try a different video or check that the URL is correct.
Where is my data stored?
Everything is stored in your browser using IndexedDB. No data is sent to any server. Your recordings, progress, and imported videos all stay on your device.
How do I delete a video or my data?
On the Dashboard, each video card has a delete button. To clear all data, you can clear your browser site data for this domain.
Does it work on mobile?
The app is responsive and works on mobile browsers. However, keyboard shortcuts are only available on desktop. Recording works on most mobile browsers that support the MediaRecorder API.