Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,22 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)

---

## [1.10.0] — 2026-06-22

### Added

- **VIGI brand — 24 TP-Link VIGI professional cameras** (TP-Link's business PoE line, distinct from the consumer Tapo line). Covers the VIGI C-series and InSight S-series: bullets, turrets, domes, PTZ, panoramic, fisheye, and an LPR/ANPR camera. Spec-sourced from official TP-Link/VIGI datasheets; ONVIF/RTSP support and Frigate configs included.

### Fixed

- VIGI `InSight LPR345Z` / `S245ZI` / `S345ZI` / `S445ZI`: `audio.two_way` corrected to `true` — these have a built-in microphone + audio-out terminal (two-way via external speaker) but no built-in speaker, per official datasheets. IK10 vandal ratings independently verified correct across the VIGI line.

### Changed

- Database now covers **1,391 cameras** across **68 brands**.

---

## [1.9.0] — 2026-06-20

ABUS brand rebuild. The ABUS section was substantially fabricated (made-up article numbers + invented RTSP/Frigate configs). It was verified against official ABUS sources and the ABUS catalog, then rebuilt — **ABUS 15 → 76 cameras**.
Expand Down
25 changes: 13 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# CCTV Camera Database

An open, structured database of 1,367 CCTV / IP camera models and their technical specifications, covering 67 brands across every market segment — from budget consumer WiFi cameras to enterprise PTZ domes and thermal imaging systems. Each camera is a validated JSON file, aggregated into a single queryable dataset (JSON + CSV).
An open, structured database of 1,391 CCTV / IP camera models and their technical specifications, covering 68 brands across every market segment — from budget consumer WiFi cameras to enterprise PTZ domes and thermal imaging systems. Each camera is a validated JSON file, aggregated into a single queryable dataset (JSON + CSV).

[![cameras](https://img.shields.io/badge/cameras-1%2C367-blue)](data/cameras.json)
[![brands](https://img.shields.io/badge/brands-67-green)](cameras/)
[![cameras](https://img.shields.io/badge/cameras-1%2C391-blue)](data/cameras.json)
[![brands](https://img.shields.io/badge/brands-68-green)](cameras/)
[![license](https://img.shields.io/badge/license-CC0-lightgrey)](LICENSE)

---
Expand Down Expand Up @@ -31,7 +31,7 @@ Prefer to self-host or browse offline? A [standalone demo](docs/demo.html) (just
- **Filter** — narrow by brand, camera type, night vision, resolution, or market
- **Sort** — click any column header to sort ascending/descending
- **Detail drawer** — click a row to slide open the full spec sheet (resolution, connectivity, protocols, storage, audio, pricing, source links)
- **Pagination** — page through all 1,367 cameras, 25 per page
- **Pagination** — page through all 1,391 cameras, 25 per page
- **Stats bar** — live counts for total cameras, brands, 4K+, WiFi, and no-subscription models

---
Expand Down Expand Up @@ -63,7 +63,7 @@ cctv-camera-database/
│ ├── tapo/ # 62 cameras
│ └── …60 more brands
├── data/ # GENERATED — do not edit by hand
│ ├── cameras.json # all 1,367 cameras as one array
│ ├── cameras.json # all 1,391 cameras as one array
│ └── cameras.csv # flattened, spreadsheet-friendly
├── schema/
│ └── camera.schema.json
Expand Down Expand Up @@ -121,17 +121,17 @@ Or open `data/cameras.csv` in any spreadsheet for a quick browse.

| Metric | Count |
|--------|-------|
| Total cameras | **1,367** |
| Brands | **67** |
| Total cameras | **1,391** |
| Brands | **68** |
| Form factors | 10 (bullet, dome, turret, PTZ, dual-lens, panoramic, covert, box, fisheye, doorbell) |
| PoE wired | 908 |
| PoE wired | 931 |
| WiFi | 428 |
| Battery / wire-free | 152 |
| 4K / 8MP+ | 418 |
| 4–5MP | 604 |
| 1080p–2MP | 334 |
| 4K / 8MP+ | 426 |
| 4–5MP | 619 |
| 1080p–2MP | 335 |

### All 67 brands
### All 68 brands

| Brand | Cameras | Segment |
|-------|---------|---------|
Expand All @@ -146,6 +146,7 @@ Or open `data/cameras.csv` in any spreadsheet for a quick browse.
| Ring (Amazon) | 25 | Consumer ecosystem, US/EU/AU |
| Avigilon | 24 | Enterprise NDAA, US/CA |
| Amcrest | 24 | Prosumer, US |
| VIGI (TP-Link) | 24 | Business/SMB PoE, global |
| Ubiquiti UniFi | 26 | Prosumer/SMB, US/global |
| Annke | 23 | Prosumer, global |
| Google Nest | 19 | Consumer smart home, global |
Expand Down
121 changes: 121 additions & 0 deletions cameras/vigi/c345.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
{
"id": "vigi-c345",
"brand": "VIGI",
"model": "VIGI C345",
"type": "bullet",
"connectivity": [
"ethernet"
],
"power_source": [
"poe",
"dc"
],
"resolution": {
"megapixels": 4,
"max_width": 2688,
"max_height": 1520,
"label": "4MP"
},
"video": {
"codecs": [
"H.265+",
"H.265",
"H.264+",
"H.264"
],
"max_fps": 30,
"streams": [
{
"name": "main",
"resolution": "2688x1520",
"fps": 30,
"codec": "H.265+"
},
{
"name": "sub",
"resolution": "640x480",
"fps": 30,
"codec": "H.265"
}
]
},
"sensor": "1/2.7\" Progressive Scan CMOS",
"lens": {
"focal_length_mm": "2.8/4/6",
"aperture": "F1.6",
"varifocal": false
},
"night_vision": {
"type": "hybrid",
"range_m": 30
},
"power": {
"method": "PoE / DC",
"consumption_w": 10.7,
"voltage": "12V DC / 802.3af/at",
"poe_class": 0
},
"storage": {
"onboard": true,
"max_microsd_gb": 512,
"nvr_compatible": true,
"cloud": true
},
"protocols": [
"onvif",
"rtsp",
"http",
"rtmp"
],
"ip_rating": "IP67",
"audio": {
"microphone": true,
"speaker": true,
"two_way": true
},
"features": [
"people & vehicle analytics",
"human & vehicle classification",
"person detection",
"vehicle detection",
"line-crossing detection",
"intrusion detection",
"region entering detection",
"region exiting detection",
"object abandoned detection",
"object removal detection",
"loitering detection",
"abnormal sound detection",
"scene change detection",
"active defense",
"full-color night vision",
"wdr 120db"
],
"operating_temp_c": "-30 to 60",
"dimensions_mm": "184 x 74 x 74",
"weight_g": 525,
"environment": [
"outdoor"
],
"markets": [
"global"
],
"sources": [
"https://www.vigi.com/en/business-networking/vigi-network-camera/vigi-c345/"
],
"configs": {
"frigate": {
"rtsp_url_template": "rtsp://{user}:{pass}@{ip}:554/stream1",
"best_substream": "rtsp://{user}:{pass}@{ip}:554/stream2",
"recommended_stream_type": "go2rtc",
"verified": false
},
"home_assistant": {
"integration": "onvif",
"connection_type": "local_push",
"two_way_audio": true,
"onvif_events": true
}
},
"status": "available"
}
121 changes: 121 additions & 0 deletions cameras/vigi/c355.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
{
"id": "vigi-c355",
"brand": "VIGI",
"model": "VIGI C355",
"type": "bullet",
"connectivity": [
"ethernet"
],
"power_source": [
"poe",
"dc"
],
"resolution": {
"megapixels": 5,
"max_width": 2880,
"max_height": 1620,
"label": "5MP"
},
"video": {
"codecs": [
"H.265+",
"H.265",
"H.264+",
"H.264"
],
"max_fps": 30,
"streams": [
{
"name": "main",
"resolution": "2880x1620",
"fps": 30,
"codec": "H.265+"
},
{
"name": "sub",
"resolution": "640x480",
"fps": 30,
"codec": "H.265"
}
]
},
"sensor": "1/2.7\" Progressive Scan CMOS",
"lens": {
"focal_length_mm": "2.8/4/6",
"aperture": "F1.6",
"varifocal": false
},
"night_vision": {
"type": "hybrid",
"range_m": 30
},
"power": {
"method": "PoE / DC",
"voltage": "12V DC / 802.3af/at",
"poe_class": 0,
"consumption_w": 10.7
},
"storage": {
"onboard": true,
"max_microsd_gb": 512,
"nvr_compatible": true,
"cloud": true
},
"protocols": [
"onvif",
"rtsp",
"http",
"rtmp"
],
"ip_rating": "IP67",
"audio": {
"microphone": true,
"speaker": true,
"two_way": true
},
"features": [
"people & vehicle analytics",
"human & vehicle classification",
"person detection",
"vehicle detection",
"line-crossing detection",
"intrusion detection",
"region entering detection",
"region exiting detection",
"object abandoned detection",
"object removal detection",
"loitering detection",
"abnormal sound detection",
"scene change detection",
"active defense",
"full-color night vision",
"wdr 120db"
],
"operating_temp_c": "-30 to 60",
"environment": [
"outdoor"
],
"markets": [
"global"
],
"sources": [
"https://www.vigi.com/en/business-networking/vigi-network-camera/vigi-c355/"
],
"configs": {
"frigate": {
"rtsp_url_template": "rtsp://{user}:{pass}@{ip}:554/stream1",
"best_substream": "rtsp://{user}:{pass}@{ip}:554/stream2",
"recommended_stream_type": "go2rtc",
"verified": false
},
"home_assistant": {
"integration": "onvif",
"connection_type": "local_push",
"two_way_audio": true,
"onvif_events": true
}
},
"status": "available",
"weight_g": 525,
"dimensions_mm": "184 x 74 x 74"
}
Loading
Loading