Skip to content

Projects Using the Dataset

bassem chagra edited this page Oct 26, 2026 · 1 revision

The dataset is CC0, so anyone can build on it. This page lists the projects and integrations we know about, what each one takes from the data, and where to find it. If you use the data somewhere, tell us and we'll add you.

At a glance

Project What it uses Status
cctv-database.com the whole dataset live
God's Eye View data/model-enrichment.json (FOV, resolution, night vision, PTZ) shipped in the CCTV layer; more proposed
NetBox device-type library PoE, link speed, power and weight from each datasheet 6,000+ device types merged, 60+ manufacturers
StrixCamDB nothing is copied; used as a lead source only see below

cctv-database.com

cctv-database.com is the viewer for this repo. It's rebuilt from the dataset on each release, so it shows the same records you'd get from data/cameras.json.

  • Search, filter and compare cameras on the home page.
  • Every camera has its own page at https://www.cctv-database.com/camera/<id>/, and every brand has a brand page.
  • A read-only static JSON API (no key, no rate limit) serves one camera or one brand at a time. The endpoints are listed in Using the Data.

God's Eye View

God's Eye View is an open-source map viewer. Its CCTV layer shows public camera feeds on a map, each with an estimated coverage cone. When a camera feed names its hardware model, God's Eye View looks that model up in records taken from this dataset's data/model-enrichment.json.

Shipped (merged):

  • #452: enrich identified cameras with datasheet FOV and specs. For a camera with a known model, the coverage cone uses the manufacturer's horizontal field of view instead of an estimate, and the camera's info line gains its resolution, night-vision range and PTZ. Cameras with no known model are unchanged.
  • #645: King County road cameras (Washington State). The county publishes each camera's manufacturer and model, so these are the first feed whose hardware #452 can resolve.

Proposed (open pull requests):

  • #884: show the hardware maker for Austin's cameras. It flags Pelco Spectra cameras as PTZ because every Spectra model in this dataset is a PTZ dome.
  • #1319: add the Bosch MIC PTZ records named in the City of Amsterdam camera register.
  • #1360: show datasheet specs on ALPR (licence-plate reader) cameras mapped in OpenStreetMap whose model tag matches a camera in the dataset.

All of these follow the same rule: an unknown model never implies anything, and only datasheet values are displayed.

NetBox device-type library

NetBox users model their network hardware from the community devicetype-library. The dataset's scripts/gen-netbox.js turns camera records into device types for that library: a PoE network interface (with the PoE standard taken from the datasheet), a DC power port when the datasheet gives a DC input, a microSD module bay, the weight, and a comment linking the datasheet and the camera's page on the website.

A device type is only generated when the datasheet states the Ethernet link speed, because the library requires an interface type and we don't guess it.

So far 6,000+ camera device types from 60+ manufacturers have been merged upstream, including Hikvision, Dahua, AXIS, Bosch, Hanwha (Wisenet), Uniview, Milesight, Vivotek, Reolink, i-PRO and Mobotix. A few larger batches (ACTi, Hanwha, more Hikvision) are still open for review. You can see every contribution in the library's pull request list.

To generate files yourself:

node scripts/gen-netbox.js --brand Hikvision            # writes netbox-out/device-types/Hikvision/*.yaml
node scripts/gen-netbox.js --brand Hikvision --report   # PoE cameras still missing a link speed

StrixCamDB

StrixCamDB is a community database of camera stream URLs. We use it only as a lead source for brand-level RTSP paths in data/rtsp-patterns.json:

  • Nothing is copied from it. Every path is re-checked against the manufacturer's own documentation (manual, API docs or knowledge base), and that official document is recorded as the path's source.
  • Strix is credited as where the lead came from, in each template's strix_lead field.
  • Leads we couldn't confirm officially stay in unverified_leads and are never published as fact.

This keeps the RTSP layer independently sourced and CC0. See Stream URLs by Brand for how to use it.

The join file: model-enrichment.json

If your project already knows which camera model it's looking at and just wants to describe it, use data/model-enrichment.json rather than the full dataset. It's what God's Eye View uses.

It has one entry per camera with only the fields a viewer needs:

Field Notes
id, brand, model, aliases for matching
type bullet, dome, ptz…
url the camera's page on cctv-database.com
fov_deg the datasheet's field-of-view string (may be a range or per focal length)
resolution mp, w, h, label
ptz, autotracking, varifocal, lens_count present only when they apply
night_vision type and range_m
environment, ndaa_compliant when known

It deliberately leaves out sources, configs, stream paths and anything else for connecting to a camera: it describes camera products, not installations.

How to join, from the file's own _meta.join_hint: match on model (exact, case-insensitive) or any of the aliases, and use brand to tell apart the rare models that two brands share. _meta also gives the dataset version and the generated date, so you can tell which release you vendored.

const { cameras } = require('./model-enrichment.json');
const byCode = new Map();
for (const c of cameras)
  for (const m of [c.model, ...(c.aliases || [])])
    byCode.set(`${c.brand}|${m}`.toLowerCase(), c);

byCode.get('axis|q6135-le');

Using it in your project?

  • Get listed here: open an issue from the issue chooser with your project's name, a link, and what you use from the dataset. We're happy to list open-source and commercial projects.
  • Crediting: the data is CC0, so attribution is optional. If you'd like to credit it anyway, a line like "Camera specs from the CCTV Camera Database (CC0)" with a link is plenty.
  • Found a wrong value while integrating? Open a correction issue with the datasheet link. Fixes ship in the next release and flow into every file above.

Clone this wiki locally