What is going on
The endoscope is a vendor-class USB device, not a UVC webcam, so the kernel's uvcvideo driver refuses it (that is the "No valid video chain found" line) and no /dev/video node appears. Cheese, guvcview, OBS and ffmpeg only look at /dev/video*, so they all report "no device". lsusb shows it as 2ce3:3828 (or 0329:2022).
Let your user open the device
Chrome needs permission to open the raw USB device. Add one udev rule:
sudo tee /etc/udev/rules.d/99-endoscope.rules <<'RULES'
SUBSYSTEM=="usb", ATTR{idVendor}=="2ce3", ATTR{idProduct}=="3828", MODE="0666", TAG+="uaccess"
SUBSYSTEM=="usb", ATTR{idVendor}=="0329", ATTR{idProduct}=="2022", MODE="0666", TAG+="uaccess"
RULES
sudo udevadm control --reload && sudo udevadm trigger
Then unplug and replug the camera.
Open the viewer
- Open the viewer in Chrome, Chromium or Edge (Firefox has no WebUSB).
- Press Connect camera and pick the device.
If Chrome shows the device but connecting fails with "unable to claim interface", the udev rule is not applied yet (check ls -l /dev/bus/usb/*/* for the device's permissions) or another program holds it.
Prefer a native tool?
There are open-source Python and libusb drivers for this protocol if you want the frames in your own scripts; search for "supercamera endoscope". The viewer here is the no-install route.
Try it
Open the viewer Chrome or Edge on a computer, or Chrome on Android. Nothing is uploaded.