Repository navigation
Conversation
Records whose site pages rendered the same brand+model title were compared field by field against their sources: - 60 true duplicates / erroneous ids (stray megapixel suffix such as -a22/-dl8/-dl4mp, truncated -dl for -DL3 models, Sunell ids missing the SN- prefix, Kedacom FN/FNB slug variants, Intelbras ids that dropped the "+"): merged valid unique fields into the record whose id matches the model slug, and removed the other (65 files). - 5 ZOSI groups (C225, C261, C186, C186A, C296B) are distinct products sharing one code: model set to the variant name, base code kept as an alias. - Vivotek FD816B / FD816B-HT left untouched for review. Datasheet-checked fixes: built-in mic on Uniview IPC3234SA/IPC3238SA/ IPC2B24SA-*-PI-I2A; Kedacom IPC2251 lens/FOV per lens variant; Kedacom IPC2452 DC power.
Merged
Owner
Author
|
Closing as superseded by #414 (release 2.28.0). The dedupe was redone on current data with a field-level three-way merge: this PR's edits were applied where no later release had changed the field, fixes made to the removed copies were carried over, and the 67 old ids now redirect to the surviving camera page. Thanks for the original work! |
zcq100
pushed a commit
to zcq100/cctv-camera-database
that referenced
this pull request
Oct 24, 2026
Redoes the dedupe from ch-bas#391 on current data. Records whose pages rendered the same brand + model were compared field by field: 67 true duplicates (Uniview ids with a stray megapixel suffix or a truncated -dl, Sunell ids missing the SN- prefix, Kedacom FN/FNB and HN/HNB slugs, Intelbras ids that dropped the "+", a Vivotek FD816B record that duplicated FD816B-HT) are merged into the record whose id matches the model. ch-bas#391's field edits are applied only where a later release had not changed the field, and fixes later releases made to the removed copy are carried over. Datasheet-checked while merging: Uniview IPC2128LB max_fps 20 (main 3840x2160@20); IPC314LE/IPC3534LE stay 25 fps at 2688x1520; Sunell IPR5321KABN-B detect follows its 720x576 substream. Distinct products that share a base code keep their records: the ZOSI C186, C186A, C225, C261 and C296B variants are now named by variant, with the base code as an alias; RVi-2NCD2089 (3.6-14) has two products, told apart by their RVi article numbers 2.11.0964 and 2.11.1153.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Resolves 71 groups of camera records (143 ids) whose site pages rendered the same title (brand + model).
Every group was compared field by field against its records'
sources.-a22/-dl8/-dl4mp) or a truncated-dlfor a-DL3model. Merged into the correct record and removedmodelset to the variant name, base code kept inaliases. No ids change65 records removed.
How the merge was done
sources,aliases,protocols,video.codecs,power_source,connectivity,environment,markets→ union.video.streams: when the resolution and fps match, per-stream fields were filled in (mostlycodec)."99.5 horizontal"→"99.5 horizontal, 56.5 vertical, 114.4 diagonal (2.8mm)"). Any other conflict kept the kept record's value.Corrections checked against sources
audio.microphonefalse → true. Each datasheet says "Built-in dual-mic".type: bullet. The product page describes a fixed bullet that does not pan or tilt. The duplicate'sptzandmicrophone: true(it only has an audio line-in) were not merged. The 0–250 °C / −20–150 °C operating ranges are real (water- or air-cooled housings, per the product page).power_sourcenow includes DC (source: "12V DC / PoE").-plusids, which follow the brand's convention for "FC+". The removedintelbras-vip-…-fcids dropped the "+" and read like the separate non-plus FC models. The merged built-in mic, microSD 256 GB and power values are confirmed by the Intelbras datasheets.Left for human review / follow-up
vivotek-fd816bvsvivotek-fd816b-ht. Both have model FD816B-HT, but they cite two different Vivotek datasheets (fd816bdatasheet_en.pdfvsfd816b-htdatasheet_en.pdf) and disagree on FOV and operating temperature. The Wayback sources could not be reached to check whether FD816B is a separate model. Both are untouched.turret, the duplicate saiddome, and the datasheet title says "Fixed Dome". Keptturretto match its sibling IPC3612LB-ADF28K-K; please confirm.night_vision.range_mis 50, which fits the -SIR40 variant; the -SIR80 variant reaches 80–120 m.ip_ratingkept IP66. The page lists IP66 for -HN and IP67 for -HNB.Decisions per group
uniview-ipc3532le-adzk-dl3; removeuniview-ipc3532le-adzk-dlsunell-sn-ipc8084han-f; removesunell-ipc8084han-funiview-ipc2122lb-af28-a2; removeuniview-ipc2122lb-af28-a22sunell-sn-ipd8080epar-b; removesunell-ipd8080epar-buniview-ipc2122lb-sf28k-a; removeuniview-ipc2122lb-sf28k-a2kedacom-ipc2552-fn-fnb-sir50-z2812; removekedacom-ipc2552-fn-sir50-z2812uniview-ipc322lb-af28k-a2; removeuniview-ipc322lb-af28k-a22uniview-ipc324le-adf28k-dl3; removeuniview-ipc324le-adf28k-dluniview-ipc3534le-adzk-dl3; removeuniview-ipc3534le-adzk-dluniview-ipc3614le-adf28k-dl3; removeuniview-ipc3614le-adf28k-dluniview-ipc325lb-af28-a2; removeuniview-ipc325lb-af28-a25uniview-ipc3238sa-adzk-pi-ls-i2a; removeuniview-ipc3238sa-adzk-pi-ls-i2a8uniview-ipc322lb-sf28k-a; removeuniview-ipc322lb-sf28k-a2uniview-ipc3612lb-adf28k-k; removeuniview-ipc3612lb-adf28k-k2uniview-ipc3632le-adzk-dl3; removeuniview-ipc3632le-adzk-dluniview-ipc3614lb-af28k-a2; removeuniview-ipc3614lb-af28k-a24uniview-ipc3614lb-af28-a2; removeuniview-ipc3614lb-af28-a24uniview-ipc322lb-af28wk-g; removeuniview-ipc322lb-af28wk-g2uniview-ipc3612le-adf28k-dl3; removeuniview-ipc3612le-adf28k-dluniview-ipc2124lb-af28-a2; removeuniview-ipc2124lb-af28-a24zosi-c225-4k-poe,zosi-c225-5mp-poeintelbras-vip-3230-d-fc-plus-ia; removeintelbras-vip-3230-d-fc-iauniview-ipc322lb-af28-a2; removeuniview-ipc322lb-af28-a22uniview-ipc2124lb-af28k-a2; removeuniview-ipc2124lb-af28k-a24kedacom-ipc2452-hn-hnb-pir; removekedacom-ipc2452-hn-pirzosi-c261-5mp-poe,zosi-c261-analoguniview-ipc314le-adf28k-dl; removeuniview-ipc314le-adf28k-dl4mpuniview-ipc3612lb-af28-a2; removeuniview-ipc3612lb-af28-a22kedacom-ipc2251-hn-hnb; removekedacom-ipc2251-hnuniview-ipc2128lb-adf28k-dl; removeuniview-ipc2128lb-adf28k-dl8uniview-ipc2122le-adf28k-dl3; removeuniview-ipc2122le-adf28k-dlsunell-sn-ipd8084epar-b; removesunell-ipd8084epar-buniview-ipc3234sa-ahdzk-pi-i2a; removeuniview-ipc3234sa-ahdzk-pi-i2a4uniview-ipc322le-adf28k-dl3; removeuniview-ipc322le-adf28k-dluniview-ipc3614lb-adf28k-k; removeuniview-ipc3614lb-adf28k-k4sunell-sn-ipc8047han-ft; removesunell-ipc8047han-ftvivotek-fd816b,vivotek-fd816b-htuniview-ipc2124le-adf28k-dl3; removeuniview-ipc2124le-adf28k-dluniview-ipc2125lb-af28-a2; removeuniview-ipc2125lb-af28-a25zosi-c186-4mp-wifi,zosi-c186-5mp-poekedacom-ipc2852-fn-fnb-sir50-z; removekedacom-ipc2852-fn-sir50-zuniview-ipc324lb-af28-a2; removeuniview-ipc324lb-af28-a24uniview-ipc2122lb-af28k-a2; removeuniview-ipc2122lb-af28k-a22uniview-ipc324lb-af28k-a2; removeuniview-ipc324lb-af28k-a24uniview-ipc3615lb-af28-a2; removeuniview-ipc3615lb-af28-a25sunell-sn-ipc8045han-ft; removesunell-ipc8045han-ftsunell-sn-chp8650jan-z30-s-s; removesunell-chp8650jan-z30-s-szosi-c186a-4k-poe,zosi-c186a-5mp-wifisunell-sn-ipc8290wan-ec-t; removesunell-ipc8290wan-ec-tsunell-sn-chp8650jan-z30-s-f; removesunell-chp8650jan-z30-s-fsunell-sn-ipr5321kabn-b; removesunell-ipr5321kabn-buniview-ipc3234sa-ahdzk-pi-ls-i2a; removeuniview-ipc3234sa-ahdzk-pi-ls-i2a4intelbras-vip-1220-fc-plus; removeintelbras-vip-1220-fcuniview-ipc2324le-adzk-dl3; removeuniview-ipc2324le-adzk-dluniview-ipc3634le-adzk-dl3; removeuniview-ipc3634le-adzk-dl34mpintelbras-vip-1430-d-fc-plus; removeintelbras-vip-1430-d-fczosi-c296b-4k-poe,zosi-c296b-5mp-poe,zosi-c296b-wifi6uniview-ipc312le-adf28k-dl; removeuniview-ipc312le-adf28k-dl2mpuniview-ipc3614lb-sf28-a; removeuniview-ipc3614lb-sf28-a4uniview-ipc2124lb-adf28km-k; removeuniview-ipc2124lb-adf28km-k4uniview-ipc3238sa-adzk-pi-i2a; removeuniview-ipc3238sa-adzk-pi-i2a8uniview-ipc322lb-adf28k-k; removeuniview-ipc322lb-adf28k-k2intelbras-vip-3230-fc-plus-ia; removeintelbras-vip-3230-fc-iauniview-ipc2322le-adzk-dl3; removeuniview-ipc2322le-adzk-dl32mpuniview-ipc2b28sa-adzk-pi-ls-i2a; removeuniview-ipc2b28sa-adzk-pi-ls-i2a8uniview-ipc2124lb-sf28-a; removeuniview-ipc2124lb-sf28-a4uniview-ipc2b24sa-ahdzk-pi-ls-i2a; removeuniview-ipc2b24sa-ahdzk-pi-ls-i2a4uniview-ipc2b24sa-ahdzk-pi-i2a; removeuniview-ipc2b24sa-ahdzk-pi-i2a4uniview-ipc324lb-sf28-a; removeuniview-ipc324lb-sf28-a4uniview-ipc3618lb-adf28k-dl; removeuniview-ipc3618lb-adf28k-dl8uniview-ipc3612lb-af28k-a2; removeuniview-ipc3612lb-af28k-a22Redirects (removed → kept)
The web repo should add these as 301s when this data ships:
{ "uniview-ipc3532le-adzk-dl": "uniview-ipc3532le-adzk-dl3", "sunell-ipc8084han-f": "sunell-sn-ipc8084han-f", "uniview-ipc2122lb-af28-a22": "uniview-ipc2122lb-af28-a2", "sunell-ipd8080epar-b": "sunell-sn-ipd8080epar-b", "uniview-ipc2122lb-sf28k-a2": "uniview-ipc2122lb-sf28k-a", "kedacom-ipc2552-fn-sir50-z2812": "kedacom-ipc2552-fn-fnb-sir50-z2812", "uniview-ipc322lb-af28k-a22": "uniview-ipc322lb-af28k-a2", "uniview-ipc324le-adf28k-dl": "uniview-ipc324le-adf28k-dl3", "uniview-ipc3534le-adzk-dl": "uniview-ipc3534le-adzk-dl3", "uniview-ipc3614le-adf28k-dl": "uniview-ipc3614le-adf28k-dl3", "uniview-ipc325lb-af28-a25": "uniview-ipc325lb-af28-a2", "uniview-ipc3238sa-adzk-pi-ls-i2a8": "uniview-ipc3238sa-adzk-pi-ls-i2a", "uniview-ipc322lb-sf28k-a2": "uniview-ipc322lb-sf28k-a", "uniview-ipc3612lb-adf28k-k2": "uniview-ipc3612lb-adf28k-k", "uniview-ipc3632le-adzk-dl": "uniview-ipc3632le-adzk-dl3", "uniview-ipc3614lb-af28k-a24": "uniview-ipc3614lb-af28k-a2", "uniview-ipc3614lb-af28-a24": "uniview-ipc3614lb-af28-a2", "uniview-ipc322lb-af28wk-g2": "uniview-ipc322lb-af28wk-g", "uniview-ipc3612le-adf28k-dl": "uniview-ipc3612le-adf28k-dl3", "uniview-ipc2124lb-af28-a24": "uniview-ipc2124lb-af28-a2", "intelbras-vip-3230-d-fc-ia": "intelbras-vip-3230-d-fc-plus-ia", "uniview-ipc322lb-af28-a22": "uniview-ipc322lb-af28-a2", "uniview-ipc2124lb-af28k-a24": "uniview-ipc2124lb-af28k-a2", "kedacom-ipc2452-hn-pir": "kedacom-ipc2452-hn-hnb-pir", "uniview-ipc314le-adf28k-dl4mp": "uniview-ipc314le-adf28k-dl", "uniview-ipc3612lb-af28-a22": "uniview-ipc3612lb-af28-a2", "kedacom-ipc2251-hn": "kedacom-ipc2251-hn-hnb", "uniview-ipc2128lb-adf28k-dl8": "uniview-ipc2128lb-adf28k-dl", "uniview-ipc2122le-adf28k-dl": "uniview-ipc2122le-adf28k-dl3", "sunell-ipd8084epar-b": "sunell-sn-ipd8084epar-b", "uniview-ipc3234sa-ahdzk-pi-i2a4": "uniview-ipc3234sa-ahdzk-pi-i2a", "uniview-ipc322le-adf28k-dl": "uniview-ipc322le-adf28k-dl3", "uniview-ipc3614lb-adf28k-k4": "uniview-ipc3614lb-adf28k-k", "sunell-ipc8047han-ft": "sunell-sn-ipc8047han-ft", "uniview-ipc2124le-adf28k-dl": "uniview-ipc2124le-adf28k-dl3", "uniview-ipc2125lb-af28-a25": "uniview-ipc2125lb-af28-a2", "kedacom-ipc2852-fn-sir50-z": "kedacom-ipc2852-fn-fnb-sir50-z", "uniview-ipc324lb-af28-a24": "uniview-ipc324lb-af28-a2", "uniview-ipc2122lb-af28k-a22": "uniview-ipc2122lb-af28k-a2", "uniview-ipc324lb-af28k-a24": "uniview-ipc324lb-af28k-a2", "uniview-ipc3615lb-af28-a25": "uniview-ipc3615lb-af28-a2", "sunell-ipc8045han-ft": "sunell-sn-ipc8045han-ft", "sunell-chp8650jan-z30-s-s": "sunell-sn-chp8650jan-z30-s-s", "sunell-ipc8290wan-ec-t": "sunell-sn-ipc8290wan-ec-t", "sunell-chp8650jan-z30-s-f": "sunell-sn-chp8650jan-z30-s-f", "sunell-ipr5321kabn-b": "sunell-sn-ipr5321kabn-b", "uniview-ipc3234sa-ahdzk-pi-ls-i2a4": "uniview-ipc3234sa-ahdzk-pi-ls-i2a", "intelbras-vip-1220-fc": "intelbras-vip-1220-fc-plus", "uniview-ipc2324le-adzk-dl": "uniview-ipc2324le-adzk-dl3", "uniview-ipc3634le-adzk-dl34mp": "uniview-ipc3634le-adzk-dl3", "intelbras-vip-1430-d-fc": "intelbras-vip-1430-d-fc-plus", "uniview-ipc312le-adf28k-dl2mp": "uniview-ipc312le-adf28k-dl", "uniview-ipc3614lb-sf28-a4": "uniview-ipc3614lb-sf28-a", "uniview-ipc2124lb-adf28km-k4": "uniview-ipc2124lb-adf28km-k", "uniview-ipc3238sa-adzk-pi-i2a8": "uniview-ipc3238sa-adzk-pi-i2a", "uniview-ipc322lb-adf28k-k2": "uniview-ipc322lb-adf28k-k", "intelbras-vip-3230-fc-ia": "intelbras-vip-3230-fc-plus-ia", "uniview-ipc2322le-adzk-dl32mp": "uniview-ipc2322le-adzk-dl3", "uniview-ipc2b28sa-adzk-pi-ls-i2a8": "uniview-ipc2b28sa-adzk-pi-ls-i2a", "uniview-ipc2124lb-sf28-a4": "uniview-ipc2124lb-sf28-a", "uniview-ipc2b24sa-ahdzk-pi-ls-i2a4": "uniview-ipc2b24sa-ahdzk-pi-ls-i2a", "uniview-ipc2b24sa-ahdzk-pi-i2a4": "uniview-ipc2b24sa-ahdzk-pi-i2a", "uniview-ipc324lb-sf28-a4": "uniview-ipc324lb-sf28-a", "uniview-ipc3618lb-adf28k-dl8": "uniview-ipc3618lb-adf28k-dl", "uniview-ipc3612lb-af28k-a22": "uniview-ipc3612lb-af28k-a2" }Release
No
package.jsonversion bump and noCHANGELOG.mdentry. Please fold this into the next release.