A modern Chrome extension to create a virtual camera experience in your browser.
- Modern UI: Beautiful, responsive popup interface with drag & drop video upload, animated status, and toast notifications.
- Persistent Video State: Remembers playback position and restores it, even after browser restarts.
- IndexedDB Storage: Videos and settings are stored locally for fast access and privacy.
- BroadcastChannel Sync: Real-time sync of video state and controls across all tabs.
- One-click Enable/Disable: Instantly toggle the virtual camera on or off.
- Drag & Drop Support: Easily load videos by dragging them into the popup.
- Clear All Data: One button to erase all stored videos and settings.
- Improved Error Handling: User-friendly notifications for errors and actions.
- Instancied: Each domain can handle a different camera. E.g. The camera you use to Instagram is not the same one you use on Discord.
- Settings (coming soon): Loop, autoplay, and mute toggles (UI ready).
- Virtual Camera Stream: Replace your webcam with any video file in supported sites.
- Popup Controls: Play, pause, seek, and manage your video directly from the extension popup.
- Domain-specific Activation: The extension only applies to the current domain for privacy.
- No External Servers: All processing and storage are local to your browser.
- Download or clone this repository.
- Open Chrome and go to
chrome://extensions/. - Enable Developer mode (top right).
- Click Load unpacked and select the extension folder.
- The extension icon should now appear in your Chrome toolbar.
- Click the extension icon to open the popup.
- Load a video (drag & drop or use the button).
- Click Enable camera to activate the virtual camera.
- Use the video controls to play, pause, or seek.
- The extension will remember your position and settings.
- Fox3000foxy
- GitHub Copilot (GPT 4.1, Claude 3.5 Sonnet)
This project is licensed under the MIT License.
- Works best on sites that use
getUserMediafor webcam access. - All video data stays on your device.
- For feedback or issues, open a GitHub issue.
- Click directly on the video to pause it, do not use the pause button from the seekbar, it will not pause properly the mirrored flux

