Repository navigation
Projects Using the Dataset
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.
| 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 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 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
modeltag 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 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 speedStrixCamDB 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_leadfield. - Leads we couldn't confirm officially stay in
unverified_leadsand are never published as fact.
This keeps the RTSP layer independently sourced and CC0. See Stream URLs by Brand for how to use it.
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');- 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.
Use the data
Use the website
Contribute
- Reporting a Working Config
- Brand Sourcing Notes
- Brands Wanted and Not Addable
- Open an issue
- CONTRIBUTING.md
Ecosystem