Skip to content

hellsontime/camspoof

Cam Spoofer

A Chrome extension that lets you force any website to use your preferred camera — even when the site ignores your choice.

Demo

The Problem

Video chat sites like Chatroulette, Omegle, and similar platforms enumerate your cameras via navigator.mediaDevices.enumerateDevices() and pick one using their own logic. They don't give you a camera selector, and they often ignore virtual cameras entirely.

This means if you have a virtual camera set up (like OBS Virtual Camera), these sites will still default to your built-in webcam (e.g., FaceTime HD Camera) — and there's nothing you can do about it from the site's UI.

The Solution

Cam Spoofer intercepts the browser's camera APIs and makes your chosen camera appear as the only available video device. The website has no choice but to use it.

You can also rename the device — for example, make "OBS Virtual Camera" appear as "FaceTime HD Camera" so the site can't tell anything has changed.

Features

  • Camera override — select which camera websites see, hiding all others
  • Device renaming — optionally spoof the camera name to match any label
  • Anti-detection — patched APIs pass toString() and instanceof checks, appearing fully native
  • Per-session config — enable/disable with a toggle, changes apply on page reload
  • Zero permissions abuse — only uses storage permission, no network requests, no data collection

Installation

  1. Download or clone this repository:
    git clone https://github.com/hellsontime/camspoof.git
  2. Open Chrome and go to chrome://extensions
  3. Enable Developer mode (toggle in the top right)
  4. Click Load unpacked and select the camspoof folder
  5. The Cam Spoofer icon appears in your toolbar

Usage

Example: Using OBS Virtual Camera on Chatroulette

  1. Set up a virtual camera — In OBS Studio, click Start Virtual Camera (or use any virtual cam software)

  2. Grant camera access — Navigate to the video chat site, open the Cam Spoofer popup, and click Grant camera access if prompted. This lets the extension see your available cameras.

  3. Select your camera — Pick OBS Virtual Camera (or whichever camera you want) from the dropdown

  4. Optional: rename it — Type a custom name like FaceTime HD Camera in the Custom name field. The site will see this name instead of the real one.

  5. Enable and reload — Toggle the switch on and reload the page. The site now sees only your selected camera.

All Camera Names

The popup shows all detected cameras with click-to-copy labels — useful when you want to rename your virtual camera to match a real device name exactly.

Tested With

Works on any website that accesses your camera through standard browser APIs, including:

  • Chatroulette (chatroulette.com)
  • Omegle / Omegle alternatives (ome.tv, chathub.cam, etc.)
  • Google Meet
  • Jitsi Meet
  • Zoom Web Client
  • Discord (browser version)
  • Any WebRTC-based video chat

Compatible virtual camera sources:

  • OBS Virtual Camera (OBS Studio)
  • ManyCam
  • Snap Camera
  • XSplit VCam
  • Any virtual camera that registers as a video input device

How It Works

The extension injects into the page's main JavaScript context (MAIN world) at document_start and patches two browser APIs:

  • enumerateDevices() — filtered to return only the selected camera (with an optional spoofed label)
  • getUserMedia() — forces the deviceId constraint to the selected camera and spoofs track labels

A separate content script in the ISOLATED world reads config from chrome.storage.local and passes it to the injected script via a DOM attribute.

All patched functions are cloaked with custom Function.prototype.toString overrides so they appear as native code to fingerprinting checks.

Privacy

  • No data collection — the extension stores your camera preference locally and nothing else
  • No network requests — zero external communication
  • No tracking — no analytics, no telemetry
  • Minimal permissions — only storage for saving your settings

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

MIT