ByteScope

Barcode Scanner

Scan barcodes with your camera online: real-time detection, instant inventory counts, editable names, and CSV export.

Nothing is uploaded. Barcode scanning and inventory data remain entirely in your browser.

Scan barcode

Point your camera at an EAN, UPC, Code 128 or QR barcode to scan.

Last scanned: none

Scanned inventory

Each scan automatically increments quantity. Edit item names or adjust counts below.

0 distinct items · 0 total units

No items scanned yet. Start the camera and scan a barcode to begin.

Export inventory

Download your inventory table as a CSV file.

  • Excel format includes a UTF-8 BOM so Chinese and Japanese characters open correctly in Microsoft Excel.
  • Standard UTF-8 is ideal for Google Sheets, Python, databases and command-line tools.

Local processing & honesty

  • All inventory data is stored locally in your browser (localStorage). No account or server required.
  • Camera video stream is processed in real time and never uploaded or sent to any remote server.
  • Same barcode detected within 1.5 seconds is counted only once to prevent accidental duplicate counts.

Browser detection & format support

Live detection of Shape Detection API features on this device:

BarcodeDetector requires a Chromium-based browser (Chrome, Edge, Brave, Opera). Firefox and Safari currently do not support the Shape Detection API.

Pure JavaScript QR readers like jsQR cannot decode 1D retail barcodes (EAN-13, EAN-8, UPC, Code 128), so no client-side polyfill is possible.

  • BarcodeDetector API: checking…
  • EAN-13 (ean_13) checking…
  • EAN-8 (ean_8) checking…
  • UPC-A (upc_a) checking…
  • UPC-E (upc_e) checking…
  • Code 128 (code_128) checking…
  • QR Code (qr_code) checking…

About this tool

Scan 1D barcodes and QR codes instantly using your device camera without installing any apps or browser extensions. This barcode scanner online tool turns your phone, tablet, or laptop into a fast inventory counter with real-time barcode recognition. Every scanned item is automatically aggregated into a structured list with quantities, timestamps, and editable product names, ready to export as CSV.

Real-time inventory counting with 1.5-second debounce

Generic barcode readers only display the raw decoded string, forcing you to copy and paste each scan. This tool features a built-in inventory workflow: scanning a barcode increments its count instantly in your inventory table. To prevent accidental double-counts when holding a product in front of the lens, a strict 1.5-second debounce window ensures that the same barcode detected repeatedly within 1.5 seconds is counted only once.

Browser-native Shape Detection API and compatibility

Barcode detection is powered directly by Chromium's hardware-accelerated Shape Detection API (BarcodeDetector). This native implementation decodes high-density retail formats including EAN-13, EAN-8, UPC-A, UPC-E, Code 128, and QR codes at full camera frame rates. Because pure JavaScript QR readers like jsQR cannot decode 1D retail barcodes, this page honestly requires a Chromium browser (Chrome, Edge, Opera, Brave) and cannot be polyfilled in Firefox or Safari.

Zero data upload and local storage privacy

Your camera video stream is processed in real time entirely inside your browser and is never recorded, transmitted, or uploaded to any server. When you switch tabs or minimize your window, the camera automatically pauses to conserve battery and protect your privacy. All inventory items and custom names are saved in localStorage on your device, ensuring your stock data persists between visits without creating an account.

Dual CSV export for Excel and databases

When your stocktake is complete, export your inventory table with a single click. Choose Excel CSV format with an automated UTF-8 BOM to guarantee seamless opening in Microsoft Excel without character encoding glitches for Japanese or Chinese product names, or export standard UTF-8 CSV for Google Sheets, SQL databases, Python scripts, and warehouse management systems.

Frequently asked questions

How does the inventory counting mode work?

Whenever your camera recognizes a barcode or QR code, the item is added to the inventory table with a count of 1. Scanning the same code again increments the quantity by 1. A built-in 1.5-second debounce timer prevents the camera from registering rapid multiple counts on a single pass.

Why is the camera scanner not working on Firefox or Safari?

This tool relies on the native BarcodeDetector API provided by the Chromium engine (Chrome, Edge, Brave, Opera). Firefox and Safari currently do not support the Shape Detection API. Because pure JavaScript fallback libraries like jsQR can only decode QR codes and cannot read 1D barcodes (such as EAN-13 or Code 128), a client-side polyfill is not available.

Is my camera video stream or inventory data uploaded to any server?

No. All barcode detection and inventory management run completely on your local device in client-side JavaScript. The camera feed is processed in memory and never leaves your browser, and your inventory list is stored strictly in your browser's local storage.

Why did the camera turn off when I switched tabs?

To protect your privacy and conserve battery life, the camera stream is automatically stopped whenever the tab is hidden or sent to the background. When you return to the tab, simply click Start camera to resume scanning.

What is the difference between the two CSV export options?

The Excel CSV option adds a UTF-8 Byte Order Mark (BOM) to ensure that Microsoft Excel correctly detects character encoding and renders non-ASCII product names without gibberish. The Standard UTF-8 CSV option outputs standard comma-separated text without a BOM, which is best for Google Sheets, databases, and programming scripts.