diff --git a/FORK.md b/FORK.md
new file mode 100644
index 0000000..a97895c
--- /dev/null
+++ b/FORK.md
@@ -0,0 +1,85 @@
+# Fork: Ito-69/osiris
+
+Този репозиторий е **форк** на [simplifaisoul/osiris](https://github.com/simplifaisoul/osiris) — оригиналния OSIRIS OSINT dashboard. Upstream `master` остава глобалният проект; тук са добавени локални подобрения за **Балканите** и **истински live CCTV**.
+
+## Upstream vs. този fork
+
+| | [simplifaisoul/osiris](https://github.com/simplifaisoul/osiris) | [Ito-69/osiris](https://github.com/Ito-69/osiris) (този fork) |
+|---|----------------------------------------------------------------|----------------------------------------------------------------|
+| **Обхват** | Глобални слоеве: полети, земетресения, новини, CCTV (UK, US, EU…) | Същото + **~80 камери** в BG, GR, RS, MK, TR, RO |
+| **CCTV региони** | `uk`, `us-*`, `canada`, `europe`, `asia` | + `bulgaria`, `greece`, `serbia`, `macedonia`, `turkey`, `romania` |
+| **Преглед на камера** | Статично JPG изображение, обновяване на ~30 s | **HLS видео**, **iframe embeds** (YouTube, rtsp.me, ipcamlive) или JPG на 5 s |
+| **Цел** | Публичен live demo на [osirislive.app](https://osirislive.app) | Личен/локален deploy с фокус върху съседни държави и гранични пунктове |
+
+Всичко извън CCTV модулите и `CameraViewer` е **непроменено** спрямо upstream — без форк на целия проект, само допълнения.
+
+## Какво добавя fork-ът
+
+### 1. Балкански CCTV източници
+
+Нови API модули под `src/app/api/cctv/`:
+
+- **bulgaria.ts** — Sofia, Plovdiv, Varna, Burgas, курорти, GKPP (Kulata, Makaza, Kapitan Andreevo…) + **~350 камери** от free-webcambg.com (`bulgaria-fwcbg.generated.ts`, ~170 live rtsp.me)
+- **greece.ts** — Attiki Odos (Атина) + **Солун, Кavala, Халкидики/Ситония, Ксанти, Тасос, Промахон**
+- **serbia.ts** — Belgrade, Niš, граница Gradina
+- **macedonia.ts** — Skopje, Ohrid, гранични пунктове (Neotel HLS)
+- **turkey.ts** — Edirne/Kırklareli borders (Kapıkule, Hamzabeyli, Dereköy, İpsala, Pazarkule), Tekirdağ, **Istanbul** (Galata, Sultanahmet, Bosphorus, Yavuz Bridge)
+- **romania.ts** — Constanța, Eforie Sud, гранични преходи
+
+Зареждане: `GET /api/cctv?region=bulgaria` (или `greece`, `serbia`, …) или `?region=all`.
+
+### 2. Истински live streaming
+
+- **`stream_type: hls`** — `.m3u8` потоци (Burgas Smart, Attiki Odos, Neotel, AMSS Serbia)
+- **`stream_type: iframe`** — вградени плейъри (YouTube GKPP Makaza, rtsp.me, ipcamlive)
+- **`stream_type: jpg`** — snapshot feeds (UAB, home-solutions.bg) — по-бърз refresh (5 s), не е видео
+
+Плейърът е в `src/components/CameraViewer.tsx` (зависимост: `hls.js`).
+
+### 3. Карта
+
+`OsirisMap.tsx` подава `stream_url` и `stream_type` към viewer-а при клик на CCTV маркер.
+
+**Стартов изглед:** центрирана върху България/Балканите (`[25.48, 42.70]`, zoom ~6.5), вместо глобален изглед.
+
+### 4. Балкански OSINT източници
+
+| Слой | Източник | Какво добавя |
+|------|----------|--------------|
+| **Земетресения** | [NIGGG-BAS](https://ndc.niggg.bas.bg/) | Регионална мрежа (30 дни, по-ниски magnitude) — merge с USGS |
+| **Бедствия / alerts** | [GDACS](https://www.gdacs.org/) | EU civil protection — филтрирани за Балканите bbox |
+| **Новини** | [Dnevnik.bg](https://www.dnevnik.bg/rss/) + [Actualno](https://www.actualno.com/rss/actualno.xml) + [Mediapool](https://www.mediapool.bg/rss/) + BBC Europe | BG/EU RSS + keyword geo-mapping (София, Варна, Балкани…) |
+
+Споделена логика: `src/lib/bulgaria-sources.ts`.
+
+## Локален Docker deploy
+
+Fork-ът се пуска локално от отделна папка (не е част от git repo-то):
+
+```bash
+git clone git@github.com:Ito-69/osiris.git repo
+# compose.yaml в родителската папка — build context: ./repo
+docker compose up -d --build
+# → http://localhost:3000
+```
+
+Примерна структура: `osiris/compose.yaml` + `osiris/repo/` (clone на този fork).
+
+## Синхронизация с upstream
+
+```bash
+git remote add upstream https://github.com/simplifaisoul/osiris.git   # веднъж
+git fetch upstream
+git merge upstream/master   # или rebase, ако предпочиташ линейна история
+```
+
+След merge провери конфликти в `src/app/api/cctv/route.ts` и `CameraViewer.tsx` — там са основните локални промени.
+
+## Комити само в този fork
+
+- `9391982` — Balkans CCTV coverage (BG, GR, RS, MK, TR, RO)
+- `9b87658` — HLS + iframe live playback, по-бърз JPG refresh
+
+---
+
+*Upstream лиценз: MIT. Fork-ът запазва същия лиценз; допълненията не са официална част от simplifaisoul/osiris.*
diff --git a/README.md b/README.md
index 6824c52..95a074f 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,8 @@
 
 </div>
 
+> **Fork ([Ito-69/osiris](https://github.com/Ito-69/osiris)):** Разширение на upstream с **Balkans CCTV** (~80 камери) и **in-app live streaming** (HLS / iframe / бърз JPG refresh). Разликите с [simplifaisoul/osiris](https://github.com/simplifaisoul/osiris) → **[FORK.md](FORK.md)**.
+
 ---
 
 ## Overview
diff --git a/package-lock.json b/package-lock.json
index 89c7bab..e259e7a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,6 +10,7 @@
       "dependencies": {
         "@vercel/analytics": "^2.0.1",
         "framer-motion": "^12.38.0",
+        "hls.js": "^1.6.16",
         "lucide-react": "^1.14.0",
         "maplibre-gl": "^5.24.0",
         "next": "16.2.6",
@@ -75,7 +76,6 @@
       "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/code-frame": "^7.29.0",
         "@babel/generator": "^7.29.0",
@@ -1693,7 +1693,6 @@
       "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "csstype": "^3.2.2"
       }
@@ -1762,7 +1761,6 @@
       "integrity": "sha512-HPwA+hVkfcriajbNvTmZv4VRauibay+cWArYUYq7u7W7PmGShMxbPxLvrwDme55a6d5alG3nrYfhyJ/G28XlLg==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@typescript-eslint/scope-manager": "8.59.3",
         "@typescript-eslint/types": "8.59.3",
@@ -2390,7 +2388,6 @@
       "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "bin": {
         "acorn": "bin/acorn"
       },
@@ -2752,7 +2749,6 @@
         }
       ],
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "baseline-browser-mapping": "^2.10.12",
         "caniuse-lite": "^1.0.30001782",
@@ -3353,7 +3349,6 @@
       "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.8.0",
         "@eslint-community/regexpp": "^4.12.1",
@@ -3539,7 +3534,6 @@
       "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@rtsao/scc": "^1.1.0",
         "array-includes": "^3.1.9",
@@ -4255,6 +4249,12 @@
         "hermes-estree": "0.25.1"
       }
     },
+    "node_modules/hls.js": {
+      "version": "1.6.16",
+      "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.16.tgz",
+      "integrity": "sha512-VSIRpLfRwlAAdGL4wiTucx2ScRipo0ed1FBatWkyt832jC4CReKstga6yIhYVwGu9LOBjuX9wzmRMeQdBJtzEA==",
+      "license": "Apache-2.0"
+    },
     "node_modules/ignore": {
       "version": "5.3.2",
       "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -5264,7 +5264,6 @@
       "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.24.0.tgz",
       "integrity": "sha512-ALyFxgtd5R+65UqZ/++lOqwWcC0SNho9c27fYSyLmG7AfnAul2o46F05aDJGPbFU57wos9dgcIySHs0Xe6ia3A==",
       "license": "BSD-3-Clause",
-      "peer": true,
       "dependencies": {
         "@mapbox/jsonlint-lines-primitives": "^2.0.2",
         "@mapbox/point-geometry": "^1.1.0",
@@ -5424,7 +5423,6 @@
       "resolved": "https://registry.npmjs.org/next/-/next-16.2.6.tgz",
       "integrity": "sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@next/env": "16.2.6",
         "@swc/helpers": "0.5.15",
@@ -5904,7 +5902,6 @@
       "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
       "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
       "license": "MIT",
-      "peer": true,
       "engines": {
         "node": ">=0.10.0"
       }
@@ -5914,7 +5911,6 @@
       "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
       "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "scheduler": "^0.27.0"
       },
@@ -6764,7 +6760,6 @@
       "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "engines": {
         "node": ">=12"
       },
@@ -6933,7 +6928,6 @@
       "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
       "dev": true,
       "license": "Apache-2.0",
-      "peer": true,
       "bin": {
         "tsc": "bin/tsc",
         "tsserver": "bin/tsserver"
@@ -7261,7 +7255,6 @@
       "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "funding": {
         "url": "https://github.com/sponsors/colinhacks"
       }
diff --git a/package.json b/package.json
index f3b9f5f..ff9a629 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
   "dependencies": {
     "@vercel/analytics": "^2.0.1",
     "framer-motion": "^12.38.0",
+    "hls.js": "^1.6.16",
     "lucide-react": "^1.14.0",
     "maplibre-gl": "^5.24.0",
     "next": "16.2.6",
diff --git a/scripts/generate-bg-fwcbg.mjs b/scripts/generate-bg-fwcbg.mjs
new file mode 100644
index 0000000..9db6d89
--- /dev/null
+++ b/scripts/generate-bg-fwcbg.mjs
@@ -0,0 +1,146 @@
+import fs from 'fs';
+
+const raw = JSON.parse(fs.readFileSync('/tmp/bg-cams.json', 'utf8'));
+
+const CITY_COORDS = {
+  Sofia: [42.698, 23.322],
+  Plovdiv: [42.15, 24.749],
+  Varna: [43.214, 27.915],
+  Burgas: [42.504, 27.462],
+  Ruse: [43.856, 25.973],
+  'Stara Zagora': [42.426, 25.641],
+  Pleven: [43.417, 24.617],
+  Sliven: [42.681, 26.322],
+  Vitosha: [42.57, 23.28],
+  Bansko: [41.836, 23.488],
+  Borovets: [42.27, 23.6],
+  Dobrinishte: [41.823, 23.559],
+  Petrich: [41.398, 23.207],
+  'Golden Sands': [43.28, 28.04],
+  'Sunny Beach': [42.695, 27.71],
+  Nessebar: [42.66, 27.736],
+  Sozopol: [42.417, 27.695],
+  Kavarna: [43.436, 28.34],
+  Balchik: [43.55, 28.34],
+  Shumen: [43.271, 26.936],
+  Dobrich: [43.572, 27.827],
+  Gabrovo: [42.874, 25.319],
+  'Veliko Tarnovo': [43.075, 25.617],
+  Blagoevgrad: [42.026, 23.1],
+  Sandanski: [41.567, 23.28],
+  Velingrad: [42.027, 24.0],
+  Pamporovo: [41.66, 24.68],
+  Smolyan: [41.577, 24.701],
+  Devin: [41.743, 24.4],
+  Kazanlak: [42.619, 25.393],
+  Troyan: [42.873, 24.719],
+  Montana: [43.412, 23.225],
+  Vratsa: [43.21, 23.562],
+  Lovech: [43.137, 24.719],
+  Pernik: [42.605, 23.037],
+  Yambol: [42.484, 26.503],
+  Haskovo: [41.934, 25.555],
+  Kardzhali: [41.633, 25.377],
+  Razgrad: [43.527, 26.524],
+  Silistra: [44.117, 27.26],
+  Targovishte: [43.251, 26.572],
+  Svishtov: [43.617, 25.35],
+  Sevlievo: [43.026, 25.104],
+  Mountains: [42.65, 23.4],
+  'Black Sea': [42.8, 27.9],
+  Bulgaria: [42.733, 25.486],
+};
+
+function cityFrom(title, page) {
+  const t = title.toUpperCase();
+  const p = page.toUpperCase();
+  for (const city of Object.keys(CITY_COORDS)) {
+    if (city === 'Bulgaria' || city === 'Mountains' || city === 'Black Sea') continue;
+    const key = city.toUpperCase().replace('-', ' ');
+    if (t.includes(key) || p.includes(city.toUpperCase())) return city;
+  }
+  if (/СОФИ|SOFIA|SOFI/.test(t + p)) return 'Sofia';
+  if (/ВАРН|VARNA/.test(t + p)) return 'Varna';
+  if (/БУРГ|BURGAS/.test(t + p)) return 'Burgas';
+  if (/ПЛОВ|PLOVDIV/.test(t + p)) return 'Plovdiv';
+  if (/ВИТОШ|VITOSHA/.test(t + p)) return 'Vitosha';
+  if (/ХИЖА|HIJA|HUT/.test(t + p)) return 'Mountains';
+  if (/ПЛАЖ|BEACH|CHERNO|МОРЕ/.test(t)) return 'Black Sea';
+  return 'Bulgaria';
+}
+
+function hash(s) {
+  let h = 0;
+  for (const c of s) h = ((h << 5) - h + c.charCodeAt(0)) | 0;
+  return h;
+}
+
+function coords(city, id) {
+  const base = CITY_COORDS[city] || CITY_COORDS.Bulgaria;
+  const h = Math.abs(hash(id));
+  return [
+    +(base[0] + ((h % 100) - 50) * 0.001).toFixed(4),
+    +(base[1] + (((Math.floor(h / 100) % 100) - 50) * 0.001)).toFixed(4),
+  ];
+}
+
+function esc(s) {
+  return s.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
+}
+
+const cams = [];
+const seen = new Set();
+
+for (const row of raw) {
+  const city = cityFrom(row.title, row.page);
+  const base = `http://free-webcambg.com/${row.page}`;
+  const entries = [];
+
+  if (row.rtsps?.length) {
+    row.rtsps.forEach((rtsp, i) => {
+      if (rtsp.includes('/Aaaaaaaa/')) return;
+      const slug = rtsp.split('/embed/')[1].replace(/\//, '');
+      entries.push({
+        id: `bg-fwcbg-${slug.toLowerCase()}`,
+        city,
+        name: row.title + (row.rtsps.length > 1 ? ` (${i + 1})` : ''),
+        stream_url: rtsp,
+        stream_type: 'iframe',
+        feed_url: row.cdn?.[0] || row.pics?.[0],
+        external_url: base,
+      });
+    });
+  } else if (row.cdn?.[0] || row.pics?.[0]) {
+    const id = `bg-fwcbg-${(row.page.split('-webcam')[0] || row.page).replace(/[^a-z0-9]+/gi, '-').toLowerCase().slice(0, 45)}`;
+    entries.push({
+      id,
+      city,
+      name: row.title,
+      feed_url: row.cdn?.[0] || row.pics?.[0],
+      external_url: base,
+    });
+  }
+
+  for (const e of entries) {
+    const key = e.stream_url || e.feed_url;
+    if (seen.has(key)) continue;
+    seen.add(key);
+    cams.push(e);
+  }
+}
+
+let out = `import type { CctvCamera } from './types';\n\n/** Auto-generated from free-webcambg.com — ${cams.length} cameras */\nexport const BULGARIA_FWCBG_CAMERAS: CctvCamera[] = [\n`;
+
+for (const c of cams) {
+  const [lat, lng] = coords(c.city, c.id);
+  out += `  {\n    id: '${esc(c.id)}',\n    lat: ${lat},\n    lng: ${lng},\n    name: '${esc(c.name)}',\n    city: '${esc(c.city)}',\n    country: 'Bulgaria',\n`;
+  if (c.stream_url) out += `    stream_url: '${esc(c.stream_url)}',\n    stream_type: 'iframe',\n`;
+  if (c.feed_url) out += `    feed_url: '${esc(c.feed_url)}',\n`;
+  out += `    external_url: '${esc(c.external_url)}',\n    source: 'Free-WebCamBG',\n  },\n`;
+}
+
+out += '];\n';
+
+const outPath = new URL('../src/app/api/cctv/bulgaria-fwcbg.generated.ts', import.meta.url);
+fs.writeFileSync(outPath, out);
+console.log(`Wrote ${cams.length} cameras (${cams.filter((c) => c.stream_url).length} live) → ${outPath.pathname}`);
diff --git a/src/app/api/cctv/bulgaria-fwcbg.generated.ts b/src/app/api/cctv/bulgaria-fwcbg.generated.ts
new file mode 100644
index 0000000..5ff012b
--- /dev/null
+++ b/src/app/api/cctv/bulgaria-fwcbg.generated.ts
@@ -0,0 +1,4207 @@
+import type { CctvCamera } from './types';
+
+/** Auto-generated from free-webcambg.com — 354 cameras */
+export const BULGARIA_FWCBG_CAMERAS: CctvCamera[] = [
+  {
+    id: 'bg-fwcbg-hnisaeaq',
+    lat: 42.694,
+    lng: 23.293,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО ЦАРИГРАДСКО ШОСЕ (1)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/hniSAeAQ/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-02',
+    external_url: 'http://free-webcambg.com/Sofia-02-webcam-live-online-camera-Sf-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-3bqnttdr',
+    lat: 42.712,
+    lng: 23.286,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО ЦАРИГРАДСКО ШОСЕ (2)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/3bQnttDR/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-02',
+    external_url: 'http://free-webcambg.com/Sofia-02-webcam-live-online-camera-Sf-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-03',
+    lat: 42.676,
+    lng: 23.322,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО НДК ПОПА ПАМЕТНИК',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-03',
+    external_url: 'http://free-webcambg.com/Sofia-03-webcam-live-online-camera-popa-NDK-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ekdynzrs',
+    lat: 42.702,
+    lng: 23.352,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО ЖК ЛЮЛИН 7 (1)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/eKDYNZrs/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/sofdom',
+    external_url: 'http://free-webcambg.com/Sofia-08-webcam-live-online-camera-city-street-road-Sofiq-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-y8nkayan',
+    lat: 42.703,
+    lng: 23.322,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО ЖК ЛЮЛИН 7 (2)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Y8nkAyAn/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/sofdom',
+    external_url: 'http://free-webcambg.com/Sofia-08-webcam-live-online-camera-city-street-road-Sofiq-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-4nsnneab',
+    lat: 42.663,
+    lng: 23.363,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО ПЛОЩАД \'ОРЛОВ МОСТ\' (1)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/4NSnNeAb/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-10',
+    external_url: 'http://free-webcambg.com/Sofia-11-webcam-live-online-camera-Orlov-most-city-street-road-Sofiq-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-8yin9rtq',
+    lat: 42.674,
+    lng: 23.316,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО ПЛОЩАД \'ОРЛОВ МОСТ\' (2)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/8Yin9rtQ/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-10',
+    external_url: 'http://free-webcambg.com/Sofia-11-webcam-live-online-camera-Orlov-most-city-street-road-Sofiq-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-d4bq2zn7',
+    lat: 42.742,
+    lng: 23.357,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО ЖК КВАРТАЛ \'ЛОЗЕНЕЦ\' (1)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/D4BQ2zN7/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-14',
+    external_url: 'http://free-webcambg.com/Sofia-14-webcam-live-online-camera-street-Tsarigradsko-shose-city-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-9de23yyb',
+    lat: 42.649,
+    lng: 23.341,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО ЖК КВАРТАЛ \'ЛОЗЕНЕЦ\' (2)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/9DE23yyb/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-14',
+    external_url: 'http://free-webcambg.com/Sofia-14-webcam-live-online-camera-street-Tsarigradsko-shose-city-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-neraf9qk',
+    lat: 42.675,
+    lng: 23.273,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО КВ. \'СИМЕОНОВО\'',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/nerAF9QK/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-17',
+    external_url: 'http://free-webcambg.com/Sofia-17-webcam-live-online-camera-street-Sf-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-18',
+    lat: 42.74,
+    lng: 23.321,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО ДВОР ПАРКИНГ УЛИЦА',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-18',
+    external_url: 'http://free-webcambg.com/Sofia-18-webcam-live-online-camera-city-street-parking-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-y3eeny6a',
+    lat: 42.65,
+    lng: 23.308,
+    name: 'КАМЕРА СОФИЯ ВРЕМЕТО КВ. \'МАНАСТИРСКИ ЛИВАДИ\'',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/y3eENY6A/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-21',
+    external_url: 'http://free-webcambg.com/Sofia-21-webcam-live-online-camera-Mall-Bulgaria-mol-Sf-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-24-okolovrastno-ring',
+    lat: 42.702,
+    lng: 23.333,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО ЦАРИГРАДСКО ШОСЕ',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-24',
+    external_url: 'http://free-webcambg.com/Sofia-24-Okolovrastno-ring-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-27-street',
+    lat: 42.742,
+    lng: 23.364,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО КВ. \'ЛОЗЕНЕЦ\'',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-27',
+    external_url: 'http://free-webcambg.com/Sofia-27-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-egarrdky',
+    lat: 42.707,
+    lng: 23.281,
+    name: 'KAMEPA СОФИЯ ЖК \'КРАСНА ПОЛЯНА\'',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/eGArRdkY/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-52',
+    external_url: 'http://free-webcambg.com/Sofia-28-webcam-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-35',
+    lat: 42.681,
+    lng: 23.321,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО ТВ КУЛА \'КОПИТОТО\', ВИТОША',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-35',
+    external_url: 'http://free-webcambg.com/Sofia-35-webcam-live-online-camera-Kopitoto-TV-kula-Vitosha-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-36',
+    lat: 42.68,
+    lng: 23.321,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО ЦЕНТЪР НАРОДНО СЪБРАНИЕ',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-36',
+    external_url: 'http://free-webcambg.com/Sofia-36-webcam-live-online-camera-Narodno-Sabranie-Sofiq-hram-Alexandar-Nevski-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-rnsd69z7',
+    lat: 42.675,
+    lng: 23.296,
+    name: 'КАМЕРА СОФИЯ ВРЕМЕТО ВХОД КВ. \'ДРАГАЛЕВЦИ\'',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/RnsD69Z7/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-39r',
+    external_url: 'http://free-webcambg.com/Sofia-39-webcam-live-online-camera-street-traffic-bulevard-Cherni-vrah-NDK-Sofiq-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-5rqzsant',
+    lat: 42.708,
+    lng: 23.335,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО КВ. Ж.К. \'ЗОНА Б-5\'',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/5RQzSANT/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sofia-41',
+    external_url: 'http://free-webcambg.com/Sofia-41-webcam-live-online-camera-Carigradsko-shose-bulevard-street-traffic-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-44-street',
+    lat: 42.681,
+    lng: 23.318,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО ЖК \'ДРУЖБА\',  ИСКЪРСКО ШОСЕ',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-44',
+    external_url: 'http://free-webcambg.com/Sofia-44-street-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nqqtsery',
+    lat: 42.661,
+    lng: 23.34,
+    name: 'КАМЕРА СОФИЯ ВРЕМЕТО ЖК \'СВЕТА ТРОИЦА\'',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/nQQtsery/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-45',
+    external_url: 'http://free-webcambg.com/Sofia-45-street-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-52-street',
+    lat: 42.674,
+    lng: 23.32,
+    name: 'KAMEPA СОФИЯ ВРЕМЕТО КВ. \'ДЪРВЕНИЦА\'',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-52',
+    external_url: 'http://free-webcambg.com/Sofia-52-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-53-orlandovci',
+    lat: 42.717,
+    lng: 23.303,
+    name: 'KAMEPA СОФИЯ КВ. \'ЛАГЕРА\' И ВИТОША',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-53r',
+    external_url: 'http://free-webcambg.com/Sofia-53-Orlandovci-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kisyghfs',
+    lat: 42.676,
+    lng: 23.353,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО КВАРТАЛ \'ЛОЗЕНЕЦ\' (1)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/kiSyGhfs/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-54r',
+    external_url: 'http://free-webcambg.com/Sofia-54-Lozenec-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-h9tekzkk',
+    lat: 42.719,
+    lng: 23.342,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО КВАРТАЛ \'ЛОЗЕНЕЦ\' (2)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/h9TeKzkk/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-54r',
+    external_url: 'http://free-webcambg.com/Sofia-54-Lozenec-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-plovdiv-02',
+    lat: 42.155,
+    lng: 24.741,
+    name: 'УЕБ КАМЕРА ПЛОВДИВ ВРЕМЕТО \'ЦАРИГРАДСКО\' ШОСЕ',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Plovdiv-02',
+    external_url: 'http://free-webcambg.com/Plovdiv-02-webcam-live-online-camera-karlovsko-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-tk7rnf7t',
+    lat: 42.113,
+    lng: 24.717,
+    name: 'KAMEPA ПЛОВДИВ \'ПАЛМ ЦЕНТЪР\' КЦМ',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/TK7Rnf7T/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Plovdiv-13-webcam-live-online-camera-traffic-street-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-dd4fkr2r',
+    lat: 42.151,
+    lng: 24.712,
+    name: 'KAMEPA ПЛОВДИВ ВРЕМЕТО ШИРОК ЦЕНТЪР (1)',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/dd4fkr2r/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Plovdiv-14-1',
+    external_url: 'http://free-webcambg.com/Plovdiv-14-webcam-live-online-camera-center-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-3thny3ts',
+    lat: 42.166,
+    lng: 24.73,
+    name: 'KAMEPA ПЛОВДИВ ВРЕМЕТО ШИРОК ЦЕНТЪР (2)',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/3tHny3tS/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Plovdiv-14-1',
+    external_url: 'http://free-webcambg.com/Plovdiv-14-webcam-live-online-camera-center-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-qtsfzydd',
+    lat: 42.179,
+    lng: 24.704,
+    name: 'KAMEPA ПЛОВДИВ ВРЕМЕТО ШИРОК ЦЕНТЪР (3)',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/QtsFZydD/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Plovdiv-14-1',
+    external_url: 'http://free-webcambg.com/Plovdiv-14-webcam-live-online-camera-center-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-7b8tatfa',
+    lat: 42.153,
+    lng: 24.781,
+    name: 'УЕБ КАМЕРА ПЛОВДИВ ВРЕМЕТО КВ. \'КАМЕНИЦА\' (1)',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/7b8tAtfA/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Plovdiv-18r',
+    external_url: 'http://free-webcambg.com/Plovdiv-18-webcam-live-online-camera-street-city-CCTV-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-e97erg5k',
+    lat: 42.145,
+    lng: 24.761,
+    name: 'УЕБ КАМЕРА ПЛОВДИВ ВРЕМЕТО КВ. \'КАМЕНИЦА\' (2)',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/E97eRG5k/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Plovdiv-18r',
+    external_url: 'http://free-webcambg.com/Plovdiv-18-webcam-live-online-camera-street-city-CCTV-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-refkff8b',
+    lat: 42.184,
+    lng: 24.706,
+    name: 'УЕБ КАМЕРА ПЛОВДИВ ВРЕМЕТО КВ. \'КАМЕНИЦА\' (3)',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/REFKFf8B/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Plovdiv-18r',
+    external_url: 'http://free-webcambg.com/Plovdiv-18-webcam-live-online-camera-street-city-CCTV-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-plovdiv-19',
+    lat: 42.193,
+    lng: 24.741,
+    name: 'КАМЕРА ПЛОВДИВ ВРЕМЕТО РУМ ТРАКИЯ \'КАУФЛАНД\'',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Plovdiv-19',
+    external_url: 'http://free-webcambg.com/Plovdiv-19-webcam-live-online-camera-RUM-Trakia-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-7sb666fh',
+    lat: 42.188,
+    lng: 24.777,
+    name: 'УЕБ КАМЕРА ПЛОВДИВ ВРЕМЕТО ЖК \'ТРАКИЯ\' SPS (1)',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/7sB666fh/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Plovdiv-20r',
+    external_url: 'http://free-webcambg.com/Plovdiv-20-webcam-live-online-camera-Trakia-SPS-METRO-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-grzi4rzd',
+    lat: 42.144,
+    lng: 24.776,
+    name: 'УЕБ КАМЕРА ПЛОВДИВ ВРЕМЕТО ЖК \'ТРАКИЯ\' SPS (2)',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/GRzi4RZd/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Plovdiv-20r',
+    external_url: 'http://free-webcambg.com/Plovdiv-20-webcam-live-online-camera-Trakia-SPS-METRO-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-s8kh3q3f',
+    lat: 42.187,
+    lng: 24.797,
+    name: 'УЕБ КАМЕРА ПЛОВДИВ ВРЕМЕТО ПАМЕТНИК \'АЛЬОША\'',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/s8Kh3Q3f/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Plovdiv-22',
+    external_url: 'http://free-webcambg.com/Plovdiv-22-webcam-live-online-camera-street-city-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-plovdiv-23',
+    lat: 42.118,
+    lng: 24.742,
+    name: 'KAMEPA ПЛОВДИВ ВРЕМЕТО \'КОМАТЕВСКО\' ШОСЕ',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Plovdiv-23',
+    external_url: 'http://free-webcambg.com/Plovdiv-23-webcam-live-online-camera-street-city-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-plovdiv-25-city-street',
+    lat: 42.172,
+    lng: 24.715,
+    name: 'УЕБ КАМЕРА ПЛОВДИВ ВРЕМЕТО СТАДИОН \'БОТЕВ\' (КОЛЕЖА)',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Plovdiv-25',
+    external_url: 'http://free-webcambg.com/Plovdiv-25-city-street-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-plovdiv-26-street-rogoshko-shose-city',
+    lat: 42.135,
+    lng: 24.739,
+    name: 'KAMEPA ПЛОВДИВ ВРЕМЕТО КВ. \'МАРАША\'',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Plovdiv-26',
+    external_url: 'http://free-webcambg.com/Plovdiv-26-street-Rogoshko-shose-city-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-02',
+    lat: 43.215,
+    lng: 27.929,
+    name: 'УЕБ КАМЕРА ВАРНА ВРЕМЕТО ЖК \'МЛАДОСТ\' ДО КАТ',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Varna-02',
+    external_url: 'http://free-webcambg.com/Varna-02-webcam-live-online-camera-traffic-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ahnibgdh',
+    lat: 43.205,
+    lng: 27.957,
+    name: 'KAMEPA ВАРНА ВРЕМЕТО ПЛАЖ \'РАПОНГИ\' 3 БУНА (1)',
+    city: 'Varna',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/AHniBGDH/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Varna-04',
+    external_url: 'http://free-webcambg.com/Varna-04-webcam-live-online-camera-plaj-3-buna-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-rtebynrq',
+    lat: 43.259,
+    lng: 27.949,
+    name: 'KAMEPA ВАРНА ВРЕМЕТО ПЛАЖ \'РАПОНГИ\' 3 БУНА (2)',
+    city: 'Varna',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/rteByNRQ/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Varna-04',
+    external_url: 'http://free-webcambg.com/Varna-04-webcam-live-online-camera-plaj-3-buna-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-k9ki7rz5',
+    lat: 43.164,
+    lng: 27.877,
+    name: 'KAMEPA ВАРНА ВРЕМЕТО ПЛАЖ \'РАПОНГИ\' 3 БУНА (3)',
+    city: 'Varna',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/k9Ki7rz5/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Varna-04',
+    external_url: 'http://free-webcambg.com/Varna-04-webcam-live-online-camera-plaj-3-buna-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-06',
+    lat: 43.219,
+    lng: 27.929,
+    name: 'KAMEPИ ВАРНА ВРЕМЕТО КВ. \'ГАЛАТА\' МОНУМЕНТ',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Varna-06',
+    external_url: 'http://free-webcambg.com/Varna-06-webcam-live-online-camera-Galata-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sedzeabq',
+    lat: 43.207,
+    lng: 27.914,
+    name: 'УЕБ КАМЕРИ ВАРНА ВРЕМЕТО КВАРТАЛ \'ГАЛАТА\'',
+    city: 'Varna',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/SEDzEAbQ/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Varna-07-webcam-live-online-camera-Galata-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-12',
+    lat: 43.246,
+    lng: 27.929,
+    name: 'УЕБ КАМЕРА ВАРНА ВРЕМЕТО БУЛ. \'В. ЛЕВСКИ\' & ЕЗЕРО',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Varna-12',
+    external_url: 'http://free-webcambg.com/Varna-12-webcam-live-online-camera-office-Kassaba-CCTV-kameri-na-jivo.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-13',
+    lat: 43.247,
+    lng: 27.929,
+    name: 'УЕБ КАМЕРА ВАРНА ВРЕМЕТО ВХОД ПАРК \'МОРСКА ГРАДИНА\'',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Varna-13',
+    external_url: 'http://free-webcambg.com/Varna-13-webcam-live-online-camera-Morska-gradina-Odesos-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-rhzfzh9z',
+    lat: 43.207,
+    lng: 27.942,
+    name: 'KAMEPA ВАРНА КВ. БРИЗ (1)',
+    city: 'Varna',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/rHzFzH9z/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Varna-14r',
+    external_url: 'http://free-webcambg.com/Varna-14-webcam-live-online-camera-Akchelar-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-eg9dkhhr',
+    lat: 43.174,
+    lng: 27.927,
+    name: 'KAMEPA ВАРНА КВ. БРИЗ (2)',
+    city: 'Varna',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/EG9dKHhr/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Varna-14r',
+    external_url: 'http://free-webcambg.com/Varna-14-webcam-live-online-camera-Akchelar-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-15',
+    lat: 43.249,
+    lng: 27.929,
+    name: 'УЕБ КАМЕРА ВАРНА ВРЕМЕТО ЦЕНТЪР КАТЕДРАЛА',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Varna-15',
+    external_url: 'http://free-webcambg.com/Varna-15-webcam-live-online-camera-center-Cathedral-Central-Post-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-16',
+    lat: 43.25,
+    lng: 27.929,
+    name: 'УЕБ КАМЕРА ВАРНА ВРЕМЕТО ЦЕНТЪР БУЛ. \'ХРИСТО БОТЕВ\'',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Varna-16',
+    external_url: 'http://free-webcambg.com/Varna-16-webcam-live-online-camera-center-bul-Botev-Cathedral-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-17',
+    lat: 43.251,
+    lng: 27.929,
+    name: 'KAMEPA ВАРНА ВРЕМЕТО УЛИЦИ',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Varna-17',
+    external_url: 'http://free-webcambg.com/Varna-17-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-19',
+    lat: 43.253,
+    lng: 27.929,
+    name: 'KAMEPA ВАРНА ВРЕМЕТО КВ. ТРОШЕВО',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Varna-19',
+    external_url: 'http://free-webcambg.com/Varna-19-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-22',
+    lat: 43.177,
+    lng: 27.93,
+    name: 'УЕБ КАМЕРА ВАРНА ВРЕМЕТО ХРАМ \'СВЕТА ПЕТКА\'',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Varna-22',
+    external_url: 'http://free-webcambg.com/Varna-22-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ydrh3ien',
+    lat: 42.512,
+    lng: 27.429,
+    name: 'УЕБ КАМЕРА БУРГАС ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/yDrH3iEn/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Burgas-04',
+    external_url: 'http://free-webcambg.com/Burgas-04-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-burgas-05-street',
+    lat: 42.52,
+    lng: 27.473,
+    name: 'KAMEPA БУРГАС ВРЕМЕТО БУЛ. \'ЯКИМ ЯКИМОВ\'',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Burgas-05',
+    external_url: 'http://free-webcambg.com/Burgas-05-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-idsnkffk',
+    lat: 42.462,
+    lng: 27.453,
+    name: 'KAMEPA БУРГАС ВРЕМЕТО ЯХТ КЛУБ ПОРТ ЧЕРНО МОРЕ (1)',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/idSnKFfk/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Burgas-06',
+    external_url: 'http://free-webcambg.com/Burgas-06-webcam-live-online-camera-port-more-Yacht-club-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-edkcvpqb',
+    lat: 42.502,
+    lng: 27.46,
+    name: 'KAMEPA БУРГАС ВРЕМЕТО ЯХТ КЛУБ ПОРТ ЧЕРНО МОРЕ (2)',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/eDKcvpQB/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Burgas-06',
+    external_url: 'http://free-webcambg.com/Burgas-06-webcam-live-online-camera-port-more-Yacht-club-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-burgas-07',
+    lat: 42.482,
+    lng: 27.438,
+    name: 'KAMEPA БУРГАС ВРЕМЕТО СЕВЕРЕН ПЛАЖ',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Bourgas-07',
+    external_url: 'http://free-webcambg.com/Burgas-07-webcam-live-online-camera-Windsurf-more-plaj-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-burgas-08',
+    lat: 42.481,
+    lng: 27.438,
+    name: 'KAMEPA БУРГАС ВРЕМЕТО МОСТ ПЛАЖ',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Burgas-08',
+    external_url: 'http://free-webcambg.com/Burgas-08-webcams-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-burgas-09',
+    lat: 42.48,
+    lng: 27.438,
+    name: 'KAMEPA БУРГАС ВРЕМЕТО ПЛАЖЕН СПОРТ',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Burgas-09',
+    external_url: 'http://free-webcambg.com/Burgas-09-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-burgas-15',
+    lat: 42.553,
+    lng: 27.437,
+    name: 'KAMEPA БУРГАС ВРЕМЕТО КРЪГОВО \'МЕТРО\'',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Burgas-15',
+    external_url: 'http://free-webcambg.com/Burgas-15-webcam-live-online-camera-street-city-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-burgas-16',
+    lat: 42.552,
+    lng: 27.437,
+    name: 'KAMEPA БУРГАС ВРЕМЕТО ЖК МЕДЕН РУДНИК',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Burgas-16',
+    external_url: 'http://free-webcambg.com/Burgas-16-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kszrah2a',
+    lat: 42.53,
+    lng: 27.48,
+    name: 'УЕБ КАМЕРА БУРГАС ВРЕМЕТО ПЛАЖ ЧЕРНО МОРЕ',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/kSZrah2a/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Burgas-17',
+    external_url: 'http://free-webcambg.com/Burgas-17-Cherno-more-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ruse-06',
+    lat: 43.834,
+    lng: 26.004,
+    name: 'KAMEPA РУСЕ ВРЕМЕТО БРИКЕТНА ФАБРИКА',
+    city: 'Ruse',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Ruse-06',
+    external_url: 'http://free-webcambg.com/Ruse-06-webcam-live-online-camera-city-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ruse-14',
+    lat: 43.863,
+    lng: 26.004,
+    name: 'KAMEPA РУСЕ ВРЕМЕТО ГКПП ДУНАВ МОСТ',
+    city: 'Ruse',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Ruse-14-0',
+    external_url: 'http://free-webcambg.com/Ruse-14-webcam-live-online-camera-ponton-Dunav-Tours-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ser68aas',
+    lat: 43.887,
+    lng: 25.991,
+    name: 'KAMEPA РУСЕ ВРЕМЕТО БУЛ. \'ГЕН. СКОБЕЛЕВ\'',
+    city: 'Ruse',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/SEr68AAS/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Ruse-15-5',
+    external_url: 'http://free-webcambg.com/Ruse-16-Fazan-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kffknsdi',
+    lat: 42.779,
+    lng: 25.446,
+    name: 'KAMEPA СТАРА ЗАГОРА ВРЕМЕТО ЦЕНТЪР (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/kfFKnSdi/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Stara-Zagora-01',
+    external_url: 'http://free-webcambg.com/Stara-Zagora-01-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-hs9zy3hn',
+    lat: 42.781,
+    lng: 25.477,
+    name: 'KAMEPA СТАРА ЗАГОРА ВРЕМЕТО ЦЕНТЪР (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/hS9zy3Hn/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Stara-Zagora-02',
+    external_url: 'http://free-webcambg.com/Stara-Zagora-02-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nh3yz9sh',
+    lat: 42.769,
+    lng: 25.483,
+    name: 'KAMEPA СТАРА ЗАГОРА ВРЕМЕТО ЦЕНТЪР (3)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/nH3yz9Sh/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Stara-Zagora-02',
+    external_url: 'http://free-webcambg.com/Stara-Zagora-02-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-heit5see',
+    lat: 42.775,
+    lng: 25.534,
+    name: 'УЕБ КАМЕРА СТАРА ЗАГОРА ВРЕМЕТО ФОНТАН \'ЖАБКИТЕ\' (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/HEiT5SEE/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Stara-Zagora-04-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ees5tieh',
+    lat: 42.779,
+    lng: 25.466,
+    name: 'УЕБ КАМЕРА СТАРА ЗАГОРА ВРЕМЕТО ФОНТАН \'ЖАБКИТЕ\' (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/EES5TiEH/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Stara-Zagora-04-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zdsisznb',
+    lat: 42.686,
+    lng: 25.529,
+    name: 'СТАРА ЗАГОРА УЕБ КАМЕРИ ВРЕМЕТО ПАРК БАДМИНТОН',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/ZDSisZNb/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Stara-Zagora-06-webcam-live-online-camera-meteo-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-5fn8rzbr',
+    lat: 42.782,
+    lng: 25.527,
+    name: 'KAMEPA СТАРА ЗАГОРА ВРЕМЕТО СКЕЙТПАРК',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/5FN8RzbR/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Stara-Zagora-01',
+    external_url: 'http://free-webcambg.com/Stara-Zagora-05-street-center-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-e4r6seny',
+    lat: 42.701,
+    lng: 25.503,
+    name: 'УЕБ КАМЕРА СТАРА ЗАГОРА ВРЕМЕТО КВ. \'ВЪЗРАЖДАНЕ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/E4r6SEny/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Stara-Zagora-07',
+    external_url: 'http://free-webcambg.com/Stara-Zagora-07-street-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-stara-zagora-08',
+    lat: 42.782,
+    lng: 25.458,
+    name: 'УЕБ КАМЕРА СТАРА ЗАГОРА ВРЕМЕТО \'ОКОЛОВРЪСТЕН\' ПЪТ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Stara-Zagora-08',
+    external_url: 'http://free-webcambg.com/Stara-Zagora-08-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pleven-07',
+    lat: 43.399,
+    lng: 24.627,
+    name: 'KAMEPA ПЛЕВЕН ВРЕМЕТО Ж.К. \'СТОРГОЗИЯ\'',
+    city: 'Pleven',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pleven-07',
+    external_url: 'http://free-webcambg.com/Pleven-07-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pleven-08',
+    lat: 43.398,
+    lng: 24.627,
+    name: 'ПЛЕВЕН УЕБ КАМЕРА ВРЕМЕТО ЦЕНТЪР УЛИЦА КТБ',
+    city: 'Pleven',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pleven-08',
+    external_url: 'http://free-webcambg.com/Pleven-08-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-3qyq6dba',
+    lat: 43.432,
+    lng: 24.627,
+    name: 'KAMEPA ПЛЕВЕН ВРЕМЕТО ЦЕНТЪР, ПАНОРАМА (1)',
+    city: 'Pleven',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/3QYQ6dbA/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Pleven-11r',
+    external_url: 'http://free-webcambg.com/Pleven-11-webcam-live-online-camera-street-city-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nzh8fhhs',
+    lat: 43.382,
+    lng: 24.637,
+    name: 'KAMEPA ПЛЕВЕН ВРЕМЕТО ЦЕНТЪР, ПАНОРАМА (2)',
+    city: 'Pleven',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/nZH8fHhS/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Pleven-11r',
+    external_url: 'http://free-webcambg.com/Pleven-11-webcam-live-online-camera-street-city-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sliven-01',
+    lat: 42.724,
+    lng: 26.297,
+    name: 'KAMEPA СЛИВЕН ВРЕМЕТО ЦЕНТЪР',
+    city: 'Sliven',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sliven-01',
+    external_url: 'http://free-webcambg.com/Sliven-01-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nhaf57zr',
+    lat: 42.69,
+    lng: 26.287,
+    name: 'KAMEPA СЛИВЕН ВРЕМЕТО ОБЩИНА',
+    city: 'Sliven',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/NhaF57Zr/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sliven-10',
+    external_url: 'http://free-webcambg.com/Sliven-10-webcam-live-online-camera-city-complex-Sinite-kamani-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-s2gzn2sz',
+    lat: 42.654,
+    lng: 26.357,
+    name: 'KAMEPA СЛИВЕН ВРЕМЕТО ТЕЦ',
+    city: 'Sliven',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/S2GZn2Sz/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Sliven-04-city-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-hqskqeds',
+    lat: 42.645,
+    lng: 26.312,
+    name: 'KAMEPA СЛИВЕН ВРЕМЕТО TV КУЛА КАРАНДИЛА',
+    city: 'Sliven',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/hQsKQEds/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sliven-11r',
+    external_url: 'http://free-webcambg.com/Sliven-11-street-kvartal-jk-Dame-Gruev-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-vitosha-01',
+    lat: 42.558,
+    lng: 23.269,
+    name: 'УЕБ КАМЕРА \'ВИТОШКО ЛАЛЕ\' ВРЕМЕТО СКИ \'ЛАЛЕТО\'',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Vitosha-01',
+    external_url: 'http://free-webcambg.com/Vitosha-01-webcam-live-online-camera-ski-Laleto-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-di8zh683',
+    lat: 42.594,
+    lng: 23.255,
+    name: 'УЕБ КАМЕРА ВИТОША ВРЕМЕТО М. \'БЕЛИ БРЕЗИ\'',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/di8zh683/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Vitosha-05-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-adqkeraf',
+    lat: 42.577,
+    lng: 23.291,
+    name: 'KAMEPA \'ЧЕРНИ\' ВРЪХ 🏔️ ВРЕМЕТО ВИТОША LIVE',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/adQkeraF/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Vitosha-06',
+    external_url: 'http://free-webcambg.com/Vitosha-06-webcam-live-online-camera-Cherni-vrah-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-vitosha-07',
+    lat: 42.552,
+    lng: 23.269,
+    name: 'УЕБ КАМЕРА ГОСТОПРИЕМНИЦА \'МОТЕН\' ВРЕМЕТО',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Vitosha-07',
+    external_url: 'http://free-webcambg.com/Vitosha-07-webcam-live-online-camera-Guest-house-Moten-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-vitosha-08',
+    lat: 42.551,
+    lng: 23.269,
+    name: 'УЕБ КАМЕРИ ХИЖА \'ЧЕРВЕНАТА ШАПЧИЦА\', ВИТОША',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/carvul-csv',
+    external_url: 'http://free-webcambg.com/Vitosha-08-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-53h9brf3',
+    lat: 42.578,
+    lng: 23.306,
+    name: 'УЕБ КАМЕРА ХИЖА \'КАМЕН ДЕЛ\' ВРЕМЕТО ВИТОША',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/53h9BRf3/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Vitosha-09-webcam-hija-Kamen-del-hut-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-enbnhkni',
+    lat: 42.593,
+    lng: 23.244,
+    name: 'УЕБ КАМЕРА Х. \'ПЛАНИНАРСКА ПЕСЕН\' ВРЕМЕТО ВИТОША (1)',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/enBnHkni/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Hija-Planinarska-pesen-01-webcam-Vitosha-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-2ff37d2y',
+    lat: 42.533,
+    lng: 23.27,
+    name: 'УЕБ КАМЕРА Х. \'ПЛАНИНАРСКА ПЕСЕН\' ВРЕМЕТО ВИТОША (2)',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/2ff37D2Y/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Hija-Planinarska-pesen-01-webcam-Vitosha-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nk3brrey',
+    lat: 42.538,
+    lng: 23.294,
+    name: 'УЕБ КАМЕРА ХИЖА \'СЕПТЕМВРИ\' ВРЕМЕТО ВИТОША',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/nK3bRReY/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Vitosha-10',
+    external_url: 'http://free-webcambg.com/Vitosha-10-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-h79bhdtz',
+    lat: 42.604,
+    lng: 23.239,
+    name: 'УЕБ КАМЕРА ХИЖА \'БАЛКАНИТИ\' ВРЕМЕТО ВИТОША (1)',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/h79BHdtZ/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/carvul-gbm',
+    external_url: 'http://free-webcambg.com/Vitosha-11-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-arsyrr4e',
+    lat: 42.606,
+    lng: 23.322,
+    name: 'УЕБ КАМЕРА ХИЖА \'БАЛКАНИТИ\' ВРЕМЕТО ВИТОША (2)',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/ArsYRR4E/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/carvul-gbm',
+    external_url: 'http://free-webcambg.com/Vitosha-11-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kdrbkddz',
+    lat: 42.61,
+    lng: 23.261,
+    name: 'УЕБ КАМЕРА ЗАСЛОН Х. \'КИКИШ\' ВРЕМЕТО ВИТОША (1)',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/kDrbKdDz/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Vitosha-12-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-gsafbyd8',
+    lat: 42.534,
+    lng: 23.3,
+    name: 'УЕБ КАМЕРА ЗАСЛОН Х. \'КИКИШ\' ВРЕМЕТО ВИТОША (2)',
+    city: 'Vitosha',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/GSafbyD8/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Vitosha-12-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-bansko-08-city-street',
+    lat: 41.839,
+    lng: 23.531,
+    name: 'УЕБ КАМЕРА БАНСКО ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Bansko',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Bansko-08',
+    external_url: 'http://free-webcambg.com/Bansko-08-city-street-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-bansko-10',
+    lat: 41.792,
+    lng: 23.463,
+    name: 'КАМЕРИ БАНСКО ВРЕМЕТО СКИ ПИСТИ ПИРИН',
+    city: 'Bansko',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Bansko-10',
+    external_url: 'http://free-webcambg.com/Bansko-10-webcam-live-online-camera-Pirin-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-vihren-01',
+    lat: 42.602,
+    lng: 23.448,
+    name: 'KAMEPA ВРЪХ \'ВИХРЕН\' ВРЕМЕТО ПИРИН',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/vihren',
+    external_url: 'http://free-webcambg.com/Vihren-01-webcam-Pirin-hija-hut-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-dobrinishte-01',
+    lat: 41.828,
+    lng: 23.528,
+    name: 'KAMEPA ДОБРИНИЩЕ ВРЕМЕТО ПИРИН',
+    city: 'Dobrinishte',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Dobrinishte-01',
+    external_url: 'http://free-webcambg.com/Dobrinishte-01-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-4qrzh3en',
+    lat: 41.87,
+    lng: 23.515,
+    name: 'KAMEPИ ДОБРИНИЩЕ ВРЕМЕТО ЛИФТ, СКИ ПИСТИ',
+    city: 'Dobrinishte',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/4QRzH3EN/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Dobrinishte-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yd67y496',
+    lat: 42.614,
+    lng: 23.418,
+    name: 'KAMEPA ХИЖА БЕГОВИЦА ПИРИН',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Yd67Y496/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/begovica',
+    external_url: 'http://free-webcambg.com/hija-Begovica-02-webcam-Pirin-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-5aegn7ad',
+    lat: 42.899,
+    lng: 24.676,
+    name: 'УЕБ КАМЕРА ТРОЯНСКИ БАЛКАН ВРЕМЕТО Х-Л \'БАЛКАН\'',
+    city: 'Troyan',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/5aEGN7aD/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Troyanski-Balkan-01',
+    external_url: 'http://free-webcambg.com/Troyanski-Balkan-01-hotel-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-belasica-01',
+    lat: 42.692,
+    lng: 23.448,
+    name: 'KAMEPA ХИЖА \'БЕЛАСИЦА\' LIVE',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Belasica-01-webcam-hija-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zznye6dt',
+    lat: 42.662,
+    lng: 23.353,
+    name: '&copy; УЕБ КАМЕРА ХИЖА \'КОНГУР\' ВРЕМЕТО ДО ПЕТРИЧ (1)',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/ZznYE6dt/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Kongur-01-webcam-hija-Belasica-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nqhi5ybi',
+    lat: 42.689,
+    lng: 23.423,
+    name: '&copy; УЕБ КАМЕРА ХИЖА \'КОНГУР\' ВРЕМЕТО ДО ПЕТРИЧ (2)',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/nQhi5yBi/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Kongur-01-webcam-hija-Belasica-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-borovec-05',
+    lat: 42.761,
+    lng: 25.506,
+    name: 'УЕБ КАМЕРА БОРОВЕЦ ВРЕМЕТО СКИ ПИСТИ РИЛА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Borovec-05',
+    external_url: 'http://free-webcambg.com/Borovec-05-webcam-live-online-camera-Samokov-Hotel-ski-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-borovec-18',
+    lat: 42.232,
+    lng: 23.621,
+    name: 'УЕБ КАМЕРИ БОРОВЕЦ ВРЕМЕТО СКИ ЛИФТ ЦЕНТЪР',
+    city: 'Borovets',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Borovec-18-1',
+    external_url: 'http://free-webcambg.com/Borovec-18-webcam-live-online-camera-Rila-Borovets-ski-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-borovec-17',
+    lat: 42.231,
+    lng: 23.621,
+    name: 'УЕБ КАМЕРА ХИЖА \'ЯСТРЕБЕЦ\' ВРЕМЕТО БОРОВЕЦ',
+    city: 'Borovets',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Borovec-17',
+    external_url: 'http://free-webcambg.com/Borovec-17-webcam-live-online-camera-Yastrebec-hija-Rila-Borovets-ski-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zdravec-02',
+    lat: 42.618,
+    lng: 23.382,
+    name: 'KAMEPA КУРОРТ \'ХИЖА ЗДРАВЕЦ\' ВРЕМЕТО РОДОПИ',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Zdravec-02',
+    external_url: 'http://free-webcambg.com/Zdravec-02-webcam-hija-Rodopi-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-perushtica-02-brestovica',
+    lat: 42.741,
+    lng: 25.504,
+    name: 'УЕБ КАМЕРА ХОТЕЛ \'РОДОПИ\' ВРЕМЕТО ВС \'ВЪРХОВРЪХ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Perushtica-02',
+    external_url: 'http://free-webcambg.com/Perushtica-02-Brestovica-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-hut-bonsovi-polyani-01',
+    lat: 42.629,
+    lng: 23.391,
+    name: 'KAMEPA Х. БОНСОВИ ПОЛЯНИ ЛЮЛИН',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/carvul-bov',
+    external_url: 'http://free-webcambg.com/hut-Bonsovi-polyani-01-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-335rsryf',
+    lat: 42.75,
+    lng: 25.489,
+    name: 'KAMEPA \'МАЛЬОВИЦА\' ВРЕМЕТО \'МЕЧА ПОЛЯНА\' (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/335RSrYF/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Malyovica-02-webcam-Rila-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-8nratk6n',
+    lat: 42.753,
+    lng: 25.494,
+    name: 'KAMEPA \'МАЛЬОВИЦА\' ВРЕМЕТО \'МЕЧА ПОЛЯНА\' (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/8NraTk6N/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Malyovica-02-webcam-Rila-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-9z592y6q',
+    lat: 42.645,
+    lng: 23.372,
+    name: 'KAMEPA ВРЪХ МАЛЬОВИЦА РИЛА',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/9z592y6Q/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Malyovica-03-webcam-Rila-hija-vrah-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-rghba4na',
+    lat: 42.752,
+    lng: 25.514,
+    name: 'KAMEPИ ВРЪХ МУСАЛА ВРЕМЕТО ОТ БЕО РИЛА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/rGHBa4NA/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Musala-01w',
+    external_url: 'http://free-webcambg.com/Musala-01-webcam-live-online-camera-Rila-vrah-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-osogovo-01',
+    lat: 42.676,
+    lng: 23.379,
+    name: 'KAMEPA ОСОГОВО ВРЕМЕТО ПАРК \'ЛЮДМИЛ ЯНКОВ\'',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Osogovo-01',
+    external_url: 'http://free-webcambg.com/Osogovo-01-webcam-live-online-camera-ski-pista-Snow-Fun-park-hija-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-osogovo-02-skibg',
+    lat: 42.769,
+    lng: 25.453,
+    name: 'KAMEPA ОСОГОВО ВРЕМЕТО ФЪН-ПАРК СКИ ПИСТА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Osogovo-02c',
+    external_url: 'http://free-webcambg.com/Osogovo-02-skibg-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pamporovo-04',
+    lat: 41.616,
+    lng: 24.724,
+    name: 'УЕБ КАМЕРА ПАМПОРОВО ВРЕМЕТО ХОТЕЛ \'МУРГАВЕЦ\'',
+    city: 'Pamporovo',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pamporovo-04',
+    external_url: 'http://free-webcambg.com/Pamporovo-04-webcam-live-online-camera-ski-resort-Murgavets-hotel-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pamporovo-08',
+    lat: 41.62,
+    lng: 24.724,
+    name: 'KAMEPA ПАМПОРОВО ВРЕМЕТО МАЛИНА',
+    city: 'Pamporovo',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pamporovo-08',
+    external_url: 'http://free-webcambg.com/Pamporovo-08-webcam-live-online-camera-ski-Rodopi-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pamporovo-09-malina',
+    lat: 41.64,
+    lng: 24.639,
+    name: 'KAMEPA ПАМПОРОВО ВРЕМЕТО ВС \'МАЛИНА\'',
+    city: 'Pamporovo',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pamporovo-09',
+    external_url: 'http://free-webcambg.com/Pamporovo-09-Malina-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-shiroka-laka-02',
+    lat: 42.715,
+    lng: 25.528,
+    name: 'KAMEPA ШИРОКА ЛЪКА ВРЕМЕТО ЦЕНТЪР',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Shiroka-laka-02',
+    external_url: 'http://free-webcambg.com/Shiroka-laka-02-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-gkyrkgqn',
+    lat: 42.767,
+    lng: 25.448,
+    name: 'KAMEPA ГЕЛА ВРЕМЕТО КЪЩИ ЗА ГОСТИ РОДОПИ (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/GkYRkGQN/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Gela-04r',
+    external_url: 'http://free-webcambg.com/Gela-04-webcam-live-online-camera-Rodopi-hotel-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ydey8znh',
+    lat: 42.7,
+    lng: 25.518,
+    name: 'KAMEPA ГЕЛА ВРЕМЕТО КЪЩИ ЗА ГОСТИ РОДОПИ (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/YdEY8zNH/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Gela-04r',
+    external_url: 'http://free-webcambg.com/Gela-04-webcam-live-online-camera-Rodopi-hotel-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-b5fahtd8',
+    lat: 42.62,
+    lng: 23.396,
+    name: 'УЕБ КАМЕРА ХИЖА \'РИЛСКИ ЕЗЕРА\' ВРЕМЕТО РИЛА (1)',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/B5FAhtd8/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Rilski-ezera-01r',
+    external_url: 'http://free-webcambg.com/Rilski-ezera-01-webcam-live-online-camera-hija-Rila-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-enkh7zzz',
+    lat: 42.651,
+    lng: 23.427,
+    name: 'УЕБ КАМЕРА ХИЖА \'РИЛСКИ ЕЗЕРА\' ВРЕМЕТО РИЛА (2)',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/eNKh7ZzZ/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Rilski-ezera-01r',
+    external_url: 'http://free-webcambg.com/Rilski-ezera-01-webcam-live-online-camera-hija-Rila-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-rtzgrkkd',
+    lat: 42.669,
+    lng: 23.353,
+    name: 'УЕБ КАМЕРА ХИЖА \'РИЛСКИ ЕЗЕРА\' ВРЕМЕТО РИЛА (3)',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/RTZGRkkD/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Rilski-ezera-01r',
+    external_url: 'http://free-webcambg.com/Rilski-ezera-01-webcam-live-online-camera-hija-Rila-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-b8t7kek8',
+    lat: 42.626,
+    lng: 23.412,
+    name: 'KAMEPA Х. ПИОНЕРСКА РИЛА ПАНИЧИЩЕ (1)',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/b8t7kek8/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Rilski-ezera-02r',
+    external_url: 'http://free-webcambg.com/Rilski-ezera-02-webcam-live-online-camera-hija-Pionerska-Panichishte-Rila-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-9inf4a2a',
+    lat: 42.686,
+    lng: 23.429,
+    name: 'KAMEPA Х. ПИОНЕРСКА РИЛА ПАНИЧИЩЕ (2)',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/9iNf4A2A/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Rilski-ezera-02r',
+    external_url: 'http://free-webcambg.com/Rilski-ezera-02-webcam-live-online-camera-hija-Pionerska-Panichishte-Rila-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kdrr6qbf',
+    lat: 42.614,
+    lng: 23.38,
+    name: 'KAMEPA Х. ПИОНЕРСКА РИЛА ПАНИЧИЩЕ (3)',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/KDrR6QBf/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Rilski-ezera-02r',
+    external_url: 'http://free-webcambg.com/Rilski-ezera-02-webcam-live-online-camera-hija-Pionerska-Panichishte-Rila-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-rojen-01',
+    lat: 42.745,
+    lng: 25.491,
+    name: 'KAMEPA НАО РОЖЕН ВРЕМЕТО РОДОПИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Rojen-01',
+    external_url: 'http://free-webcambg.com/Rojen-01-webcam-live-online-camera-Rozhen-peak-NAO-vrah-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-hija-ruy-01',
+    lat: 42.631,
+    lng: 23.414,
+    name: 'KAMEPA ХИЖА \'РУЙ\' ВРЕМЕТО LIVE',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/carvul-rm',
+    external_url: 'http://free-webcambg.com/hija-Ruy-01-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ttfn2ztk',
+    lat: 42.605,
+    lng: 23.35,
+    name: 'KAMEPA ХИЖА \'БУНТОВНА\' ВРЕМЕТО СРЕДНА ГОРА',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/TtFn2ztk/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/hut-Buntovna-02-2',
+    external_url: 'http://free-webcambg.com/Hija-Buntovna-02-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-fa39hz3s',
+    lat: 42.712,
+    lng: 25.453,
+    name: 'УЕБ КАМЕРА М. \'УЗАНА\' ВРЕМЕТО СКИ ЗОНА \'ЕМАР\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Fa39hz3s/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Uzana-02',
+    external_url: 'http://free-webcambg.com/Uzana-02-ski-pisti-zona-Emar-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-bzb2r76h',
+    lat: 42.768,
+    lng: 25.458,
+    name: 'KAMEPA \'УЗАНА\' ВРЕМЕТО \'RAINBOW HILL\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/BZB2r76H/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Uzana-04z',
+    external_url: 'http://free-webcambg.com/Uzana-04-hotel-Impuls-ski-pista-Emar-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-a7qfhbek',
+    lat: 42.78,
+    lng: 25.462,
+    name: 'KAMEPA УЗАНА ВРЕМЕТО  БАЛКАНЦИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/a7QFhbeK/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Uzana-05r',
+    external_url: 'http://free-webcambg.com/Uzana-05-hotel-Balkanci-Stara-planina-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kaiaay9k',
+    lat: 42.693,
+    lng: 25.464,
+    name: 'KAMEPA \'ЦИГОВ ЧАРК\' ВРЕМЕТО ЯЗ. \'БАТАК\' (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/KaiaaY9K/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Cigov-chark-01r',
+    external_url: 'http://free-webcambg.com/Cigov-chark-01-Batak-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-4kna8hbg',
+    lat: 42.734,
+    lng: 25.528,
+    name: 'KAMEPA \'ЦИГОВ ЧАРК\' ВРЕМЕТО ЯЗ. \'БАТАК\' (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/4KNa8hbG/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Cigov-chark-01r',
+    external_url: 'http://free-webcambg.com/Cigov-chark-01-Batak-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-cigov-chark-02-rodopi',
+    lat: 42.74,
+    lng: 25.526,
+    name: 'УЕБ КАМЕРА \'ЦИГОВ ЧАРК\' ВРЕМЕТО РОДОПИТЕ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Cigov-chark-02r',
+    external_url: 'http://free-webcambg.com/Cigov-chark-02-Rodopi-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-chepelare-07',
+    lat: 42.696,
+    lng: 25.49,
+    name: 'KAMEPA ВР. \'МЕЧИ ЧАЛ\' ВРЕМЕТО СКИ ПИСТА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Chepelare-07',
+    external_url: 'http://free-webcambg.com/Chepelare-07-webcam-live-online-camera-ski-pista-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zhkhqd4k',
+    lat: 42.762,
+    lng: 25.497,
+    name: 'УЕБ КАМЕРА ВРЪХ \'БОТЕВ\' ВРЕМЕТО СТАРА ПЛАНИНА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/zhKhQd4k/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Botev-02-webcam-vrah-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-buzludja-01-hija',
+    lat: 42.696,
+    lng: 23.43,
+    name: 'КАМЕРИ \'БУЗЛУДЖА\' ВРЕМЕТО СКИ ПИСТА',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Buzludja-01',
+    external_url: 'http://free-webcambg.com/Buzludja-01-hija-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-6tk766rr',
+    lat: 42.696,
+    lng: 23.424,
+    name: 'KAMEPA ХИЖА ДОБРИЛА ВРЕМЕТО СТАРА ПЛ.',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/6TK766RR/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Dobrila-01',
+    external_url: 'http://free-webcambg.com/Dobrila-01-webcam-live-online-camera-hija-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kom-01',
+    lat: 42.605,
+    lng: 23.448,
+    name: 'KAMEPA Х. \'КОМ\' ВРЕМЕТО СКИ ПОД ВРЪХ \'КОМ\'',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Kom-01',
+    external_url: 'http://free-webcambg.com/Kom-01-webcam-live-online-camera-hija-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-5art64a4',
+    lat: 42.667,
+    lng: 23.422,
+    name: 'УЕБ КАМЕРА Х. \'РАЙ\' ВРЕМЕТО ВОДОПАД \'РАЙСКО ПРЪСКАЛО',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/5aRt64A4/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/hut',
+    external_url: 'http://free-webcambg.com/Ray-01-webcam-hija-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-hija-chumerna-01',
+    lat: 42.614,
+    lng: 23.405,
+    name: 'KAMEPA Х. ЧУМЕРНА БАЛКАНА',
+    city: 'Mountains',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/hija-Chumerna-01r',
+    external_url: 'http://free-webcambg.com/hija-Chumerna-01-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nisbszz2',
+    lat: 42.74,
+    lng: 25.436,
+    name: 'УЕБ КАМЕРА АХТОПОЛ ВРЕМЕТО ПОРТ МОСТ КЕЙ ФАР (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/niSBszZ2/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Ahtopol-02r',
+    external_url: 'http://free-webcambg.com/Ahtopol-02-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-skkba68r',
+    lat: 42.695,
+    lng: 25.512,
+    name: 'УЕБ КАМЕРА АХТОПОЛ ВРЕМЕТО ПОРТ МОСТ КЕЙ ФАР (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/SkkbA68r/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Ahtopol-02r',
+    external_url: 'http://free-webcambg.com/Ahtopol-02-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-balchik-03',
+    lat: 43.578,
+    lng: 28.293,
+    name: 'УЕБ КАМЕРА БАЛЧИК ВРЕМЕТО ОБЩИНА ЦЕНТЪР',
+    city: 'Balchik',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Balchik-03',
+    external_url: 'http://free-webcambg.com/Balchik-03-webcam-live-online-camera-street-center-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-balchik-04',
+    lat: 43.579,
+    lng: 28.293,
+    name: 'KAMEPA БАЛЧИК ВРЕМЕТО ГОЛФ ИГРИЩЕ',
+    city: 'Balchik',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Balchik-04',
+    external_url: 'http://free-webcambg.com/Balchik-04-webcam-live-online-camera-port-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-elenite-01-sveti-vlas-fort',
+    lat: 42.773,
+    lng: 27.872,
+    name: 'KAMEPИ \'ЕЛЕНИТЕ\' ВРЕМЕТО ПЛАЖ И КОМЛЕКСИ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Elenite-01-1',
+    external_url: 'http://free-webcambg.com/Elenite-01-Sveti-Vlas-Fort-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-elenite-05',
+    lat: 42.749,
+    lng: 25.49,
+    name: 'УЕБ КАМЕРА \'ЕЛЕНИТЕ\' ВРЕМЕТО \'ЗОРНИЦА СЕНДС\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Elenite-05',
+    external_url: 'http://free-webcambg.com/Elenite-05-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-golden-sands-05',
+    lat: 42.766,
+    lng: 25.477,
+    name: 'КАМЕРА ЗЛАТНИ ПЯСЪЦИ ВРЕМЕТО ЦЕНТЪР УЛИЦА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Golden-Sands-05',
+    external_url: 'http://free-webcambg.com/Golden-Sands-05-webcam-live-online-camera-plaj-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-golden-sands-06',
+    lat: 42.765,
+    lng: 25.477,
+    name: 'УЕБ КАМЕРА \'ЗЛАТНИ ПЯСЪЦИ\' ВРЕМЕТО ХОТЕЛ \'БЕНДИТА\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Golden-Sands-06',
+    external_url: 'http://free-webcambg.com/Golden-Sands-06-webcam-live-online-camera-hotel-Bendita-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-golden-sands-09-sentido',
+    lat: 42.707,
+    lng: 25.443,
+    name: 'КАМЕРА \'ЗЛАТНИ ПЯСЪЦИ\' ВРЕМЕТО ЦЕНТЪР ХОТЕЛ \'SENTIDO\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Golden-Sands-09',
+    external_url: 'http://free-webcambg.com/Golden-Sands-09-Sentido-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-z8dzzdqn',
+    lat: 43.249,
+    lng: 27.882,
+    name: 'KAMEPA КАВАРНА ВРЕМЕТО ПЛАЖ ИКАНТЪЛЪКА (1)',
+    city: 'Varna',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/z8DzZDQN/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kavarna-03',
+    external_url: 'http://free-webcambg.com/Kavarna-03-Balchik-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ka7fz2di',
+    lat: 43.18,
+    lng: 27.889,
+    name: 'KAMEPA КАВАРНА ВРЕМЕТО ПЛАЖ ИКАНТЪЛЪКА (2)',
+    city: 'Varna',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Ka7FZ2Di/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kavarna-03',
+    external_url: 'http://free-webcambg.com/Kavarna-03-Balchik-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-rusalka-02',
+    lat: 42.818,
+    lng: 27.854,
+    name: 'KAMEPA \'РУСАЛКА\' ВРЕМЕТО ПЛАЖ И ЗАЛИВ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/rusalka',
+    external_url: 'http://free-webcambg.com/Rusalka-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kavarna-04',
+    lat: 43.221,
+    lng: 27.896,
+    name: 'УЕБ КАМЕРА КАВАРНА ВРЕМЕТО ПЛАЖ БАР БАСЕЙН',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kavarna-04',
+    external_url: 'http://free-webcambg.com/Kavarna-04-webcam-Balchik-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kiten-04',
+    lat: 42.779,
+    lng: 25.528,
+    name: 'УЕБ КАМЕРА КИТЕН ВРЕМЕТО АВТОГАРА УЛИЦА \'СТРАНДЖА\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kiten-04',
+    external_url: 'http://free-webcambg.com/Kiten-04-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kiten-05',
+    lat: 42.778,
+    lng: 25.528,
+    name: 'УЕБ КАМЕРА КИТЕН ВРЕМЕТО СЦЕНА ФОНТАН ПАРК',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kiten-05',
+    external_url: 'http://free-webcambg.com/Kiten-05-webcam-live-online-camera-fontan-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kiten-06-morska-gradina',
+    lat: 42.778,
+    lng: 25.535,
+    name: 'УЕБ КАМЕРА КИТЕН ВРЕМЕТО МОРСКА ГРАДИНА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kiten-06',
+    external_url: 'http://free-webcambg.com/Kiten-06-Morska-gradina-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varna-09',
+    lat: 43.222,
+    lng: 27.929,
+    name: 'УЕБ КАМЕРА ГРАНД ХОТЕЛ ВАРНА ВРЕМЕТО ПЛАЖ',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Varna-09',
+    external_url: 'http://free-webcambg.com/Varna-09-webcam-live-online-camera-South-Bay-beach-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-lozenets-01',
+    lat: 42.739,
+    lng: 25.477,
+    name: 'УЕБ КАМЕРА ЛОЗЕНЕЦ ВРЕМЕТО ЦЕНТЪР ТЪРГОВСКА УЛИЦА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Lozenets-01',
+    external_url: 'http://free-webcambg.com/Lozenets-01-webcam-live-online-street-Lozenec-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-knzr6nh4',
+    lat: 42.753,
+    lng: 27.866,
+    name: 'УЕБ КАМЕРА ЛОЗЕНЕЦ ВРЕМЕТО \'ЦЕНТРАЛЕН\' ПЛАЖ (1)',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/KnzR6Nh4/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Lozenets-03',
+    external_url: 'http://free-webcambg.com/Lozenets-03-webcam-live-online-plaj-centralen-Lozenec-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-93akaheb',
+    lat: 42.836,
+    lng: 27.879,
+    name: 'УЕБ КАМЕРА ЛОЗЕНЕЦ ВРЕМЕТО \'ЦЕНТРАЛЕН\' ПЛАЖ (2)',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/93AkaheB/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Lozenets-03',
+    external_url: 'http://free-webcambg.com/Lozenets-03-webcam-live-online-plaj-centralen-Lozenec-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nessebar-01',
+    lat: 42.635,
+    lng: 27.745,
+    name: 'УЕБ КАМЕРА НЕСЕБЪР ВРЕМЕТО АРКА \'ЗОРНИЦА\'',
+    city: 'Nessebar',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Nessebar-01',
+    external_url: 'http://free-webcambg.com/Nessebar-01-webcam-live-online-camera-Nesebar-Zornitsa-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nessebar-02',
+    lat: 42.634,
+    lng: 27.745,
+    name: 'УЕБ КАМЕРА НЕСЕБЪР ВРЕМЕТО ЗАЛИВ \'ЗОРНИЦА\'',
+    city: 'Nessebar',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Nesebar-02',
+    external_url: 'http://free-webcambg.com/Nessebar-02-webcam-live-online-camera-Nesebar-Zornitsa-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-strfbda4',
+    lat: 42.706,
+    lng: 27.78,
+    name: 'УЕБ КАМЕРА НЕСЕБЪР ВРЕМЕТО \'СТАРИЯ ГРАД\' МОСТ',
+    city: 'Nessebar',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/strFbDA4/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Nesebar-04',
+    external_url: 'http://free-webcambg.com/Nessebar-04-webcam-live-online-camera-Nesebar-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nessebar-08-cherno-more',
+    lat: 42.638,
+    lng: 27.78,
+    name: 'KAMEPA СТАР НЕСЕБЪР ВРЕМЕТО ПОРТ МОСТ',
+    city: 'Nessebar',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Nesebar-08z',
+    external_url: 'http://free-webcambg.com/Nessebar-08-Cherno-more-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zt37qfif',
+    lat: 42.784,
+    lng: 27.893,
+    name: 'УЕБ КАМЕРА ОБЗОР ВРЕМЕТО ПЛАЖ \'YOO\' ЧЕРНО МОРЕ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/zt37QFif/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Obzor-01',
+    external_url: 'http://free-webcambg.com/Obzor-01-webcam-live-online-camera-plaj-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ifz658ff',
+    lat: 42.76,
+    lng: 27.922,
+    name: 'УЕБ КАМЕРА ОБЗОР ВРЕМЕТО \'ЦЕНТРАЛЕН\' ПЛАЖ (1)',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/ifz658Ff/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Obzor-02-1',
+    external_url: 'http://free-webcambg.com/Obzor-02-webcam-live-online-camera-plaj-complex-Moreto-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-girfr83s',
+    lat: 42.784,
+    lng: 27.859,
+    name: 'УЕБ КАМЕРА ОБЗОР ВРЕМЕТО \'ЦЕНТРАЛЕН\' ПЛАЖ (2)',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/GiRfR83S/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Obzor-02-1',
+    external_url: 'http://free-webcambg.com/Obzor-02-webcam-live-online-camera-plaj-complex-Moreto-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pomorie-03',
+    lat: 42.698,
+    lng: 25.456,
+    name: 'УЕБ КАМЕРА ПОМОРИЕ ВРЕМЕТО КОМПЛЕКС НАТАЛИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pomorie-03',
+    external_url: 'http://free-webcambg.com/Pomorie-03-webcam-live-online-camera-Complex-Natali-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pomorie-05-street',
+    lat: 42.781,
+    lng: 27.931,
+    name: 'УЕБ КАМЕРА ПОМОРИЕ ВРЕМЕТО УЛИЦИ И ПЛАЖ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pomorie-05-2',
+    external_url: 'http://free-webcambg.com/Pomorie-05-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-primorsko-02',
+    lat: 42.72,
+    lng: 25.455,
+    name: 'УЕБ КАМЕРА ПРИМОРСКО ВРЕМЕТО ПРЕСТИЖ СИТИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Primorsko-02',
+    external_url: 'http://free-webcambg.com/Primorsko-02-webcam-live-online-camera-hotel-plaj-more-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ravda-03-riviera-fort-beach',
+    lat: 42.742,
+    lng: 25.439,
+    name: 'УЕБ КАМЕРА РАВДА ВРЕМЕТО \'РИВИЕРА ФОРТ БИЙЧ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Ravda-03',
+    external_url: 'http://free-webcambg.com/Ravda-03-Riviera-Fort-Beach-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ravda-04-cascadas',
+    lat: 42.771,
+    lng: 27.91,
+    name: 'KAMEPИ РАВДА ВРЕМЕТО ПЛАЖ ЧЕРНО МОРЕ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Ravda-04',
+    external_url: 'http://free-webcambg.com/Ravda-04-Cascadas-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ravda-05-elegance',
+    lat: 42.767,
+    lng: 27.924,
+    name: 'КАМЕРА РАВДА ВРЕМЕТО ПЛАЖ ХОТЕЛ \'ЕЛЕГАНС\'',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Ravda-05z',
+    external_url: 'http://free-webcambg.com/Ravda-05-Elegance-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sveti-vlas-02-port',
+    lat: 42.692,
+    lng: 25.487,
+    name: 'УЕБ КАМЕРА СВЕТИ ВЛАС ВРЕМЕТО ПОРТ ЯХТИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sveti-Vlas-02',
+    external_url: 'http://free-webcambg.com/Sveti-Vlas-02-port-webcam-live-online-camera-kameri-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sveti-vlas-08-casa-real',
+    lat: 42.778,
+    lng: 25.451,
+    name: 'УЕБ КАМЕРА СВЕТИ ВЛАС ВРЕМЕТО БАСЕЙН \'КАСА РЕАЛ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sveti-Vlas-08',
+    external_url: 'http://free-webcambg.com/Sveti-Vlas-08-Casa-Real-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sveti-vlas-09-prestige-fort-beach',
+    lat: 42.818,
+    lng: 27.943,
+    name: 'KAMEPA СВЕТИ ВЛАС ВРЕМЕТО ЧЕРНО МОРЕ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sveti-Vlas-09',
+    external_url: 'http://free-webcambg.com/Sveti-Vlas-09-Prestige-Fort-Beach-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sunny-beach-03',
+    lat: 42.71,
+    lng: 25.525,
+    name: 'УЕБ КАМЕРА \'СЛЪНЧЕВ БРЯГ\' ВРЕМЕТО Х-Л \'ВИКТОРИЯ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sunny-Beach-03',
+    external_url: 'http://free-webcambg.com/Sunny-Beach-03-webcam-live-online-camera-Victoria-plaj-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sunny-beach-04',
+    lat: 42.709,
+    lng: 25.525,
+    name: 'УЕБ КАМЕРА \'СЛЪНЧЕВ БРЯГ\' ВРЕМЕТО Х-Л \'SUNNY VIEW NORTH\' 🛀',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sunny-Beach-04-1',
+    external_url: 'http://free-webcambg.com/Sunny-Beach-04-webcam-live-online-camera-Luxor-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-eh8zaqby',
+    lat: 42.745,
+    lng: 25.523,
+    name: 'KAMEPA СЛЪНЧЕВ БРЯГ ВРЕМЕТО GOLDEN INA',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Eh8ZAQby/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sunny-Bcaeh-06',
+    external_url: 'http://free-webcambg.com/Sunny-Beach-06-webcam-live-online-camera-Sveti-Vlas-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sunny-beach-09',
+    lat: 42.771,
+    lng: 27.939,
+    name: 'KAMEPA СЛЪНЧЕВ БРЯГ ВРЕМЕТО ПЛАЖ МОСТ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sunny-Beach-09',
+    external_url: 'http://free-webcambg.com/Sunny-Beach-09-webcam-live-online-camera-Kuban-plaj-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sunny-beach-13-nesebar',
+    lat: 42.73,
+    lng: 25.517,
+    name: 'КАМЕРА \'СЛЪНЧЕВ БРЯГ\' ВРЕМЕТО БАСЕЙН',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sunny-beach-13',
+    external_url: 'http://free-webcambg.com/Sunny-Beach-13-Nesebar-webcam-live-online-camera-kameri-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sunny-beach-14-messembria-nessebar',
+    lat: 42.64,
+    lng: 27.727,
+    name: 'УЕБ КАМЕРА \'СЛЪНЧЕВ БРЯГ\' ВРЕМЕТО \'МЕСЕМБРИЯ ПАЛАС\'',
+    city: 'Nessebar',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sunny-Beach-14',
+    external_url: 'http://free-webcambg.com/Sunny-Beach-14-Messembria-Nessebar-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sunny-beach-15',
+    lat: 42.777,
+    lng: 25.524,
+    name: 'УЕБ КАМЕРА \'СЛЪНЧЕВ БРЯГ\' ВРЕМЕТО ЗОНА \'ЗАПАД\', АКВАПАРК 🛀',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sunny-Beach-15',
+    external_url: 'http://free-webcambg.com/Sunny-Beach-15-webcam-Aqualand-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sunny-beach-16',
+    lat: 42.843,
+    lng: 27.938,
+    name: 'KAMEPA \'СЛЪНЧЕВ БРЯГ\' ВРЕМЕТО ПЛАЖ \'ЧАЙКА\'',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sunny-Beach-16',
+    external_url: 'http://free-webcambg.com/Sunny-Beach-16-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-8id4ns75',
+    lat: 42.772,
+    lng: 27.896,
+    name: 'УЕБ КАМЕРА СИНЕМОРЕЦ ВРЕМЕТО ПЛАЖ \'ВЕЛЕКА\' (1)',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/8iD4NS75/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Sinemorec-02-webcam-plaj-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-iira96zb',
+    lat: 42.84,
+    lng: 27.879,
+    name: 'УЕБ КАМЕРА СИНЕМОРЕЦ ВРЕМЕТО ПЛАЖ \'ВЕЛЕКА\' (2)',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/iiRa96zB/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Sinemorec-02-webcam-plaj-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-t4fgz7yb',
+    lat: 42.783,
+    lng: 27.903,
+    name: 'УЕБ КАМЕРА СИНЕМОРЕЦ ВРЕМЕТО ПЛАЖ \'ВЕЛЕКА\' (3)',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/t4fGZ7yB/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Sinemorec-02-webcam-plaj-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-eupz4mnt',
+    lat: 42.452,
+    lng: 27.686,
+    name: 'KAMEPA СОЗОПОЛ ВРЕМЕТО ЗАЛИВ ЧЕРНО МОРЕ',
+    city: 'Sozopol',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/EUPz4MnT/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sozopol-01',
+    external_url: 'http://free-webcambg.com/Sozopol-01-webcam-live-online-camera-plaj-more-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-syhhg2sf',
+    lat: 42.417,
+    lng: 27.721,
+    name: 'УЕБ КАМЕРА СОЗОПОЛ ВРЕМЕТО ВС \'САНТА МАРИНА\' (1)',
+    city: 'Sozopol',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/syhhG2sf/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sozopol-02',
+    external_url: 'http://free-webcambg.com/Sozopol-02-webcam-live-online-camera-Saint-Marina-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-qidfrsne',
+    lat: 42.435,
+    lng: 27.708,
+    name: 'УЕБ КАМЕРА СОЗОПОЛ ВРЕМЕТО ВС \'САНТА МАРИНА\' (2)',
+    city: 'Sozopol',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/QiDFrSne/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sozopol-02',
+    external_url: 'http://free-webcambg.com/Sozopol-02-webcam-live-online-camera-Saint-Marina-kameri-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sozopol-03',
+    lat: 42.461,
+    lng: 27.677,
+    name: 'УЕБ КАМЕРА СОЗОПОЛ ВРЕМЕТО КЪМПИНГ \'СМОКИНЯ\', ЧЕРНО МОРЕ',
+    city: 'Sozopol',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sozopol-03',
+    external_url: 'http://free-webcambg.com/Sozopol-03-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yni8rqta',
+    lat: 42.449,
+    lng: 27.72,
+    name: 'KAMEPA СОЗОПОЛ ВРЕМЕТО КЪМПИНГ \'КАВАЦИ\'',
+    city: 'Sozopol',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/yNi8rQta/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sozopol-04r',
+    external_url: 'http://free-webcambg.com/Sozopol-04-webcam-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-chernomorec-02',
+    lat: 42.828,
+    lng: 27.926,
+    name: 'KAMEPA ЧЕРНОМОРЕЦ ВРЕМЕТО ЦЕНТЪР, БАСЕЙН',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Chernomorec-02',
+    external_url: 'http://free-webcambg.com/Chernomorec-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-abeqbky7',
+    lat: 42.777,
+    lng: 25.488,
+    name: 'KAMEPA ЦАРЕВО ВРЕМЕТО LIVE',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/ABeQBKy7/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Tsarevo-01-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-tsarevo-03',
+    lat: 42.778,
+    lng: 27.939,
+    name: 'УЕБ КАМЕРА ЦАРЕВО ВРЕМЕТО ПОРТ ЯХТИ ЧЕРНО МОРЕ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Carevo-03',
+    external_url: 'http://free-webcambg.com/Tsarevo-03-webcam-live-online-camera-port-Carevo-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-shabla-02',
+    lat: 42.745,
+    lng: 25.455,
+    name: 'УЕБ КАМЕРА ШАБЛА ВРЕМЕТО ШАБЛЕНСКИ ФАР',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/shabl',
+    external_url: 'http://free-webcambg.com/Shabla-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zktrky3s',
+    lat: 42.757,
+    lng: 27.939,
+    name: 'УЕБ КАМЕРА ТЮЛЕНОВО ВРЕМЕТО ПЛАЖ ЧЕРНО МОРЕ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/ZKTrKy3S/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/tylen',
+    external_url: 'http://free-webcambg.com/Tyulenovo-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-krapec-02',
+    lat: 42.819,
+    lng: 27.94,
+    name: 'KAMEPA КРАПЕЦ ВРЕМЕТО ПЛАЖ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Krapec-02',
+    external_url: 'http://free-webcambg.com/Krapec-02-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-shkorpilovci-02',
+    lat: 42.768,
+    lng: 27.94,
+    name: 'УЕБ КАМЕРА ШКОРПИЛОВЦИ ВРЕМЕТО ПЛАЖ МОРЕ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Shkorpilovci-02',
+    external_url: 'http://free-webcambg.com/Shkorpilovci-02-webcam-live-online-camera-plaj-more-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ardino-01',
+    lat: 42.768,
+    lng: 25.469,
+    name: 'KAMEPИ АРДИНО И ДЯВОЛСКИ МОСТ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Ardino-01',
+    external_url: 'http://free-webcambg.com/Ardino-01-webcams-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-24rzssie',
+    lat: 42.739,
+    lng: 25.491,
+    name: 'УЕБ КАМЕРА АСЕНОВГРАД ВРЕМЕТО ЦЕНТЪР ГЛАВНА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/24rzsSiE/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Asenovgrad-03-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-asenovgrad-04',
+    lat: 42.748,
+    lng: 25.471,
+    name: 'УЕБ КАМЕРА АСЕНОВГРАД ВРЕМЕТО КВ. \'БАДЕЛЕМА\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Asenovgrad-04',
+    external_url: 'http://free-webcambg.com/Asenovgrad-04-webcam-live-online-camera-vila-Gorski-Kyt-Forest-Nook-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-h7rbs9ty',
+    lat: 42.683,
+    lng: 25.466,
+    name: 'KAMEPA АСЕНОВГРАД ВРЕМЕТО КВ. \'МЕТОХА\' (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/h7rBs9TY/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Asenovgrad-05r',
+    external_url: 'http://free-webcambg.com/Asenovgrad-05-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-y4bdhdzq',
+    lat: 42.685,
+    lng: 25.459,
+    name: 'KAMEPA АСЕНОВГРАД ВРЕМЕТО КВ. \'МЕТОХА\' (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Y4bDHdzQ/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Asenovgrad-05r',
+    external_url: 'http://free-webcambg.com/Asenovgrad-05-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-berkovica-01-center-berkovitsa',
+    lat: 42.774,
+    lng: 25.453,
+    name: 'KAMEPA БЕРКОВИЦА ВРЕМЕТО ЦЕНТЪР LIVE',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Berkovica-01',
+    external_url: 'http://free-webcambg.com/Berkovica-01-center-Berkovitsa-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-blagoevgrad-01',
+    lat: 42.006,
+    lng: 23.054,
+    name: 'KAMEPA БЛАГОЕВГРАД ВРЕМЕТО US УНИВЕРСИТЕТ',
+    city: 'Blagoevgrad',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Gradblagoev-01',
+    external_url: 'http://free-webcambg.com/Blagoevgrad-01-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-blagoevgrad-04',
+    lat: 42.009,
+    lng: 23.054,
+    name: 'KAMEPA БЛАГОЕВГРАД ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Blagoevgrad',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Gradblagoev-04',
+    external_url: 'http://free-webcambg.com/Blagoevgrad-04-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-blagoevgrad-06',
+    lat: 42.011,
+    lng: 23.054,
+    name: 'KAMEPA БЛАГОЕВГРАД ВРЕМЕТО СПОРТНИ ИГРИЩА АУ',
+    city: 'Blagoevgrad',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Blagoevgrad-06',
+    external_url: 'http://free-webcambg.com/Blagoevgrad-06-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-fryzfefs',
+    lat: 42.758,
+    lng: 25.499,
+    name: 'KAMEPA БРАЦИГОВО ВРЕМЕТО РОДОПИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/frYZFEfs/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Bracigovo-02r',
+    external_url: 'http://free-webcambg.com/Bracigovo-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-853ha97a',
+    lat: 42.745,
+    lng: 25.476,
+    name: 'KAMEPA В. ТЪРНОВО ВРЕМЕТО АСЕНЕВЦИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/853Ha97a/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Veliko-Tarnovo-03',
+    external_url: 'http://free-webcambg.com/Veliko-Tarnovo-03-webcam-live-online-camera-city-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-veliko-tarnovo-07-street-city',
+    lat: 42.731,
+    lng: 25.531,
+    name: 'KAMEPA В. ТЪРНОВО ВРЕМЕТО ТРИЪГЪЛНИКА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Veliko-Tarnovo-07',
+    external_url: 'http://free-webcambg.com/Veliko-Tarnovo-07-street-city-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-tsrtaqbt',
+    lat: 42.018,
+    lng: 24.032,
+    name: 'KAMEPA ВЕЛИНГРАД ВРЕМЕТО ЦЕНТЪР ФОНТАН',
+    city: 'Velingrad',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/tsrTaQbT/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Velingrad-01',
+    external_url: 'http://free-webcambg.com/Velingrad-01-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-velingrad-03',
+    lat: 41.987,
+    lng: 24.023,
+    name: 'KAMEPA ВЕЛИНГРАД ВРЕМЕТО УЛИЦИ ДО ПАЗАРА',
+    city: 'Velingrad',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Velingrad-03',
+    external_url: 'http://free-webcambg.com/Velingrad-03-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-9ybhe2kd',
+    lat: 42.063,
+    lng: 24.035,
+    name: 'KAMEPA ВЕЛИНГРАД ВРЕМЕТО ЦЕНТЪР ФОНТАН',
+    city: 'Velingrad',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/9yBHE2Kd/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Velingrad-04-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-5eezf83y',
+    lat: 42.704,
+    lng: 25.488,
+    name: 'УЕБ КАМЕРА ВИДИН ВРЕМЕТО ЦЕНТЪР ПЛ. \'БДИНЦИ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/5Eezf83y/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Vidin-01',
+    external_url: 'http://free-webcambg.com/Vidin-01-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-vidin-05',
+    lat: 42.709,
+    lng: 25.507,
+    name: 'KAMEPA ВИДИН ВРЕМЕТО ДКЦ ДО ПЛ. \'ТАШКЮПРИЯ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Vidin-05',
+    external_url: 'http://free-webcambg.com/Vidin-05-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-vratsa-05',
+    lat: 43.181,
+    lng: 23.557,
+    name: 'KAMEPA ВРАЦА ВРЕМЕТО ЦЕНТЪР',
+    city: 'Vratsa',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Vraca-05-c2s',
+    external_url: 'http://free-webcambg.com/Vratsa-05-webcam-live-online-camera-Vraca-shop-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-vratsa-06',
+    lat: 43.18,
+    lng: 23.557,
+    name: 'KAMEPA ВРАЦА ВРЕМЕТО ВР. ОКОЛЧИЦА (ВОЛА)',
+    city: 'Vratsa',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Vraca-06',
+    external_url: 'http://free-webcambg.com/Vratsa-06-webcam-live-online-camera-kameri-vraca-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-varshec-02',
+    lat: 42.774,
+    lng: 25.458,
+    name: 'KAMEPA ВЪРШЕЦ ЦЕНТЪР ФОНТАН ⛲ LIVE',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Varshec-02',
+    external_url: 'http://free-webcambg.com/Varshec-02-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-gabrovo-01',
+    lat: 42.83,
+    lng: 25.279,
+    name: 'УЕБ КАМЕРА ГАБРОВО ВРЕМЕТО КВ. ЖК \'МЛАДОСТ\'',
+    city: 'Gabrovo',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Gabrovo-01',
+    external_url: 'http://free-webcambg.com/Gabrovo-01-webcam-live-online-camera-mladost-tenta-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-si3tg78s',
+    lat: 42.9,
+    lng: 25.35,
+    name: 'KAMEPA ГАБРОВО ВРЕМЕТО ПЛ. \'ВЪЗРАЖДАНЕ\' (1)',
+    city: 'Gabrovo',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Si3tG78s/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Gabrovo-03',
+    external_url: 'http://free-webcambg.com/Gabrovo-03-Vazrajdane-ploshtad-Vazrazhdane-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-f7refiz3',
+    lat: 42.874,
+    lng: 25.3,
+    name: 'KAMEPA ГАБРОВО ВРЕМЕТО ПЛ. \'ВЪЗРАЖДАНЕ\' (2)',
+    city: 'Gabrovo',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/F7rEFiZ3/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Gabrovo-03',
+    external_url: 'http://free-webcambg.com/Gabrovo-03-Vazrajdane-ploshtad-Vazrazhdane-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-gabrovo-06',
+    lat: 42.835,
+    lng: 25.279,
+    name: 'УЕБ КАМЕРА ЕМО \'ЕТЪР\' (\'ЕТЪРА\') ВРЕМЕТО МУЗЕЙ ГАБРОВО',
+    city: 'Gabrovo',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Gabrovo-06',
+    external_url: 'http://free-webcambg.com/Gabrovo-06-webcam-live-online-camera-Etar-Complex-museum-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-glodjevo-01',
+    lat: 42.781,
+    lng: 25.439,
+    name: 'УЕБ КАМЕРИ ГЛОДЖЕВО ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Glodjevo-01-2',
+    external_url: 'http://free-webcambg.com/Glodjevo-01-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-tkt7qskh',
+    lat: 42.728,
+    lng: 25.451,
+    name: 'KAMEPA ГЪЛЪБОВО ВРЕМЕТО ВИЛНА ЗОНА (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/TkT7QSKh/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Galabovo-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-q9e4kyni',
+    lat: 42.745,
+    lng: 25.533,
+    name: 'KAMEPA ГЪЛЪБОВО ВРЕМЕТО ВИЛНА ЗОНА (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Q9E4KYni/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Galabovo-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-gorna-oryahovica-01',
+    lat: 42.684,
+    lng: 25.535,
+    name: 'KAMEPA ГОРНА ОРЯХОВИЦА ЦЕНТЪР',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Gorna-Oryahovica-01yv',
+    external_url: 'http://free-webcambg.com/Gorna-Oryahovica-01-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-devin-01',
+    lat: 41.791,
+    lng: 24.397,
+    name: 'КАМЕРА ДЕВИН ВРЕМЕТО ПАНОРАМА ЦЕНТЪР РОДОПИ',
+    city: 'Devin',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Devin-01',
+    external_url: 'http://free-webcambg.com/Devin-01-webcam-live-online-camera-Rodopi-meteo-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-dobrich-03-street',
+    lat: 43.615,
+    lng: 27.863,
+    name: 'УЕБ КАМЕРА ДОБРИЧ ВРЕМЕТО ЖК \'БАЛИК\' БЛ. 6',
+    city: 'Dobrich',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Dobrich-03',
+    external_url: 'http://free-webcambg.com/Dobrich-03-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ybhb9nba',
+    lat: 42.778,
+    lng: 25.483,
+    name: 'УЕБ КАМЕРА ЕЛХОВО ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/yBhb9nbA/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Elhovo-02',
+    external_url: 'http://free-webcambg.com/Elhovo-02-webcam-live-online-camera-center-central-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zlatograd-01-eak-eac',
+    lat: 42.711,
+    lng: 25.469,
+    name: 'УЕБ КАМЕРА ЗЛАТОГРАД ВРЕМЕТО ЕАК, РОДОПИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Zlatograd-01',
+    external_url: 'http://free-webcambg.com/Zlatograd-01-EAK-EAC-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kazanlak-01',
+    lat: 42.594,
+    lng: 25.422,
+    name: 'КАМЕРА КАЗАНЛЪК ВРЕМЕТО УЛ. \'ИСКРА\'',
+    city: 'Kazanlak',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kazanlak-01',
+    external_url: 'http://free-webcambg.com/Kazanlak-01-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kazanlak-02',
+    lat: 42.593,
+    lng: 25.422,
+    name: 'УЕБ КАМЕРА КАЗАНЛЪК ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Kazanlak',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kazanlak-02',
+    external_url: 'http://free-webcambg.com/Kazanlak-02-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kazanlak-03',
+    lat: 42.592,
+    lng: 25.422,
+    name: 'УЕБ КАМЕРА КАЗАНЛЪК ВРЕМЕТО УЛ. \'СКОБЕЛЕВСКА\'',
+    city: 'Kazanlak',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Kazanlak-03',
+    external_url: 'http://free-webcambg.com/Kazanlak-03-webcam-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-karlovo-01',
+    lat: 42.763,
+    lng: 25.473,
+    name: 'УЕБ КАМЕРА КАРЛОВО ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Karlovo-01',
+    external_url: 'http://free-webcambg.com/Karlovo-01-webcam-live-online-camera-center-tv-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-y9s5shb9',
+    lat: 42.719,
+    lng: 25.478,
+    name: 'KAMEPA КОЗЛОДУЙ ВРЕМЕТО ЖК 2А (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/y9S5Shb9/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Kozloduy-03',
+    external_url: 'http://free-webcambg.com/Kozloduy-03-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-fd3nt4ks',
+    lat: 42.73,
+    lng: 25.476,
+    name: 'KAMEPA КОЗЛОДУЙ ВРЕМЕТО ЖК 2А (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/fD3nT4ks/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Kozloduy-03',
+    external_url: 'http://free-webcambg.com/Kozloduy-03-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-koprivshtitsa-01',
+    lat: 42.744,
+    lng: 25.447,
+    name: 'УЕБ КАМЕРА КОПРИВЩИЦА ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Koprivshtitsa-01',
+    external_url: 'http://free-webcambg.com/Koprivshtitsa-01-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kotel-02',
+    lat: 42.773,
+    lng: 25.476,
+    name: 'УЕБ КАМЕРА КОТЕЛ ВРЕМЕТО КВ. \'ГЪРНЕВЕЦ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kotel-02',
+    external_url: 'http://free-webcambg.com/Kotel-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kyustendil-02-street-kustendil',
+    lat: 42.77,
+    lng: 25.517,
+    name: 'УЕБ КАМЕРА КЮСТЕНДИЛ ВРЕМЕТО ЦЕНТЪР УЛИЦИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Kyustendil-02',
+    external_url: 'http://free-webcambg.com/Kyustendil-02-street-Kustendil-webcam-Osogovo-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-lovech-02',
+    lat: 43.121,
+    lng: 24.766,
+    name: 'УЕБ КАМЕРА ЛОВЕЧ ВРЕМЕТО ЦЕНТЪР ГЛАВНА ОБЩИНА',
+    city: 'Lovech',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Lovech-02',
+    external_url: 'http://free-webcambg.com/Lovech-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-lovech-08',
+    lat: 43.115,
+    lng: 24.766,
+    name: 'УЕБ КАМЕРА ЛОВЕЧ ВРЕМЕТО ЖК \'ЧЕРВЕН БРЯГ\'',
+    city: 'Lovech',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Lovech-08',
+    external_url: 'http://free-webcambg.com/Lovech-08-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yfyf796s',
+    lat: 42.76,
+    lng: 25.531,
+    name: 'УЕБ КАМЕРА МЕЛНИК ВРЕМЕТО СКАЛНИ ПИРАМИДИ (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Yfyf796s/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Melnik-03r',
+    external_url: 'http://free-webcambg.com/Melnik-03-piramidi-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-337nbfik',
+    lat: 42.698,
+    lng: 25.447,
+    name: 'УЕБ КАМЕРА МЕЛНИК ВРЕМЕТО СКАЛНИ ПИРАМИДИ (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/337NbFiK/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Melnik-03r',
+    external_url: 'http://free-webcambg.com/Melnik-03-piramidi-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zq3neegn',
+    lat: 42.744,
+    lng: 25.451,
+    name: 'KAMEPA МОМЧИЛГРАД ЦЕНТЪР ⛲ LIVE',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/zQ3neeGn/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Momchilgrad-01-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-montana-02-street',
+    lat: 43.369,
+    lng: 23.181,
+    name: 'KAMEPA МОНТАНА ВРЕМЕТО КВАРТАЛ ПАРК',
+    city: 'Montana',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Montana-02',
+    external_url: 'http://free-webcambg.com/Montana-02-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-ogosta-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nedelino-01',
+    lat: 42.721,
+    lng: 25.456,
+    name: 'УЕБ КАМЕРА НЕДЕЛИНО ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Nedelino-01',
+    external_url: 'http://free-webcambg.com/Nedelino-01-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yahnffsg',
+    lat: 42.695,
+    lng: 25.481,
+    name: 'КАМЕРА НОВА ЗАГОРА ВРЕМЕТО УЛИЦИ ТРАФИК (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/yaHnFfSG/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Nova-Zagora-01r',
+    external_url: 'http://free-webcambg.com/Nova-Zagora-01-webcam-live-online-camera-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-7isrenyd',
+    lat: 42.758,
+    lng: 25.506,
+    name: 'УЕБ КАМЕРА НОВА ЗАГОРА ВРЕМЕТО УЛИЦА ЖП ГАРА (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/7iSReNYD/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Nova-Zagora-03-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-fdeyhttq',
+    lat: 42.7,
+    lng: 25.482,
+    name: 'УЕБ КАМЕРА НОВА ЗАГОРА ВРЕМЕТО УЛИЦА ЖП ГАРА (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/FdeyhTTQ/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Nova-Zagora-03-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-aatytftr',
+    lat: 42.688,
+    lng: 25.458,
+    name: 'УЕБ КАМЕРА НОВИ ИСКЪР ВРЕМЕТО \'КУМАРИЦА\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/AaTyTFTR/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Novi-Iskar-03-webcam-live-online-camera-Kumarica-Kumaritsa-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pavel-banya-01',
+    lat: 42.701,
+    lng: 25.469,
+    name: 'ПАВЕЛ БАНЯ УЕБ КАМЕРА ВРЕМЕТО ЦЕНТЪР ФОНТАН',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pavel-banya-01',
+    external_url: 'http://free-webcambg.com/Pavel-Banya-01-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-thge23ys',
+    lat: 42.764,
+    lng: 25.437,
+    name: 'УЕБ КАМЕРА ПАВЛИКЕНИ ВРЕМЕТО ЦЕНТЪР УЛИЦА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/tHGE23yS/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Pavlikeni-01',
+    external_url: 'http://free-webcambg.com/Pavlikeni-01-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pavlikeni-02-centar-park',
+    lat: 42.754,
+    lng: 25.472,
+    name: 'УЕБ КАМЕРА ПАВЛИКЕНИ ВРЕМЕТО ЦЕНТЪР ПАРК',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pavlikeni-02',
+    external_url: 'http://free-webcambg.com/Pavlikeni-02-centar-park-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pazardjik-02-street',
+    lat: 42.7,
+    lng: 25.457,
+    name: 'УЕБ КАМЕРА ПАЗАРДЖИК ВРЕМЕТО ЦЕНТЪР УЛИЦИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pazardjik-02',
+    external_url: 'http://free-webcambg.com/Pazardjik-02-street-webcam-Pazardzhik-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pazardjik-04-street',
+    lat: 42.774,
+    lng: 25.49,
+    name: 'КАМЕРА ПАЗАРДЖИК ВРЕМЕТО УЛИЦА ДО КАТ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pazardjik-04',
+    external_url: 'http://free-webcambg.com/Pazardjik-04-street-webcam-Pazardzhik-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-8nfr9ytq',
+    lat: 42.698,
+    lng: 25.517,
+    name: 'УЕБ КАМЕРА СЕПТЕМВРИ ВРЕМЕТО ЦЕНТЪР, ПАРКИНГ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/8NfR9YtQ/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Septemvri-02r',
+    external_url: 'http://free-webcambg.com/Septemvri-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pernik-03-street',
+    lat: 42.584,
+    lng: 23.048,
+    name: 'KAMEPA ПЕРНИК ВРЕМЕТО КВ. \'ТЕВА\', ТЕЦ',
+    city: 'Pernik',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pernik-03',
+    external_url: 'http://free-webcambg.com/Pernik-03-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-pernik-05',
+    lat: 42.628,
+    lng: 23.069,
+    name: 'УЕБ КАМЕРА ПЕРНИК ВРЕМЕТО ВИЛНА ЗОНА',
+    city: 'Pernik',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Pernik-05',
+    external_url: 'http://free-webcambg.com/Pernik-05-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-breznik-02',
+    lat: 42.693,
+    lng: 25.518,
+    name: 'УЕБ КАМЕРА БРЕЗНИК ВРЕМЕТО ЦЕНТЪР ЧИТАЛИЩЕ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Breznik-02r',
+    external_url: 'http://free-webcambg.com/Breznik-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-s4ry4dki',
+    lat: 42.747,
+    lng: 25.479,
+    name: 'УЕБ КАМЕРА ПЕЩЕРА ВРЕМЕТО ЦЕНТЪР КАФЕ УЛИЦА (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/S4rY4DKi/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Peshtera-02rc',
+    external_url: 'http://free-webcambg.com/Peshtera-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-9kz6s2h4',
+    lat: 42.732,
+    lng: 25.514,
+    name: 'УЕБ КАМЕРА ПЕЩЕРА ВРЕМЕТО ЦЕНТЪР КАФЕ УЛИЦА (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/9KZ6S2H4/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Peshtera-02rc',
+    external_url: 'http://free-webcambg.com/Peshtera-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-e5ds65th',
+    lat: 43.533,
+    lng: 26.512,
+    name: 'KAMEPA РАЗГРАД ВРЕМЕТО ЖК \'ЖИТНИЦА\'',
+    city: 'Razgrad',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/e5DS65TH/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Razgrad-06-3',
+    external_url: 'http://free-webcambg.com/Razgrad-02-webcam-live-online-camera-street-traffic-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-razgrad-03',
+    lat: 43.518,
+    lng: 26.521,
+    name: 'KAMEPA РАЗГРАД ВРЕМЕТО ЖК КВ. \'ОБОРИЩЕ\'',
+    city: 'Razgrad',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Razgrad-06-3',
+    external_url: 'http://free-webcambg.com/Razgrad-03-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-razgrad-06-vilna-zona',
+    lat: 43.531,
+    lng: 26.485,
+    name: 'УЕБ КАМЕРА РАЗГРАД ВРЕМЕТО ДВОР УЛИЦА ПАРК',
+    city: 'Razgrad',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Razgrad-06-1',
+    external_url: 'http://free-webcambg.com/Razgrad-06-vilna-zona-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-razlog-02',
+    lat: 42.771,
+    lng: 25.524,
+    name: 'УЕБ КАМЕРА РАЗЛОГ ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Razlog-02',
+    external_url: 'http://free-webcambg.com/Razlog-02-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-razlog-03',
+    lat: 42.77,
+    lng: 25.524,
+    name: 'КАМЕРА РАЗЛОГ ВРЕМЕТО СПА Х-Л \'БАЛКАНСКО БИЖУ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Razlog-03',
+    external_url: 'http://free-webcambg.com/Razlog-03-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nn328n73',
+    lat: 42.782,
+    lng: 25.459,
+    name: 'KAMEPA РАКИТОВО ВРЕМЕТО ЦЕНТЪР',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/NN328n73/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/rakitak',
+    external_url: 'http://free-webcambg.com/Rakitovo-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-samokov-03',
+    lat: 42.771,
+    lng: 25.505,
+    name: 'УЕБ КАМЕРА САМОКОВ ВРЕМЕТО КВ. ЖК \'САМОКОВО\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Samokov-03',
+    external_url: 'http://free-webcambg.com/Samokov-03-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nyahq8qs',
+    lat: 41.58,
+    lng: 23.328,
+    name: 'KAMEPИ САНДАНСКИ ВРЕМЕТО ПИРИН И БЕЛАСИЦА (1)',
+    city: 'Sandanski',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/NYahQ8QS/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Sandanski-01-webcam-live-online-camera-Pirin-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-srdh84bd',
+    lat: 41.526,
+    lng: 23.292,
+    name: 'KAMEPИ САНДАНСКИ ВРЕМЕТО ПИРИН И БЕЛАСИЦА (2)',
+    city: 'Sandanski',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/SrDH84BD/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Sandanski-01-webcam-live-online-camera-Pirin-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sts3q7kn',
+    lat: 41.581,
+    lng: 23.26,
+    name: 'УЕБ КАМЕРА САНДАНСКИ ВРЕМЕТО ЦЕНТЪР ГУМ',
+    city: 'Sandanski',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/stS3Q7kn/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Sandanski-03',
+    external_url: 'http://free-webcambg.com/Sandanski-03-city-street-Glavnata-GUM-Pirin-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-svilengrad-02',
+    lat: 42.763,
+    lng: 25.521,
+    name: 'KAMEPA СВИЛЕНГРАД ВРЕМЕТО БУЛ. \'БЪЛГАРИЯ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Svilengrad-02',
+    external_url: 'http://free-webcambg.com/Svilengrad-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-svishtov-04',
+    lat: 43.612,
+    lng: 25.38,
+    name: 'УЕБ КАМЕРА СВИЩОВ ВРЕМЕТО ЦЕНТЪР ПЛОЩАД ФОНТАН',
+    city: 'Svishtov',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Svishtov-04r',
+    external_url: 'http://free-webcambg.com/Svishtov-04-webcam-live-online-camera-stadium-Akademik-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-iibbbyth',
+    lat: 43.023,
+    lng: 25.056,
+    name: 'KAMEPA СЕВЛИЕВО ВРЕМЕТО ЦЕНТЪР LIVE',
+    city: 'Sevlievo',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/iiBBBYTh/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sevlievo-02',
+    external_url: 'http://free-webcambg.com/Sevlievo-02-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-silistra-02',
+    lat: 44.077,
+    lng: 27.291,
+    name: 'KAMEPA СИЛИСТРА ВРЕМЕТО РЕКА ДУНАВ',
+    city: 'Silistra',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Silistra-02',
+    external_url: 'http://free-webcambg.com/Silistra-02-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-smolyan-02-centar-rodopi',
+    lat: 41.541,
+    lng: 24.71,
+    name: 'УЕБ КАМЕРА СМОЛЯН ВРЕМЕТО ЦЕНТЪР ТЕАТЪР ОБЩИНА',
+    city: 'Smolyan',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Smolyan-02r',
+    external_url: 'http://free-webcambg.com/Smolyan-02-Centar-Rodopi-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-smolyan-03-raykovo-rodopi',
+    lat: 41.56,
+    lng: 24.668,
+    name: 'KAMEPA СМОЛЯН ВРЕМЕТО ЧЕРНА РЕКА',
+    city: 'Smolyan',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Smolyan-03a',
+    external_url: 'http://free-webcambg.com/Smolyan-03-Raykovo-Rodopi-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sopot-01',
+    lat: 42.748,
+    lng: 25.499,
+    name: 'УЕБ КАМЕРА СОПОТ ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sopot-01',
+    external_url: 'http://free-webcambg.com/Sopot-01-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-6hkbsziy',
+    lat: 42.737,
+    lng: 25.519,
+    name: 'KAMEPA МАНАСТИРСКА ПОЛЯНА НАД СОПОТ (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/6hKBSZiy/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Manastirska-Poliana-01',
+    external_url: 'http://free-webcambg.com/Manastirska-poliana-01-Sopot-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-y5qi3dt2',
+    lat: 42.764,
+    lng: 25.452,
+    name: 'KAMEPA МАНАСТИРСКА ПОЛЯНА НАД СОПОТ (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/y5Qi3DT2/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Manastirska-Poliana-01',
+    external_url: 'http://free-webcambg.com/Manastirska-poliana-01-Sopot-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-a25iqfs4',
+    lat: 42.75,
+    lng: 25.481,
+    name: 'KAMEPA СРЕДЕЦ ВРЕМЕТО ЦЕНТЪР ФОНТАН (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/A25iQfs4/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sredec-02r',
+    external_url: 'http://free-webcambg.com/Sredec-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-a6k2afd2',
+    lat: 42.746,
+    lng: 25.473,
+    name: 'KAMEPA СРЕДЕЦ ВРЕМЕТО ЦЕНТЪР ФОНТАН (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/a6k2aFD2/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sredec-02r',
+    external_url: 'http://free-webcambg.com/Sredec-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-dekbffgf',
+    lat: 42.782,
+    lng: 25.454,
+    name: 'KAMEPA ТЕТЕВЕН ВРЕМЕТО ЦЕНТЪР, РЕКА ВИТ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/DeKbffGF/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Teteven-02',
+    external_url: 'http://free-webcambg.com/Teteven-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-qe3ga626',
+    lat: 43.25,
+    lng: 26.578,
+    name: 'УЕБ КАМЕРА ТЪРГОВИЩЕ ВРЕМЕТО ЦЕНТЪР УЛИЦА ПАРКИНГ',
+    city: 'Targovishte',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Qe3Ga626/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Targovishte-02',
+    external_url: 'http://free-webcambg.com/Targovishte-02-webcam-live-online-camera-center-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-harmanli-03',
+    lat: 42.779,
+    lng: 25.491,
+    name: 'УЕБ КАМЕРА ХАРМАНЛИ ВРЕМЕТО ГР. ПАРК СЦЕНА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Harmanli-03',
+    external_url: 'http://free-webcambg.com/Harmanli-03-webcam-live-online-camera-city-park-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zfsbd9hd',
+    lat: 41.886,
+    lng: 25.566,
+    name: 'KAMEPA ХАСКОВО ТРАФИК 🚗 УЛИЦИ LIVE',
+    city: 'Haskovo',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/ZfsBD9hd/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Haskovo-01',
+    external_url: 'http://free-webcambg.com/Haskovo-01-webcam-live-online-camera-city-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nrk6kgna',
+    lat: 41.948,
+    lng: 25.57,
+    name: 'KAMEPИ ХАСКОВО ВРЕМЕТО ЦЕНТЪР \'ЧАСОВНИКА\'',
+    city: 'Haskovo',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/NRK6kGNA/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Haskovo-02',
+    external_url: 'http://free-webcambg.com/Haskovo-02-webcam-live-online-camera-center-Atlanticheski-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zhf5rgfi',
+    lat: 41.959,
+    lng: 25.555,
+    name: 'УЕБ КАМЕРА ХАСКОВО ВРЕМЕТО ЦЕНТЪР ПЛ. \'СВОБОДА\'',
+    city: 'Haskovo',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/ZHF5rGFi/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Haskovo-03-webcam-live-online-camera-center-fontan-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ydsq58nk',
+    lat: 41.951,
+    lng: 25.558,
+    name: 'KAMEPA ХАСКОВО ВРЕМЕТО КВ. \'МАКЕДОНСКИ\'',
+    city: 'Haskovo',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/yDsQ58nK/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Haskovo-04',
+    external_url: 'http://free-webcambg.com/Haskovo-04-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-aez7ddeb',
+    lat: 43.237,
+    lng: 26.899,
+    name: 'КАМЕРА ШУМЕН ВРЕМЕТО ЦЕНТЪР ГЛАВНА ПЛОЩАД',
+    city: 'Shumen',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Aez7ddeB/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Shumen-01',
+    external_url: 'http://free-webcambg.com/Shumen-01-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-frrn6hsb',
+    lat: 43.288,
+    lng: 26.919,
+    name: 'УЕБ КАМЕРА ШУМЕН ВРЕМЕТО КВ. \'ДОБРУДЖАНСКИ\'',
+    city: 'Shumen',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/FRrN6hsB/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Shumen-02-webcam-live-online-camera-city-street-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-eess7khz',
+    lat: 43.301,
+    lng: 26.947,
+    name: 'УЕБ КАМЕРА ШУМЕН ВРЕМЕТО ЦЕНТЪР ПМГ УЛ. \'БОЗВЕЛИ\' (2)',
+    city: 'Shumen',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/EESS7kHz/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Shumen-01c',
+    external_url: 'http://free-webcambg.com/Shumen-03-webcam-live-online-camera-plato-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-shumen-04',
+    lat: 43.248,
+    lng: 26.928,
+    name: 'УЕБ КАМЕРА ШУМЕН ВРЕМЕТО ТРАФИК \'КРЪГОВО\' ИПЗ',
+    city: 'Shumen',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Shumen-04',
+    external_url: 'http://free-webcambg.com/Shumen-04-webcam-live-online-camera-promishlena-industrialna-zona-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-shumen-05-sky',
+    lat: 43.227,
+    lng: 26.889,
+    name: 'УЕБ КАМЕРА ШУМЕН ВРЕМЕТО ШУМЕНСКОТО ПЛАТО',
+    city: 'Shumen',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Shumen-05',
+    external_url: 'http://free-webcambg.com/Shumen-05-sky-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-shumen-06-center-street',
+    lat: 43.254,
+    lng: 26.933,
+    name: 'KAMEPA ШУМЕН ВРЕМЕТО ЦЕНТЪР УЛ. \'БЕЛАСИЦА\'',
+    city: 'Shumen',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Shumen-06t',
+    external_url: 'http://free-webcambg.com/Shumen-06-center-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-frf4s3qr',
+    lat: 42.443,
+    lng: 26.509,
+    name: 'УЕБ КАМЕРА ЯМБОЛ ВРЕМЕТО ЦЕНТЪР \'ГЛАВНА\' УЛИЦА',
+    city: 'Yambol',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/frF4S3QR/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Yambol-02r',
+    external_url: 'http://free-webcambg.com/Yambol-02-street-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yambol-03-street',
+    lat: 42.474,
+    lng: 26.525,
+    name: 'KAMEPA ЯМБОЛ ВРЕМЕТО ЦЕНТЪР КАФЕ',
+    city: 'Yambol',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Yambol-03',
+    external_url: 'http://free-webcambg.com/Yambol-03-street-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-belchin-bani-03',
+    lat: 42.773,
+    lng: 25.489,
+    name: 'УЕБ КАМЕРА БЕЛЧИН БАНИ ВРЕМЕТО ХОТЕЛ \'БЕЛЧИН ГАРДЪН\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Belchin-bani-03',
+    external_url: 'http://free-webcambg.com/Belchin-bani-03-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-bojenci-01',
+    lat: 42.743,
+    lng: 25.461,
+    name: 'KAMEPA БОЖЕНЦИТЕ ВРЕМЕТО МАИР \'БОЖЕНЦИ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Bojenci-01',
+    external_url: 'http://free-webcambg.com/Bojenci-01-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-dhq65bfg',
+    lat: 42.776,
+    lng: 25.49,
+    name: 'УЕБ КАМЕРА БОЙКОВО ВРЕМЕТО РОДОПИ ПЛАНИНА (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/DhQ65BFG/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Boykovo-01',
+    external_url: 'http://free-webcambg.com/Boykovo-01-webcam-live-online-camera-Rodopi-planina-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-99nez4ts',
+    lat: 42.709,
+    lng: 25.485,
+    name: 'УЕБ КАМЕРА БОЙКОВО ВРЕМЕТО РОДОПИ ПЛАНИНА (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/99Nez4tS/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Boykovo-01',
+    external_url: 'http://free-webcambg.com/Boykovo-01-webcam-live-online-camera-Rodopi-planina-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kaliakra-01-nos-cherno-more-kavarna',
+    lat: 43.198,
+    lng: 27.924,
+    name: 'KAMEPA НОС КАЛИАКРА ВРЕМЕТО М. \'ЗЕЛЕНКА\'',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Kaliakra-01',
+    external_url: 'http://free-webcambg.com/Kaliakra-01-nos-cherno-more-kavarna-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nsqnzi44',
+    lat: 42.74,
+    lng: 25.474,
+    name: 'KAMEPA БЯГА ВРЕМЕТО ПЪТ ЗА БАТАК',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/NsQnZi44/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Byaga-02r',
+    external_url: 'http://free-webcambg.com/Byaga-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-gabarevo-01',
+    lat: 42.726,
+    lng: 25.444,
+    name: 'KAMEPA ГАБАРЕВО ВРЕМЕТО ЦЕНТЪР ПЛОЩАД',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Gabarevo-01',
+    external_url: 'http://free-webcambg.com/Gabarevo-01-webcam-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-395k5hq9',
+    lat: 42.748,
+    lng: 25.521,
+    name: 'УЕБ КАМЕРА ГОРНО КРАИЩЕ ВРЕМЕТО ЦЕНТЪР ПЛ.',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/395k5HQ9/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/gorno',
+    external_url: 'http://free-webcambg.com/Gorno-Kraishte-01-webcam-live-online-camera-center-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kntqsy87',
+    lat: 43.66,
+    lng: 25.336,
+    name: 'KAMEPA КОЗЛОВЕЦ ВРЕМЕТО ЦЕНТЪР, ДО СВИЩОВ (1)',
+    city: 'Svishtov',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/KNtQsy87/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Kozlovec-01-Svishtov-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-7b7ga9kz',
+    lat: 43.663,
+    lng: 25.396,
+    name: 'KAMEPA КОЗЛОВЕЦ ВРЕМЕТО ЦЕНТЪР, ДО СВИЩОВ (2)',
+    city: 'Svishtov',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/7b7Ga9Kz/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Kozlovec-01-Svishtov-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-kosharica-03-kosharitsa',
+    lat: 42.704,
+    lng: 25.447,
+    name: 'УЕБ КАМЕРА КОШАРИЦА ВРЕМЕТО ВК СЪНСЕТ ХОТЕЛ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Kosharica-03',
+    external_url: 'http://free-webcambg.com/Kosharica-03-Kosharitsa-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-mostovo-01',
+    lat: 42.738,
+    lng: 25.468,
+    name: 'KAMEPA МОСТОВО ВРЕМЕТО РОДОПИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Mostovo-01r',
+    external_url: 'http://free-webcambg.com/Mostovo-01-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-nnhkrbs8',
+    lat: 42.769,
+    lng: 25.445,
+    name: 'KAMEPA СТРУМЯНИ ВРЕМЕТО ЦЕНТЪР И ПИРИН (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/NnhKrBS8/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Strumyani-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-7rzi9gsh',
+    lat: 42.75,
+    lng: 25.438,
+    name: 'KAMEPA СТРУМЯНИ ВРЕМЕТО ЦЕНТЪР И ПИРИН (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/7RZi9GSH/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Strumyani-02-webcam-BG.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-caracovo-02-plovdiv',
+    lat: 42.16,
+    lng: 24.752,
+    name: 'УЕБ КАМЕРА ВЕСЕЛИНОВО ВРЕМЕТО 4 КМ. ЯМБОЛ',
+    city: 'Plovdiv',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Caracovo-02',
+    external_url: 'http://free-webcambg.com/Caracovo-02-Plovdiv-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ngk5st97',
+    lat: 42.731,
+    lng: 25.44,
+    name: 'УЕБ КАМЕРА ЦРЪНЧА ВРЕМЕТО ОБЩИНА ПАЗАРДЖИК',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/nGK5St97/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Crancha-03-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-dolna-banya-01',
+    lat: 42.725,
+    lng: 25.493,
+    name: 'KAMEPA ЛЕТИЩЕ \'ДОЛНА БАНЯ\' ВРЕМЕТО ПИСТИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Dolna-Banya-01',
+    external_url: 'http://free-webcambg.com/Dolna-Banya-01-webcam-live-online-camera-Airport-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-lesnovo-02',
+    lat: 42.7,
+    lng: 25.51,
+    name: 'KAMEPA ЛЕТИЩЕ \'ЛЕСНОВО\' ВРЕМЕТО ПОЛОСА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Lesnovo-02',
+    external_url: 'http://free-webcambg.com/Lesnovo-02-webcam-airport-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-dk3kbrak',
+    lat: 42.772,
+    lng: 25.492,
+    name: 'KAMEPA ЛЕТИЩЕ ИХТИМАН ВРЕМЕТО ЧЕРНЬОВО (1)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/dk3KbraK/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Airport-05-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ky9iy4re',
+    lat: 42.689,
+    lng: 25.493,
+    name: 'KAMEPA ЛЕТИЩЕ ИХТИМАН ВРЕМЕТО ЧЕРНЬОВО (2)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/Ky9iy4Re/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Airport-05-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-n2fgyyks',
+    lat: 42.75,
+    lng: 25.446,
+    name: 'KAMEPA ЛЕТИЩЕ ИХТИМАН ВРЕМЕТО ЧЕРНЬОВО (3)',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/N2FGYYKs/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Airport-05-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-sofia-31',
+    lat: 42.685,
+    lng: 23.321,
+    name: 'УЕБ КАМЕРА СОФИЯ ВРЕМЕТО ЛЕТИЩЕ БАЗА \'BH AIR\'',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-31',
+    external_url: 'http://free-webcambg.com/Sofia-31-webcam-live-online-camera-mladost-2-Sf-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-ttnngfs2',
+    lat: 42.778,
+    lng: 27.878,
+    name: 'KAMEPA ЯЗОВИР \'ИСКЪР\' ВРЕМЕТО ПЛАЖ',
+    city: 'Black Sea',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/TTnNGfS2/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Yazovir-Iskar-02r',
+    external_url: 'http://free-webcambg.com/Yazovir-Iskar-02-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yazovir-pyasachnik-02',
+    lat: 42.744,
+    lng: 25.493,
+    name: 'УЕБ КАМЕРА ЯЗОВИР \'ПЯСЪЧНИК\' ВРЕМЕТО РИБОЛОВ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Yazovir-Pyasachnik-02',
+    external_url: 'http://free-webcambg.com/Yazovir-Pyasachnik-02-webcam-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yazovir-dospat-01',
+    lat: 42.729,
+    lng: 25.511,
+    name: 'KAMEPA ЯЗОВИР \'ДОСПАТ\' ВРЕМЕТО РОДОПИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Yazovir-Dospat-01',
+    external_url: 'http://free-webcambg.com/Yazovir-Dospat-01-webcam-Rodopi-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-2ey6rfak',
+    lat: 42.711,
+    lng: 25.458,
+    name: 'УЕБ КАМЕРА \'СРЕБЪРНА\' ВРЕМЕТО ЕЗЕРО ПЕЛИКАНИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/2EY6rFAk/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Srebarna-02',
+    external_url: 'http://free-webcambg.com/Srebarna-02-webcam-ezero-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-durankulak-01',
+    lat: 42.717,
+    lng: 25.531,
+    name: 'ДУРАНКУЛАШКО ЕЗЕРО УЕБ КАМЕРА ВРЕМЕТО ТУЗЛА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Durankulak-01',
+    external_url: 'http://free-webcambg.com/Durankulak-01-webcam-live-online-camera-Dourankoulak-kameri-na-jivo-vremeto-weather.htm',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-bzqsb2bd',
+    lat: 42.697,
+    lng: 25.519,
+    name: 'УЕБ КАМЕРА ЯЗОВИР \'БАТАК\' ВРЕМЕТО \'ЦИГОВ ЧАРК\' ОСТРОВА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/bZQSb2BD/',
+    stream_type: 'iframe',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Yazovir-Batak-02',
+    external_url: 'http://free-webcambg.com/Yazovir-Batak-02-webcam-Rodopi-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yazovir-batak-03',
+    lat: 42.729,
+    lng: 25.49,
+    name: 'УЕБ КАМЕРА ЯЗОВИР \'БАТАК\' ВРЕМЕТО ПРЕЛИВНИК',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Yazovir-Batak-03',
+    external_url: 'http://free-webcambg.com/Yazovir-Batak-03-webcam-Rodopi-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-shabla-03',
+    lat: 42.744,
+    lng: 25.455,
+    name: 'УЕБ КАМЕРА ШАБЛЕНСКО ЕЗЕРО ВРЕМЕТО ТУЗЛАТА',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Shabla-03',
+    external_url: 'http://free-webcambg.com/Shabla-03-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-fa8ztd69',
+    lat: 42.717,
+    lng: 25.463,
+    name: 'KAMEPA ПАНЧАРЕВО ВРЕМЕТО Р. ИСКЪР',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/FA8ZTD69/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Pancharevo-02r',
+    external_url: 'http://free-webcambg.com/Pancharevo-02-webcam-BG.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-aleko-konstantinovo-03-ribarnik-alfish',
+    lat: 42.726,
+    lng: 25.468,
+    name: 'KAMEPA АЛЕКО КОНСТАНТИНОВО ВРЕМЕТО',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Aleko-Konstantinovo-03',
+    external_url: 'http://free-webcambg.com/Aleko-Konstantinovo-03-ribarnik-Alfish-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yazovir-koprinka-01-kazanlak',
+    lat: 42.595,
+    lng: 25.412,
+    name: 'KAMEPA ЯЗ. \'КОПРИНКА\' ВРЕМЕТО ДО КАЗАНЛЪК',
+    city: 'Kazanlak',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Yazovir-Koprinka-01',
+    external_url: 'http://free-webcambg.com/Yazovir-Koprinka-01-Kazanlak-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-burgas-14-street',
+    lat: 42.518,
+    lng: 27.498,
+    name: 'KAMEPA БУРГАС ВРЕМЕТО АТАНАСОВСКО ЕЗЕРО',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Burgas-14',
+    external_url: 'http://free-webcambg.com/Burgas-14-street-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-banichan-02',
+    lat: 42.722,
+    lng: 25.437,
+    name: 'KAMEPA БАНИЧАН ВРЕМЕТО ГНЕЗДО ЩЪРКЕЛ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Banichan-02',
+    external_url: 'http://free-webcambg.com/Banichan-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-dragushinovo-02',
+    lat: 42.691,
+    lng: 25.445,
+    name: 'KAMEPA ДРАГУШИНОВО ЩЪРКЕЛИ LIVE',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Dragushinovo-02',
+    external_url: 'http://free-webcambg.com/Dragushinovo-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-yarlovo-02',
+    lat: 42.772,
+    lng: 25.488,
+    name: 'KAMEPA ЯРЛОВО ВРЕМЕТО ГНЕЗДО БЯЛ ЩЪРКЕЛ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://cdn1.free-webcambg.com/cams/Yarlovo-02',
+    external_url: 'http://free-webcambg.com/Yarlovo-02-webcam-street-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zzz-30-gnezdo-nest',
+    lat: 42.716,
+    lng: 25.44,
+    name: 'KAMEPA СКАЛНО ГНЕЗДО ЕГИПЕТСКИ ЛЕШОЯДИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Zzz-30',
+    external_url: 'http://free-webcambg.com/Zzz-30-gnezdo-nest-webcam-live-online-camera-kameri-na-jivo.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-malko-tarnovo-02-derekoy',
+    lat: 42.708,
+    lng: 25.505,
+    name: 'KAMEPИ ГКПП МАЛКО ТЪРНОВО ВРЕМЕТО',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Malko-Tarnovo-02-1',
+    external_url: 'http://free-webcambg.com/Malko-Tarnovo-02-Derekoy-webcam-live-online-camera-kamerite-na-jivo-vremeto-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zlatograd-03-centar-park',
+    lat: 42.778,
+    lng: 25.506,
+    name: 'KAMEPA ГКПП \'ЗЛАТОГРАД\' ВРЕМЕТО РОДОПИ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Zlatograd-03',
+    external_url: 'http://free-webcambg.com/Zlatograd-03-centar-park-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-dqyegbyk',
+    lat: 42.751,
+    lng: 25.464,
+    name: 'KAMEPИ ПАРЛАМЕНТ ЗАЛА HC И ЦИК',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/DQyeGBYk/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Sofia-45',
+    external_url: 'http://free-webcambg.com/Zzz-01-indoor-room-business-webcam-live-online-camera-kamerite-na-jivo.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-g4hk3ykt',
+    lat: 43.374,
+    lng: 24.59,
+    name: 'УЕБ КАМЕРА ПЛЕВЕН КАТОЛИЧЕСКА ЦЪРКВА \'ДЕВА МАРИЯ\'',
+    city: 'Pleven',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/G4hK3ykt/',
+    stream_type: 'iframe',
+    feed_url: 'http://free-webcambg.com/pics/Pleven-15',
+    external_url: 'http://free-webcambg.com/Pleven-15-city-park-webcam-live-online-camera-kameri-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zzz-21-indoor-room-business',
+    lat: 42.778,
+    lng: 25.455,
+    name: 'KAMEPA ГАБРОВО СПОРТНА ЗАЛА ОРЛОВЕЦ',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Zzz-21',
+    external_url: 'http://free-webcambg.com/Zzz-21-indoor-room-business-webcam-live-online-camera-kamerite-na-jivo.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zzz-22',
+    lat: 42.746,
+    lng: 25.5,
+    name: 'KAMEPA ТРОЯН ЦЕНТЪР КАФЕ БАР \'ПРИЯТЕЛИ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Zzz-22c',
+    external_url: 'http://free-webcambg.com/Zzz-22-webcam-live-online-camera-office-cctv-kameri-na-jivo.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zzz-23-indoor-room-business',
+    lat: 42.76,
+    lng: 25.508,
+    name: 'УЕБ КАМЕРА В КВАРТАЛА, КАФЕ БАР \'НАЗДРАВЕ\'',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Zzz-23',
+    external_url: 'http://free-webcambg.com/Zzz-23-indoor-room-business-webcam-live-online-camera-kamerite-na-jivo-bg.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zzz-25-indoor-room-business',
+    lat: 42.742,
+    lng: 25.461,
+    name: 'KAMEPA ФРИЗЬОРСКИ САЛОН СТУДИО',
+    city: 'Bulgaria',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Zzz-25',
+    external_url: 'http://free-webcambg.com/Zzz-25-indoor-room-business-webcam-live-online-camera-kamerite-na-jivo.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zzz-32-salon',
+    lat: 42.684,
+    lng: 23.299,
+    name: 'KAMEPA СОФИЯ МАГАЗИН НАПИТКИ И ЦИГАРИ',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://free-webcambg.com/pics/Zzz-32',
+    external_url: 'http://free-webcambg.com/Zzz-32-salon-webcam-live-online-camera-kamerite-na-jivo-vremeto-weather.html',
+    source: 'Free-WebCamBG',
+  },
+  {
+    id: 'bg-fwcbg-zfzeyd3g',
+    lat: 42.66,
+    lng: 23.31,
+    name: 'УЕБ КАМЕРА СОФИЯ РАБОТНО АТЕЛИЕ В АРТ ГАЛЕРИЯ',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    stream_url: 'https://rtsp.me/embed/ZfzeYd3G/',
+    stream_type: 'iframe',
+    external_url: 'http://free-webcambg.com/Zzz-33-office-webcam-live-online-camera-kamerite-na-jivo.html',
+    source: 'Free-WebCamBG',
+  },
+];
diff --git a/src/app/api/cctv/bulgaria.ts b/src/app/api/cctv/bulgaria.ts
new file mode 100644
index 0000000..51986d1
--- /dev/null
+++ b/src/app/api/cctv/bulgaria.ts
@@ -0,0 +1,294 @@
+import type { CctvCamera } from './types';
+import { BULGARIA_FWCBG_CAMERAS } from './bulgaria-fwcbg.generated';
+
+/**
+ * Curated cameras from non-free-webcambg sources (UAB/GKPP, Smart Burgas HLS, YouTube, meteo).
+ * Combined with auto-generated free-webcambg catalog (~350 cameras, ~170 live rtsp.me).
+ */
+const BULGARIA_MANUAL: CctvCamera[] = [
+  // ── UAB / KAMEPA traffic (not on free-webcambg) ──
+  {
+    id: 'bg-sofia-tsarigradsko-uab',
+    lat: 42.662,
+    lng: 23.376,
+    name: 'Tsarigradsko Shose (UAB)',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'https://cdn.uab.org/images/cctv/images/cctv/cctv_103/cctv.jpg',
+    source: 'UAB / KAMEPA',
+  },
+  {
+    id: 'bg-sofia-banishora',
+    lat: 42.704,
+    lng: 23.327,
+    name: 'Banishora / Opalchenska',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'https://meteo.chavo.biz/Camera_streem/live_snap.jpg',
+    source: 'meteo.chavo.biz',
+  },
+  {
+    id: 'bg-sofia-iztok',
+    lat: 42.679,
+    lng: 23.364,
+    name: 'Iztok / Arena',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'http://85.118.88.81:8000/jpg/image.jpg?resolution=1280x960',
+    source: 'Private cam',
+  },
+  {
+    id: 'bg-sofia-lagera',
+    lat: 42.603,
+    lng: 23.297,
+    name: 'Lagera / Vitosha',
+    city: 'Sofia',
+    country: 'Bulgaria',
+    feed_url: 'https://www.meteobrite.com/rest/image?stationId=4',
+    source: 'MeteoBrite',
+  },
+
+  // ── GKPP / border (UAB + weather-webcam + YouTube) ──
+  {
+    id: 'bg-gkpp-kulata-1',
+    lat: 41.395,
+    lng: 23.361,
+    name: 'GKPP Kulata – Promachon (BG)',
+    city: 'Kulata',
+    country: 'Bulgaria',
+    feed_url: 'https://cdn.uab.org/images/cctv/images/cctv/cctv_01/cctv.jpg',
+    external_url: 'https://weather-webcam.eu/kameri-ot-gkpp-kulata-promahon-sledete-trafika-na-grackata-granica/',
+    source: 'UAB / GKPP',
+  },
+  {
+    id: 'bg-gkpp-kulata-2',
+    lat: 41.394,
+    lng: 23.363,
+    name: 'GKPP Kulata – Promachon (approach)',
+    city: 'Kulata',
+    country: 'Bulgaria',
+    feed_url: 'https://cdn.uab.org/images/cctv/images/cctv/cctv_02/cctv.jpg',
+    external_url: 'https://weather-webcam.eu/kameri-ot-gkpp-kulata-promahon-sledete-trafika-na-grackata-granica/',
+    source: 'UAB / GKPP',
+  },
+  {
+    id: 'bg-gkpp-kulata-3',
+    lat: 41.396,
+    lng: 23.359,
+    name: 'GKPP Kulata – queue',
+    city: 'Kulata',
+    country: 'Bulgaria',
+    feed_url: 'https://cdn.uab.org/images/cctv/images/cctv/cctv_114/cctv.jpg',
+    external_url: 'https://weather-webcam.eu/kameri-ot-gkpp-kulata-promahon-sledete-trafika-na-grackata-granica/',
+    source: 'UAB / GKPP',
+  },
+  {
+    id: 'bg-gkpp-zlatograd',
+    lat: 41.379,
+    lng: 25.056,
+    name: 'GKPP Zlatograd – Thermes (BG–GR)',
+    city: 'Zlatograd',
+    country: 'Bulgaria',
+    feed_url: 'https://www.weather-webcam.eu/cams/gkpp-zlatograd.jpg',
+    external_url: 'https://weather-webcam.eu/ueb-kamera-ot-gkpp-zlatograd-termes-zlatograd-ksanti/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-gkpp-ruse-1',
+    lat: 43.845,
+    lng: 25.974,
+    name: 'GKPP Ruse – Giurgiu (Danube Bridge)',
+    city: 'Ruse',
+    country: 'Bulgaria',
+    feed_url: 'https://weather-webcam.eu/cams/gkpp-ruse-gurgevo-webcam-kamera-na-jivo.jpg',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-gkpp-ruse-2',
+    lat: 43.844,
+    lng: 25.976,
+    name: 'GKPP Ruse – Giurgiu (lane 2)',
+    city: 'Ruse',
+    country: 'Bulgaria',
+    feed_url: 'https://weather-webcam.eu/cams/gkpp-ruse-gurgevo-webcam-kamera-na-jivo2.jpg',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-gkpp-ruse-3',
+    lat: 43.846,
+    lng: 25.978,
+    name: 'GKPP Ruse – Giurgiu (lane 3)',
+    city: 'Ruse',
+    country: 'Bulgaria',
+    feed_url: 'https://weather-webcam.eu/cams/gkpp-ruse-gurgevo-webcam-kamera-na-jivo3.jpg',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-gkpp-ruse-4',
+    lat: 43.743,
+    lng: 26.097,
+    name: 'GKPP Tutrakan – Oltenița',
+    city: 'Tutrakan',
+    country: 'Bulgaria',
+    feed_url: 'https://weather-webcam.eu/cams/ruse-webcam-gkpp-kam-tutrakan.jpg',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-gkpp-vrashka-1',
+    lat: 43.858,
+    lng: 22.448,
+    name: 'GKPP Vrashka Chuka',
+    city: 'Vrashka Chuka',
+    country: 'Bulgaria',
+    feed_url: 'https://home-solutions.bg/cams/chuka2.jpg',
+    source: 'home-solutions.bg',
+  },
+  {
+    id: 'bg-gkpp-vrashka-2',
+    lat: 43.857,
+    lng: 22.45,
+    name: 'GKPP Vrashka Chuka (alt)',
+    city: 'Vrashka Chuka',
+    country: 'Bulgaria',
+    feed_url: 'https://home-solutions.bg/cams/chuka1.jpg',
+    source: 'home-solutions.bg',
+  },
+  {
+    id: 'bg-gkpp-makaza-1',
+    lat: 41.297,
+    lng: 24.133,
+    name: 'GKPP Makaza – Nymfea (cam 1)',
+    city: 'Makaza',
+    country: 'Bulgaria',
+    stream_url: 'https://www.youtube.com/embed/pnr0lhrqRAc?autoplay=1&mute=1',
+    stream_type: 'iframe',
+    external_url: 'https://weather-webcam.eu/ueb-kameri-ot-gkpp-makaza-nimfeya/',
+    source: 'YouTube / GKPP',
+  },
+  {
+    id: 'bg-gkpp-makaza-2',
+    lat: 41.296,
+    lng: 24.135,
+    name: 'GKPP Makaza – Nymfea (cam 2)',
+    city: 'Makaza',
+    country: 'Bulgaria',
+    stream_url: 'https://www.youtube.com/embed/YXN19ZEpIkc?autoplay=1&mute=1',
+    stream_type: 'iframe',
+    external_url: 'https://weather-webcam.eu/ueb-kameri-ot-gkpp-makaza-nimfeya/',
+    source: 'YouTube / GKPP',
+  },
+  {
+    id: 'bg-gkpp-kalotina',
+    lat: 42.995,
+    lng: 22.878,
+    name: 'GKPP Kalotina – Gradina',
+    city: 'Kalotina',
+    country: 'Bulgaria',
+    external_url: 'https://weather-webcam.eu/kalotina-online-webcam-kgpp-granichen-punkt-bulgaria-sarbia-kamera/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-gkpp-gueshevo',
+    lat: 42.148,
+    lng: 22.535,
+    name: 'GKPP Gyueshevo – Deve Bair',
+    city: 'Gyueshevo',
+    country: 'Bulgaria',
+    external_url: 'https://weather-webcam.eu/gueshevo-online-webcam-kgpp-granichen-punkt-bulgaria-makedonia-kamera/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-gkpp-kapitan-andreevo',
+    lat: 41.718,
+    lng: 26.328,
+    name: 'GKPP Kapitan Andreevo – Kapıkule',
+    city: 'Svilengrad',
+    country: 'Bulgaria',
+    external_url: 'https://weather-webcam.eu/svilengrad-kapitan-andreevo-kapakule-odrin-live-kamera/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-gkpp-lesovo',
+    lat: 41.968,
+    lng: 26.385,
+    name: 'GKPP Lesovo – Hamzabeyli',
+    city: 'Lesovo',
+    country: 'Bulgaria',
+    external_url: 'https://weather-webcam.eu/lesovo-hamzabeyli-live-kamera-balgaria-turcia-granica-trafik-vremeto/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-gkpp-malko-tarnovo',
+    lat: 41.407,
+    lng: 27.518,
+    name: 'GKPP Malko Tarnovo – Dereköy',
+    city: 'Malko Tarnovo',
+    country: 'Bulgaria',
+    external_url: 'https://weather-webcam.eu/gkpp-malko-tarnovo-derekoi-live-kamera-balgaria-turcia-granica-trafik-vremeto/',
+    source: 'weather-webcam.eu',
+  },
+
+  // ── NIMH / Smart Burgas HLS ──
+  {
+    id: 'bg-varna-treta-buna',
+    lat: 43.214,
+    lng: 27.923,
+    name: 'Sea Garden / Third Buoy (NIMH)',
+    city: 'Varna',
+    country: 'Bulgaria',
+    feed_url: 'https://home-solutions.bg/cams/varna-buna.jpg',
+    external_url: 'https://weather-webcam.eu/varna-kamera-na-jivo-zaliv-treta-buna-black-sea/',
+    source: 'NIMH / home-solutions.bg',
+  },
+  {
+    id: 'bg-burgas-center',
+    lat: 42.497,
+    lng: 27.47,
+    name: 'Burgas Center (Smart Burgas HLS)',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    stream_url: 'https://pics.smartburgas.eu/m3u8/burgas_town_Center.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://www.weather-webcam.eu/cams/burgas-centar.html',
+    source: 'Smart Burgas',
+  },
+  {
+    id: 'bg-burgas-sarafovo',
+    lat: 42.65,
+    lng: 27.7,
+    name: 'Sarafovo – Black Sea Panorama',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    feed_url: 'https://www.weather-webcam.eu/cams/burgas-kvartal-sarafovo-na-jivo-kamera-panorama-cherno-more.jpg',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'bg-burgas-north-beach',
+    lat: 42.51,
+    lng: 27.474,
+    name: 'North Beach / Windsurf',
+    city: 'Burgas',
+    country: 'Bulgaria',
+    feed_url: 'http://5.104.177.125:8080/?action=snapshot',
+    source: 'Private cam',
+  },
+];
+
+function cameraKey(cam: CctvCamera): string {
+  return (cam.stream_url || cam.feed_url || cam.external_url || cam.id).split('?')[0];
+}
+
+export async function fetchBulgariaCameras(): Promise<CctvCamera[]> {
+  const seen = new Set<string>();
+  const merged: CctvCamera[] = [];
+
+  for (const cam of [...BULGARIA_MANUAL, ...BULGARIA_FWCBG_CAMERAS]) {
+    if (!cam.feed_url && !cam.stream_url && !cam.external_url) continue;
+    const key = cameraKey(cam);
+    if (seen.has(key)) continue;
+    seen.add(key);
+    merged.push(cam);
+  }
+
+  return merged;
+}
diff --git a/src/app/api/cctv/greece.ts b/src/app/api/cctv/greece.ts
new file mode 100644
index 0000000..fbeba8b
--- /dev/null
+++ b/src/app/api/cctv/greece.ts
@@ -0,0 +1,225 @@
+import type { CctvCamera } from './types';
+
+/** Public IPCamLive credentials exposed on Attiki Odos live-streaming pages. */
+const IPCAMLIVE_API_SECRET = '65586c9ba88ef';
+
+const ATTiki_ODOS_CAMERAS: Array<{
+  alias: string;
+  name: string;
+  city: string;
+  lat: number;
+  lng: number;
+}> = [
+  { alias: 'cam128', name: 'I/C D. Plakentias – Imittos Ring Road', city: 'Athens', lat: 38.0208, lng: 23.8578 },
+  { alias: 'cam231', name: 'I/C Papagou (Imittos Ring Road)', city: 'Athens', lat: 37.9906, lng: 23.7947 },
+  { alias: 'cam38', name: 'The Mall Athens – Neratziotissa Station', city: 'Athens', lat: 38.0414, lng: 23.7897 },
+  { alias: 'cam053', name: 'I/C Metamorfosi', city: 'Athens', lat: 38.065, lng: 23.7575 },
+  { alias: 'cam6', name: 'Koropi Toll Station', city: 'Koropi', lat: 37.8969, lng: 23.8753 },
+  { alias: 'cam88', name: 'Roupaki Toll Station', city: 'Elefsina', lat: 38.0781, lng: 23.6528 },
+];
+
+/** Northern Greece & regional live cameras (Thessaloniki, Kavala, Halkidiki, Thrace). */
+const GREECE_REGIONAL_CAMERAS: CctvCamera[] = [
+  {
+    id: 'gr-thessaloniki-center-live',
+    lat: 40.6401,
+    lng: 22.9444,
+    name: 'Thessaloniki – Center (live)',
+    city: 'Thessaloniki',
+    country: 'Greece',
+    stream_url: 'https://www.youtube.com/embed/7V0IRFbzRFI?autoplay=1&mute=1',
+    stream_type: 'iframe',
+    external_url: 'https://www.webcameras.gr/loc_wc/webcameras.asp?ID=510&lang=en',
+    source: 'meteothes.gr / webcameras.gr',
+  },
+  {
+    id: 'gr-thessaloniki-port',
+    lat: 40.635,
+    lng: 22.938,
+    name: 'Thessaloniki – Port',
+    city: 'Thessaloniki',
+    country: 'Greece',
+    feed_url: 'https://weather-webcam.eu/wp-content/uploads/2012/11/solun-webcam.jpg',
+    external_url: 'https://weather-webcam.eu/thessaloniki-live-online-webcam-solun-na-jivo/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'gr-kavala-live',
+    lat: 40.939,
+    lng: 24.408,
+    name: 'Kavala – City View (live)',
+    city: 'Kavala',
+    country: 'Greece',
+    stream_url: 'https://city-view-of-kavala.click2stream.com/',
+    stream_type: 'iframe',
+    external_url: 'https://www.webcameras.gr/loc_wc/webcameras.asp?ID=286&lang=en',
+    source: 'click2stream / Angelcam',
+  },
+  {
+    id: 'gr-kavala-iraklitsa',
+    lat: 40.864,
+    lng: 24.32,
+    name: 'Nea Iraklitsa – Beach (live)',
+    city: 'Kavala',
+    country: 'Greece',
+    stream_url: 'https://iraklitsa.click2stream.com/',
+    stream_type: 'iframe',
+    external_url: 'https://www.webcameras.gr/loc_wc/webcameras.asp?ID=620&lang=en',
+    source: 'click2stream / Angelcam',
+  },
+  {
+    id: 'gr-kavala-panorama',
+    lat: 40.936,
+    lng: 24.412,
+    name: 'Kavala – Panorama',
+    city: 'Kavala',
+    country: 'Greece',
+    feed_url: 'https://weather-webcam.eu/wp-content/uploads/2013/03/kavala-webcam.jpg',
+    external_url: 'https://weather-webcam.eu/cam-camera-online-kavala-greece-garcia/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'gr-halkidiki-sithonia-live',
+    lat: 40.098,
+    lng: 23.979,
+    name: 'Halkidiki – Sithonia (YouTube live)',
+    city: 'Sithonia',
+    country: 'Greece',
+    stream_url: 'https://www.youtube.com/embed/live_stream?channel=UCe7RFCllOgqTV5H4Y411XUw&autoplay=1&mute=1',
+    stream_type: 'iframe',
+    external_url: 'https://weather-webcam.eu/ueb-kameri-ot-sitoniya-halkidiki-garcziya-na-zhivo/',
+    source: 'YouTube / Sithonia',
+  },
+  {
+    id: 'gr-sarti-kalamitsi',
+    lat: 40.096,
+    lng: 23.978,
+    name: 'Sarti / Kalamitsi – Paralia Sykia',
+    city: 'Sarti',
+    country: 'Greece',
+    feed_url: 'https://camping-melissi.gr/images/melissicam/snap/webcam.jpg',
+    external_url: 'https://weather-webcam.eu/kalamitsi-sarti-sithonia-garcia-greece-webcam-live-kamera-online-weather-vremeto/',
+    source: 'camping-melissi.gr',
+  },
+  {
+    id: 'gr-vourvourou-halkidiki',
+    lat: 40.248,
+    lng: 23.791,
+    name: 'Vourvourou – Chalkidiki (live)',
+    city: 'Vourvourou',
+    country: 'Greece',
+    stream_url: 'https://www.youtube.com/embed/6E4IXis5myU?autoplay=1&mute=1',
+    stream_type: 'iframe',
+    external_url: 'https://www.webcameras.gr/loc_wc/webcameras.asp?ID=659&lang=en',
+    source: 'webcameras.gr',
+  },
+  {
+    id: 'gr-xanthi-windy',
+    lat: 41.135,
+    lng: 24.888,
+    name: 'Xanthi – City (Windy live)',
+    city: 'Xanthi',
+    country: 'Greece',
+    stream_url: 'https://www.windy.com/webcams/1574440292/embed',
+    stream_type: 'iframe',
+    external_url: 'https://weather-webcam.eu/xanthi-ksanti-garcia-greece-webcam-live-kamera-online-weather-vremeto/',
+    source: 'Windy Webcams',
+  },
+  {
+    id: 'gr-thassos-prinos',
+    lat: 40.687,
+    lng: 24.576,
+    name: 'Thassos – Prinos (live)',
+    city: 'Thassos',
+    country: 'Greece',
+    stream_url: 'https://www.youtube-nocookie.com/embed/r_ql6ILPj0c?autoplay=1&mute=1',
+    stream_type: 'iframe',
+    external_url: 'https://weather-webcam.eu/prinos-grees-garcia-webcam-live-kamera-online-vremeto/',
+    source: 'hotel-angelica.gr',
+  },
+  {
+    id: 'gr-thassos-live',
+    lat: 40.78,
+    lng: 24.68,
+    name: 'Thassos Island (live)',
+    city: 'Thassos',
+    country: 'Greece',
+    stream_url: 'https://www.youtube.com/embed/Zksbxgm6VHA?autoplay=1&mute=1',
+    stream_type: 'iframe',
+    external_url: 'https://www.webcameras.gr/loc_wc/webcameras.asp?ID=290&lang=en',
+    source: 'webcameras.gr',
+  },
+  {
+    id: 'gr-promachon-kulata-gr',
+    lat: 41.392,
+    lng: 23.355,
+    name: 'Promachon – Kulata border (GR side)',
+    city: 'Promachon',
+    country: 'Greece',
+    feed_url: 'https://cdn.uab.org/images/cctv/images/cctv/cctv_01/cctv.jpg',
+    external_url: 'https://weather-webcam.eu/kameri-ot-gkpp-kulata-promahon-sledete-trafika-na-grackata-granica/',
+    source: 'UAB / GKPP',
+  },
+];
+
+async function fetchIpcamLiveHls(alias: string): Promise<string | null> {
+  try {
+    const res = await fetch(
+      `https://ipcamlive.com/api/v2/getstreamhlsurl?apisecret=${IPCAMLIVE_API_SECRET}&alias=${alias}`,
+      { signal: AbortSignal.timeout(10000) },
+    );
+    if (!res.ok) return null;
+    const data = await res.json();
+    if (data.result !== 'ok' || !data.data?.url) return null;
+    return String(data.data.url).replace(/^http:\/\//i, 'https://');
+  } catch {
+    return null;
+  }
+}
+
+async function fetchIpcamLiveSnapshot(alias: string): Promise<string | null> {
+  try {
+    const res = await fetch(
+      `https://ipcamlive.com/api/v2/getsnapshoturl?apisecret=${IPCAMLIVE_API_SECRET}&alias=${alias}`,
+      { signal: AbortSignal.timeout(10000) },
+    );
+    if (!res.ok) return null;
+    const data = await res.json();
+    if (data.result !== 'ok' || !data.data?.url) return null;
+    return String(data.data.url).replace(/^http:\/\//i, 'https://');
+  } catch {
+    return null;
+  }
+}
+
+export async function fetchGreeceCameras(): Promise<CctvCamera[]> {
+  const attikiSettled = await Promise.allSettled(
+    ATTiki_ODOS_CAMERAS.map(async (cam) => {
+      const [hls, snapshot] = await Promise.all([
+        fetchIpcamLiveHls(cam.alias),
+        fetchIpcamLiveSnapshot(cam.alias),
+      ]);
+      const fallback = `https://www.aodos.gr/wp-content/themes/aodos/assets/img/cameras/${cam.alias}-snapshot.jpg`;
+
+      return {
+        id: `gr-aodos-${cam.alias}`,
+        lat: cam.lat,
+        lng: cam.lng,
+        name: cam.name,
+        city: cam.city,
+        country: 'Greece',
+        stream_url: hls || undefined,
+        stream_type: hls ? ('hls' as const) : undefined,
+        feed_url: snapshot || fallback,
+        external_url: 'https://www.aodos.gr/en/live-streaming/',
+        source: 'Attiki Odos',
+      } satisfies CctvCamera;
+    }),
+  );
+
+  const attiki = attikiSettled
+    .filter((result): result is PromiseFulfilledResult<CctvCamera> => result.status === 'fulfilled')
+    .map((result) => result.value);
+
+  return [...attiki, ...GREECE_REGIONAL_CAMERAS];
+}
diff --git a/src/app/api/cctv/macedonia.ts b/src/app/api/cctv/macedonia.ts
new file mode 100644
index 0000000..558b9fd
--- /dev/null
+++ b/src/app/api/cctv/macedonia.ts
@@ -0,0 +1,97 @@
+import type { CctvCamera } from './types';
+
+/** North Macedonia — Neotel HLS border and highway streams. */
+const MACEDONIA_CAMERAS: CctvCamera[] = [
+  {
+    id: 'mk-deve-bair',
+    lat: 42.149, lng: 22.537,
+    name: 'Deve Bair – Gyueshevo Border',
+    city: 'Deve Bair', country: 'North Macedonia',
+    stream_url: 'https://streaming1.neotel.net.mk/stream/deve_bair.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://www.weather-webcam.eu/cams/deve-bair.html',
+    source: 'Neotel / GKPP',
+  },
+  {
+    id: 'mk-tabanovce',
+    lat: 42.232, lng: 21.718,
+    name: 'Tabanovce – Preševo Border',
+    city: 'Tabanovce', country: 'North Macedonia',
+    stream_url: 'https://streaming1.neotel.net.mk/stream/tabanovce.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://weather-webcam.eu/cams/tabanovce.html',
+    source: 'Neotel / GKPP',
+  },
+  {
+    id: 'mk-bogorodica',
+    lat: 41.144, lng: 22.534,
+    name: 'Bogorodica – Gevgelija Border',
+    city: 'Bogorodica', country: 'North Macedonia',
+    stream_url: 'https://streaming1.neotel.net.mk/stream/bogorodica.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://www.weather-webcam.eu/cams/make-bogorodica.html',
+    source: 'Neotel / GKPP',
+  },
+  {
+    id: 'mk-miladinovci-1',
+    lat: 42.212, lng: 21.745,
+    name: 'Miladinovci Border (cam 1)',
+    city: 'Miladinovci', country: 'North Macedonia',
+    stream_url: 'https://streaming1.neotel.net.mk/stream/miladinovci_1.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://www.weather-webcam.eu/cams/miladinovci_1.html',
+    source: 'Neotel / GKPP',
+  },
+  {
+    id: 'mk-miladinovci-2',
+    lat: 42.211, lng: 21.747,
+    name: 'Miladinovci Border (cam 2)',
+    city: 'Miladinovci', country: 'North Macedonia',
+    stream_url: 'https://streaming1.neotel.net.mk/stream/miladinovci_2.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://www.weather-webcam.eu/cams/miladinovci_2.html',
+    source: 'Neotel / GKPP',
+  },
+  {
+    id: 'mk-medzitlija',
+    lat: 40.936, lng: 21.415,
+    name: 'Medžitlija – Bitola Border',
+    city: 'Medžitlija', country: 'North Macedonia',
+    stream_url: 'https://streaming1.neotel.net.mk/stream/medzitlija.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://weather-webcam.eu/cams/medzitlija.html',
+    source: 'Neotel / GKPP',
+  },
+  {
+    id: 'mk-tetovo',
+    lat: 42.01, lng: 20.971,
+    name: 'Tetovo',
+    city: 'Tetovo', country: 'North Macedonia',
+    stream_url: 'https://streaming1.neotel.net.mk/stream/zelino_1.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://weather-webcam.eu/cams/tetovo.html',
+    source: 'Neotel',
+  },
+  {
+    id: 'mk-veles',
+    lat: 41.716, lng: 21.773,
+    name: 'Veles Highway',
+    city: 'Veles', country: 'North Macedonia',
+    stream_url: 'https://streaming1.neotel.net.mk/stream/otovica_2.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://weather-webcam.eu/cams/veles.html',
+    source: 'Neotel',
+  },
+  {
+    id: 'mk-skopje',
+    lat: 41.998, lng: 21.431,
+    name: 'Skopje – Millennium Cross Panorama',
+    city: 'Skopje', country: 'North Macedonia',
+    external_url: 'https://weather-webcam.eu/360-panoramna-ueb-kamera-ot-skopie-ot-mileniumski-krast-1000-m/',
+    source: 'weather-webcam.eu',
+  },
+];
+
+export async function fetchMacedoniaCameras(): Promise<CctvCamera[]> {
+  return MACEDONIA_CAMERAS.filter((cam) => cam.feed_url || cam.stream_url || cam.external_url);
+}
diff --git a/src/app/api/cctv/romania.ts b/src/app/api/cctv/romania.ts
new file mode 100644
index 0000000..8b0d0fc
--- /dev/null
+++ b/src/app/api/cctv/romania.ts
@@ -0,0 +1,94 @@
+import type { CctvCamera } from './types';
+
+/** Romanian webcams — cities, Black Sea coast, Danube border. */
+const ROMANIA_CAMERAS: CctvCamera[] = [
+  {
+    id: 'ro-bucharest',
+    lat: 44.426,
+    lng: 26.102,
+    name: 'Bucharest Panorama',
+    city: 'Bucharest',
+    country: 'Romania',
+    feed_url: 'https://home-solutions.bg/cams/bukor.jpg',
+    external_url: 'https://weather-webcam.eu/cam-camera-online-romania-bucharest-1/',
+    source: 'home-solutions.bg',
+  },
+  {
+    id: 'ro-bailesti',
+    lat: 44.025,
+    lng: 23.235,
+    name: 'Băilești',
+    city: 'Băilești',
+    country: 'Romania',
+    feed_url: 'https://images-webcams.windy.com/37/1373238237/current/full/1373238237.jpg',
+    external_url: 'https://weather-webcam.eu/cam-camera-online-romania-bailesti-live/',
+    source: 'Windy Webcams',
+  },
+  {
+    id: 'ro-brasov',
+    lat: 45.657,
+    lng: 25.601,
+    name: 'Brașov',
+    city: 'Brașov',
+    country: 'Romania',
+    external_url: 'https://weather-webcam.eu/cam-camera-online-romania-brashov/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'ro-eforie-sud',
+    lat: 44.058,
+    lng: 28.632,
+    name: 'Eforie Sud – Black Sea',
+    city: 'Eforie Sud',
+    country: 'Romania',
+    stream_url: 'https://g0.ipcamlive.com/player/player.php?alias=5ad96539684a9&autoplay=1',
+    stream_type: 'iframe',
+    external_url: 'https://weather-webcam.eu/ueb-kamera-ot-eforie-sud/',
+    source: 'IPCamLive',
+  },
+  {
+    id: 'ro-giurgiu-bridge',
+    lat: 43.903,
+    lng: 25.974,
+    name: 'Giurgiu – Ruse Danube Bridge',
+    city: 'Giurgiu',
+    country: 'Romania',
+    feed_url: 'https://weather-webcam.eu/cams/gkpp-ruse-gurgevo-webcam-kamera-na-jivo.jpg',
+    external_url: 'https://weather-webcam.eu/gkpp-ruse-gurgevo-dunav-most-bulgaria-romania-kamera-na-jivo-vremeto-dunav-onlain/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'ro-giurgiu-bridge-2',
+    lat: 43.902,
+    lng: 25.976,
+    name: 'Giurgiu – Danube Bridge (lane 2)',
+    city: 'Giurgiu',
+    country: 'Romania',
+    feed_url: 'https://weather-webcam.eu/cams/gkpp-ruse-gurgevo-webcam-kamera-na-jivo2.jpg',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'ro-oltenita-tutrakan',
+    lat: 44.093,
+    lng: 26.636,
+    name: 'Oltenița – Tutrakan Ferry',
+    city: 'Oltenița',
+    country: 'Romania',
+    feed_url: 'https://weather-webcam.eu/cams/ruse-webcam-gkpp-kam-tutrakan.jpg',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'ro-balea-lake',
+    lat: 45.604,
+    lng: 24.616,
+    name: 'Balea Lake – Carpathians',
+    city: 'Sibiu',
+    country: 'Romania',
+    external_url: 'https://weather-webcam.eu/balea-lake-karpati-romania-live-kamera-vremeto-ski/',
+    source: 'weather-webcam.eu',
+  },
+];
+
+export async function fetchRomaniaCameras(): Promise<CctvCamera[]> {
+  return ROMANIA_CAMERAS.filter((cam) => cam.feed_url || cam.stream_url || cam.external_url);
+}
diff --git a/src/app/api/cctv/route.ts b/src/app/api/cctv/route.ts
index 9d8dd2e..1c64cea 100644
--- a/src/app/api/cctv/route.ts
+++ b/src/app/api/cctv/route.ts
@@ -1,10 +1,17 @@
 import { NextResponse } from 'next/server';
 import { fetchAsfinagCameras } from './asfinag';
+import { fetchBulgariaCameras } from './bulgaria';
+import { fetchGreeceCameras } from './greece';
+import { fetchSerbiaCameras } from './serbia';
+import { fetchMacedoniaCameras } from './macedonia';
+import { fetchTurkeyCameras } from './turkey';
+import { fetchRomaniaCameras } from './romania';
 
 /**
  * OSIRIS — Worldwide CCTV Camera API v2
  * Viewport-aware: pass ?region=xx to load cameras for specific regions
- * Supports: uk, us-east, us-west, us-central, canada, europe, asia
+ * Supports: uk, us-east, us-west, us-central, canada, europe, asia,
+ * bulgaria, greece, serbia, macedonia, turkey, romania
  * Or pass ?lat=x&lng=y&radius=5 for proximity-based loading
  */
 
@@ -275,6 +282,12 @@ const REGION_FETCHERS: Record<string, () => Promise<any[]>> = {
   'canada': fetchCanadaCameras,
   'europe': fetchEuropeCameras,
   'asia': fetchAsiaCameras,
+  'bulgaria': fetchBulgariaCameras,
+  'greece': fetchGreeceCameras,
+  'serbia': fetchSerbiaCameras,
+  'macedonia': fetchMacedoniaCameras,
+  'turkey': fetchTurkeyCameras,
+  'romania': fetchRomaniaCameras,
 };
 
 // Determine which regions to fetch based on viewport bounds
@@ -290,8 +303,24 @@ function getRegionsForBounds(lat: number, lng: number, radius: number): string[]
   if (lat > 24 && lat < 49 && lng > -105 && lng < -80) regions.push('us-central');
   // Canada
   if (lat > 42 && lat < 70 && lng > -141 && lng < -52) regions.push('canada');
-  // Europe
-  if (lat > 35 && lat < 72 && lng > -11 && lng < 40) regions.push('europe');
+  // Europe (NL, AT — skip when viewport is in BG/GR)
+  const inBulgaria = lat > 41 && lat < 44.5 && lng > 22 && lng < 29.5;
+  const inGreece = lat > 34.5 && lat < 41.8 && lng > 19 && lng < 30;
+  const inSerbia = lat > 42 && lat < 46.5 && lng > 18.8 && lng < 23.3;
+  const inMacedonia = lat > 40.8 && lat < 42.8 && lng > 20.4 && lng < 23.2;
+  const inRomania = lat > 43.5 && lat < 48.5 && lng > 20 && lng < 29.8;
+  const inTurkey = lat > 35.5 && lat < 42.5 && lng > 25.5 && lng < 45;
+  const inBalkans = inBulgaria || inGreece || inSerbia || inMacedonia || inRomania || inTurkey;
+
+  if (lat > 35 && lat < 72 && lng > -11 && lng < 40 && !inBalkans) {
+    regions.push('europe');
+  }
+  if (inBulgaria) regions.push('bulgaria');
+  if (inGreece) regions.push('greece');
+  if (inSerbia) regions.push('serbia');
+  if (inMacedonia) regions.push('macedonia');
+  if (inRomania) regions.push('romania');
+  if (inTurkey) regions.push('turkey');
 
   // Asia (includes Middle East, SE Asia, overriding parts of china but that's ok they can both load)
   if ((lat > -10 && lat < 60 && lng > 60 && lng < 150)) regions.push('asia');
diff --git a/src/app/api/cctv/serbia.ts b/src/app/api/cctv/serbia.ts
new file mode 100644
index 0000000..3d864cd
--- /dev/null
+++ b/src/app/api/cctv/serbia.ts
@@ -0,0 +1,79 @@
+import type { CctvCamera } from './types';
+
+const SERBIA_CAMERAS: CctvCamera[] = [
+  {
+    id: 'rs-belgrade-live',
+    lat: 44.817, lng: 20.456,
+    name: 'Belgrade Live Cam',
+    city: 'Belgrade', country: 'Serbia',
+    feed_url: 'https://stream.uzivobeograd.rs/live/cam_7.jpg',
+    external_url: 'https://weather-webcam.eu/belgrad-webcam-online-na-jivo-kamera-ujivo-bg/',
+    source: 'Uzivo Beograd',
+  },
+  {
+    id: 'rs-kalotina-gradina-1',
+    lat: 42.997, lng: 22.882,
+    name: 'Kalotina – Gradina Border (lane 1)',
+    city: 'Gradina', country: 'Serbia',
+    stream_url: 'https://kamere.amss.org.rs/gradina1/gradina1.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://www.weather-webcam.eu/cams/gradina1.html',
+    source: 'AMSS / GKPP',
+  },
+  {
+    id: 'rs-kalotina-gradina-2',
+    lat: 42.996, lng: 22.884,
+    name: 'Kalotina – Gradina Border (lane 2)',
+    city: 'Gradina', country: 'Serbia',
+    stream_url: 'https://kamere.amss.org.rs/gradina2/gradina2.m3u8',
+    stream_type: 'hls',
+    external_url: 'https://www.weather-webcam.eu/cams/gradina2.html',
+    source: 'AMSS / GKPP',
+  },
+  {
+    id: 'rs-zlatibor',
+    lat: 43.729, lng: 19.713,
+    name: 'Zlatibor Mountain',
+    city: 'Zlatibor', country: 'Serbia',
+    feed_url: 'https://radionicakrug.com/kamera/zlatiborrs.jpg',
+    external_url: 'https://weather-webcam.eu/online-live-webcam-weather-zlatibor-sarbia/',
+    source: 'Radionica Krug',
+  },
+  {
+    id: 'rs-senta',
+    lat: 45.927, lng: 20.078,
+    name: 'Senta',
+    city: 'Senta', country: 'Serbia',
+    feed_url: 'https://home-solutions.bg/cams/senta.jpg',
+    external_url: 'https://weather-webcam.eu/senta-serbia-webcam-online-na-jivo-kamera-ujivo/',
+    source: 'home-solutions.bg',
+  },
+  {
+    id: 'rs-subotica',
+    lat: 46.1, lng: 19.665,
+    name: 'Subotica',
+    city: 'Subotica', country: 'Serbia',
+    external_url: 'https://weather-webcam.eu/webcam-sarbia-subotica/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'rs-zrenjanin',
+    lat: 45.383, lng: 20.381,
+    name: 'Zrenjanin',
+    city: 'Zrenjanin', country: 'Serbia',
+    external_url: 'https://weather-webcam.eu/online-webcam-zrenianin-sarbia-na-zivo/',
+    source: 'weather-webcam.eu',
+  },
+  {
+    id: 'rs-kopaonik',
+    lat: 43.285, lng: 20.816,
+    name: 'Kopaonik Ski Resort',
+    city: 'Kopaonik', country: 'Serbia',
+    external_url: 'https://weather-webcam.eu/kopaonik-webcam-online-na-jivo-kamera-ujivo/',
+    source: 'weather-webcam.eu',
+  },
+];
+
+export async function fetchSerbiaCameras(): Promise<CctvCamera[]> {
+  return SERBIA_CAMERAS.filter((cam) => cam.feed_url || cam.stream_url || cam.external_url);
+}
diff --git a/src/app/api/cctv/stream-status/route.ts b/src/app/api/cctv/stream-status/route.ts
new file mode 100644
index 0000000..1af305d
--- /dev/null
+++ b/src/app/api/cctv/stream-status/route.ts
@@ -0,0 +1,42 @@
+import { NextResponse } from 'next/server';
+
+/** rtsp.me shows this when the camera owner's quota is exhausted */
+const RTSP_BLOCKED = /temporarily limited|Top up/i;
+
+export async function GET(req: Request) {
+  const url = new URL(req.url).searchParams.get('url');
+
+  if (!url || !/rtsp\.me\/embed/i.test(url)) {
+    return NextResponse.json({ available: false, blocked: false, reason: 'not_rtsp_me' });
+  }
+
+  try {
+    const res = await fetch(url, {
+      signal: AbortSignal.timeout(8000),
+      headers: {
+        'User-Agent': 'Mozilla/5.0 (compatible; OSIRIS/1.0; +https://github.com/Ito-69/osiris)',
+        Accept: 'text/html,application/xhtml+xml',
+      },
+      next: { revalidate: 300 },
+    });
+
+    if (!res.ok) {
+      return NextResponse.json({ available: false, blocked: true, provider: 'rtsp.me' });
+    }
+
+    const html = await res.text();
+    const blocked = RTSP_BLOCKED.test(html);
+
+    return NextResponse.json({
+      available: !blocked,
+      blocked,
+      provider: 'rtsp.me',
+    }, {
+      headers: {
+        'Cache-Control': 'public, s-maxage=300, stale-while-revalidate=600',
+      },
+    });
+  } catch {
+    return NextResponse.json({ available: null, blocked: null, provider: 'rtsp.me' }, { status: 502 });
+  }
+}
diff --git a/src/app/api/cctv/turkey.ts b/src/app/api/cctv/turkey.ts
new file mode 100644
index 0000000..916cc0d
--- /dev/null
+++ b/src/app/api/cctv/turkey.ts
@@ -0,0 +1,175 @@
+import type { CctvCamera } from './types';
+
+/** Windy embed + JPG snapshot helper */
+function windy(id: string) {
+  return {
+    stream_url: `https://www.windy.com/webcams/${id}/embed`,
+    stream_type: 'iframe' as const,
+    feed_url: `https://images-webcams.windy.com/37/${id}/current/full/${id}.jpg`,
+    external_url: `https://www.windy.com/webcams/${id}`,
+    source: 'Windy',
+  };
+}
+
+const TURKEY_CAMERAS: CctvCamera[] = [
+  // ── Makaza / Nymfea (GR–TR border, Rhodopes) ──
+  {
+    id: 'tr-makaza-nymfea-1',
+    lat: 41.295, lng: 24.137,
+    name: 'Makaza – Nymfea Border (cam 1)',
+    city: 'Komotini', country: 'Turkey',
+    stream_url: 'https://www.youtube.com/embed/pnr0lhrqRAc?autoplay=1&mute=1',
+    stream_type: 'iframe',
+    external_url: 'https://weather-webcam.eu/ueb-kameri-ot-gkpp-makaza-nimfeya/',
+    source: 'YouTube / GKPP',
+  },
+  {
+    id: 'tr-makaza-nymfea-2',
+    lat: 41.294, lng: 24.139,
+    name: 'Makaza – Nymfea Border (cam 2)',
+    city: 'Komotini', country: 'Turkey',
+    stream_url: 'https://www.youtube.com/embed/YXN19ZEpIkc?autoplay=1&mute=1',
+    stream_type: 'iframe',
+    external_url: 'https://weather-webcam.eu/ueb-kameri-ot-gkpp-makaza-nimfeya/',
+    source: 'YouTube / GKPP',
+  },
+
+  // ── European Thrace — BG border (Edirne / Kırklareli) ──
+  {
+    id: 'tr-kapikule-windy',
+    lat: 41.717, lng: 26.33,
+    name: 'Kapıkule – Customs (TR, BG direction)',
+    city: 'Edirne', country: 'Turkey',
+    ...windy('1375653055'),
+  },
+  {
+    id: 'tr-kapikule-entry',
+    lat: 41.716, lng: 26.334,
+    name: 'Kapıkule – Entry Queue (TR)',
+    city: 'Edirne', country: 'Turkey',
+    feed_url: 'https://lh3.googleusercontent.com/d/1uA72HJHWIsRAltoF4_BrADsgoer9IpWI',
+    external_url: 'http://alltrafficcams.com/tr/canli/sinir-kapisi-gumruk/bulgaristan/turkiye/kapikule-kapitan-andreevo/',
+    source: 'alltrafficcams.com',
+  },
+  {
+    id: 'tr-kapikule-exit',
+    lat: 41.714, lng: 26.328,
+    name: 'Kapıkule – Exit Lane (TR)',
+    city: 'Edirne', country: 'Turkey',
+    feed_url: 'https://lh3.googleusercontent.com/d/1Io3IMcDC8miLLp6J60_k61P-cOW7cTel',
+    external_url: 'http://alltrafficcams.com/tr/canli/sinir-kapisi-gumruk/bulgaristan/turkiye/kapikule-kapitan-andreevo/',
+    source: 'alltrafficcams.com',
+  },
+  {
+    id: 'tr-hamzabeyli-windy',
+    lat: 41.97, lng: 26.388,
+    name: 'Hamzabeyli – Border (TR, live)',
+    city: 'Edirne', country: 'Turkey',
+    ...windy('1639080445'),
+    external_url: 'https://weather-webcam.eu/lesovo-hamzabeyli-live-kamera-balgaria-turcia-granica-trafik-vremeto/',
+  },
+  {
+    id: 'tr-hamzabeyli-queue',
+    lat: 41.968, lng: 26.385,
+    name: 'Hamzabeyli – Queue (TR)',
+    city: 'Edirne', country: 'Turkey',
+    feed_url: 'https://lh3.googleusercontent.com/d/1n7byLU0LzGvcl3ngtatoaqYPoyPYMNHH',
+    external_url: 'http://alltrafficcams.com/tr/canli/sinir-kapisi-gumruk/bulgaristan/turkiye/hamzabeyli-lesovo/',
+    source: 'alltrafficcams.com',
+  },
+  {
+    id: 'tr-derekoy-live',
+    lat: 41.405, lng: 27.521,
+    name: 'Dereköy – Border Queue (TR)',
+    city: 'Kırklareli', country: 'Turkey',
+    feed_url: 'https://lh3.googleusercontent.com/d/1bZI8eKQEOaJINUH0_kp4UrPpnD9eD4p0',
+    external_url: 'http://alltrafficcams.com/tr/canli/sinir-kapisi-gumruk/bulgaristan/turkiye/derekoy-malko-tarnovo/',
+    source: 'alltrafficcams.com',
+  },
+
+  // ── European Thrace — GR border (Edirne) ──
+  {
+    id: 'tr-ipsala-exit',
+    lat: 40.928, lng: 26.245,
+    name: 'İpsala – Passenger Exit (TR)',
+    city: 'Edirne', country: 'Turkey',
+    feed_url: 'https://lh3.googleusercontent.com/d/14WxIhH9GDnPRuELYIfpm7kYaP0U27o_2',
+    external_url: 'http://alltrafficcams.com/tr/canli/sinir-kapisi-gumruk/yunanistan/turkiye/ipsala-kipi/',
+    source: 'alltrafficcams.com',
+  },
+  {
+    id: 'tr-ipsala-truck',
+    lat: 40.925, lng: 26.248,
+    name: 'İpsala – Truck Park (TR)',
+    city: 'Edirne', country: 'Turkey',
+    feed_url: 'https://lh3.googleusercontent.com/d/1jOIFsvlslheZg7SZkD7javLjdixvWxiR',
+    external_url: 'http://alltrafficcams.com/tr/canli/sinir-kapisi-gumruk/yunanistan/turkiye/ipsala-kipi/',
+    source: 'alltrafficcams.com',
+  },
+  {
+    id: 'tr-pazarkule',
+    lat: 41.645, lng: 26.478,
+    name: 'Pazarkule – Kastanies Border (TR)',
+    city: 'Edirne', country: 'Turkey',
+    feed_url: 'https://lh3.googleusercontent.com/d/1u4mnEWlZ4YcgP7W1ZjSLNBIbynArOoRt',
+    external_url: 'http://alltrafficcams.com/tr/canli/sinir-kapisi-gumruk/yunanistan/turkiye/pazarkule-kestanelik/',
+    source: 'alltrafficcams.com',
+  },
+
+  // ── Tekirdağ (European coast) ──
+  {
+    id: 'tr-tekirdag-cumhuriyet',
+    lat: 40.983, lng: 27.515,
+    name: 'Tekirdağ – Cumhuriyet Mahallesi',
+    city: 'Tekirdağ', country: 'Turkey',
+    ...windy('1641362068'),
+  },
+  {
+    id: 'tr-tekirdag-center',
+    lat: 40.978, lng: 27.508,
+    name: 'Tekirdağ – City Center',
+    city: 'Tekirdağ', country: 'Turkey',
+    ...windy('1610814488'),
+  },
+
+  // ── Istanbul — European side & Bosphorus ──
+  {
+    id: 'tr-istanbul-galata',
+    lat: 41.019, lng: 28.974,
+    name: 'Istanbul – Galata Bridge',
+    city: 'Istanbul', country: 'Turkey',
+    ...windy('1573888456'),
+  },
+  {
+    id: 'tr-istanbul-sultanahmet',
+    lat: 41.009, lng: 28.977,
+    name: 'Istanbul – Sultanahmet / Grand Bazaar',
+    city: 'Istanbul', country: 'Turkey',
+    ...windy('1573537594'),
+  },
+  {
+    id: 'tr-istanbul-bosphorus',
+    lat: 41.042, lng: 29.009,
+    name: 'Istanbul – Bosphorus (Radisson view)',
+    city: 'Istanbul', country: 'Turkey',
+    ...windy('1511515262'),
+  },
+  {
+    id: 'tr-istanbul-yavuz-bridge',
+    lat: 41.202, lng: 29.109,
+    name: 'Istanbul – Yavuz Sultan Selim Bridge',
+    city: 'Istanbul', country: 'Turkey',
+    ...windy('1575005127'),
+  },
+  {
+    id: 'tr-istanbul-beylikduzu',
+    lat: 41.002, lng: 28.640,
+    name: 'Istanbul – Beylikdüzü (European side)',
+    city: 'Istanbul', country: 'Turkey',
+    ...windy('1574693857'),
+  },
+];
+
+export async function fetchTurkeyCameras(): Promise<CctvCamera[]> {
+  return TURKEY_CAMERAS.filter((cam) => cam.feed_url || cam.stream_url || cam.external_url);
+}
diff --git a/src/app/api/cctv/types.ts b/src/app/api/cctv/types.ts
new file mode 100644
index 0000000..c08ca5d
--- /dev/null
+++ b/src/app/api/cctv/types.ts
@@ -0,0 +1,32 @@
+export type CctvStreamType = 'jpg' | 'hls' | 'iframe';
+
+export interface CctvCamera {
+  id: string;
+  lat: number;
+  lng: number;
+  name: string;
+  city: string;
+  country: string;
+  /** Static image URL (MJPEG/JPG snapshot) */
+  feed_url?: string;
+  /** Live video stream (HLS .m3u8) or embed URL (YouTube/rtsp.me) */
+  stream_url?: string;
+  stream_type?: CctvStreamType;
+  external_url?: string;
+  source: string;
+}
+
+export function normalizeFeedUrl(url: string): string {
+  if (url.startsWith('pics/')) {
+    return `http://free-webcambg.com/${url.split('?')[0]}`;
+  }
+  return url.split('?')[0];
+}
+
+export function inferStreamType(url: string): CctvStreamType {
+  if (/\.m3u8(\?|$)/i.test(url)) return 'hls';
+  if (/youtube\.com\/embed|youtube-nocookie\.com\/embed|rtsp\.me\/embed|ipcamlive\.com\/player|click2stream\.com|windy\.com\/webcams\/\d+\/embed/i.test(url)) {
+    return 'iframe';
+  }
+  return 'jpg';
+}
diff --git a/src/app/api/earthquakes/route.ts b/src/app/api/earthquakes/route.ts
index 6b90e3c..4b52dbb 100644
--- a/src/app/api/earthquakes/route.ts
+++ b/src/app/api/earthquakes/route.ts
@@ -1,48 +1,51 @@
 import { NextResponse } from 'next/server';
+import { fetchNigggEarthquakes, mergeEarthquakes } from '@/lib/bulgaria-sources';
 
 /**
  * OSIRIS — Earthquake Data API
- * Fetches real-time seismic events from USGS (last 24h, M2.5+)
- * No API key required
+ * USGS global (M2.5+, 24h) + NIGGG-BAS Balkans network (30 days, lower magnitude)
  */
 
 export async function GET() {
   try {
-    const url = 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson';
-    const res = await fetch(url, {
-      signal: AbortSignal.timeout(10000),
-      next: { revalidate: 60 },
-    });
+    const [usgsRes, nigggEvents] = await Promise.all([
+      fetch('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson', {
+        signal: AbortSignal.timeout(10000),
+        next: { revalidate: 60 },
+      }),
+      fetchNigggEarthquakes().catch(() => []),
+    ]);
 
-    if (!res.ok) {
-      return NextResponse.json({ earthquakes: [], error: 'USGS unavailable' });
+    let usgsEarthquakes: any[] = [];
+    if (usgsRes.ok) {
+      const data = await usgsRes.json();
+      usgsEarthquakes = (data.features || []).map((f: any) => {
+        const coords = f.geometry?.coordinates || [0, 0, 0];
+        const props = f.properties || {};
+        return {
+          id: f.id,
+          lat: coords[1],
+          lng: coords[0],
+          depth: coords[2],
+          magnitude: props.mag,
+          place: props.place,
+          time: props.time,
+          url: props.url,
+          tsunami: props.tsunami,
+          type: props.type,
+          felt: props.felt,
+          alert: props.alert,
+          source: 'USGS',
+        };
+      });
     }
 
-    const data = await res.json();
-    const features = data.features || [];
-
-    const earthquakes = features.map((f: any) => {
-      const coords = f.geometry?.coordinates || [0, 0, 0];
-      const props = f.properties || {};
-      return {
-        id: f.id,
-        lat: coords[1],
-        lng: coords[0],
-        depth: coords[2],
-        magnitude: props.mag,
-        place: props.place,
-        time: props.time,
-        url: props.url,
-        tsunami: props.tsunami,
-        type: props.type,
-        felt: props.felt,
-        alert: props.alert,
-      };
-    });
+    const earthquakes = mergeEarthquakes(usgsEarthquakes, nigggEvents);
 
     return NextResponse.json({
       earthquakes,
       total: earthquakes.length,
+      sources: ['USGS', 'NIGGG-BAS'],
       timestamp: new Date().toISOString(),
     }, {
       headers: {
diff --git a/src/app/api/news/route.ts b/src/app/api/news/route.ts
index 67b2ed3..415fb19 100644
--- a/src/app/api/news/route.ts
+++ b/src/app/api/news/route.ts
@@ -8,12 +8,25 @@ import { NextResponse } from 'next/server';
 
 const FEEDS: Record<string, string> = {
   BBC: 'https://feeds.bbci.co.uk/news/world/rss.xml',
+  BBCEurope: 'https://feeds.bbci.co.uk/news/world/europe/rss.xml',
+  Dnevnik: 'https://www.dnevnik.bg/rss/',
+  Actualno: 'https://www.actualno.com/rss/actualno.xml',
+  Mediapool: 'https://www.mediapool.bg/rss/',
   AlJazeera: 'https://www.aljazeera.com/xml/rss/all.xml',
   NPR: 'https://feeds.npr.org/1004/rss.xml',
   GDACS: 'https://www.gdacs.org/xml/rss.xml',
   NHK: 'https://www3.nhk.or.jp/nhkworld/rss/world.xml',
 };
 
+const BG_NEWS_SOURCES = new Set(['Dnevnik', 'Actualno', 'Mediapool']);
+const SOFIA_COORDS: [number, number] = [42.698, 25.485];
+
+// Node's default User-Agent ("node") is blocked by TollBit on dnevnik.bg (402).
+const RSS_FETCH_HEADERS: HeadersInit = {
+  'User-Agent': 'Mozilla/5.0 (compatible; OSIRIS/1.0; +https://github.com/Ito-69/osiris)',
+  Accept: 'application/rss+xml, application/xml, text/xml, */*',
+};
+
 const RISK_KEYWORDS = ['war','missile','strike','attack','crisis','tension','military','conflict','defense','clash','nuclear','invasion','bomb','drone','weapon','sanctions','ceasefire','escalation'];
 
 const KEYWORD_COORDS: Record<string, [number, number]> = {
@@ -32,6 +45,18 @@ const KEYWORD_COORDS: Record<string, [number, number]> = {
   'south china sea': [15.000, 115.000], 'red sea': [20.000, 38.500],
   'persian gulf': [26.500, 51.500], 'strait of hormuz': [26.600, 56.300],
   'black sea': [43.500, 34.000], 'arctic': [75.000, 0.000],
+  // Balkans / Bulgaria
+  'bulgaria': [42.698, 25.485], 'българия': [42.698, 25.485],
+  'sofia': [42.698, 25.485], 'софия': [42.698, 25.485],
+  'plovdiv': [42.136, 24.745], 'пловдив': [42.136, 24.745],
+  'varna': [43.214, 27.915], 'варна': [43.214, 27.915],
+  'burgas': [42.504, 27.462], 'бургас': [42.504, 27.462],
+  'ruse': [43.835, 25.965], 'русе': [43.835, 25.965],
+  'balkans': [42.000, 22.000], 'балкан': [42.000, 22.000],
+  'greece': [39.074, 21.824], 'гърция': [39.074, 21.824],
+  'serbia': [44.016, 21.005], 'сърбия': [44.016, 21.005],
+  'romania': [45.943, 24.967], 'румъния': [45.943, 24.967],
+  'turkey': [39.000, 35.000], 'турция': [39.000, 35.000],
 };
 
 function scoreRisk(title: string, summary: string): number {
@@ -83,7 +108,10 @@ export async function GET() {
     // Fetch all feeds in parallel
     const feedPromises = Object.entries(FEEDS).map(async ([source, url]) => {
       try {
-        const res = await fetch(url, { signal: AbortSignal.timeout(8000) });
+        const res = await fetch(url, {
+          signal: AbortSignal.timeout(8000),
+          headers: RSS_FETCH_HEADERS,
+        });
         if (!res.ok) return [];
         const xml = await res.text();
         const items = parseRSSItems(xml);
@@ -105,7 +133,9 @@ export async function GET() {
     // Score, classify, and sort
     const newsItems = allArticles.map(article => {
       const riskScore = scoreRisk(article.title, article.description || '');
-      const coords = findCoords(article.title + ' ' + (article.description || ''));
+      const keywordCoords = findCoords(article.title + ' ' + (article.description || ''));
+      const coords = keywordCoords
+        ?? (BG_NEWS_SOURCES.has(article.source) ? SOFIA_COORDS : null);
 
       return {
         title: article.title,
@@ -114,6 +144,7 @@ export async function GET() {
         source: article.source,
         risk_score: riskScore,
         coords: coords ? [coords[0], coords[1]] : null,
+        coords_default: !keywordCoords && BG_NEWS_SOURCES.has(article.source),
         machine_assessment: null,
       };
     });
diff --git a/src/app/api/weather/route.ts b/src/app/api/weather/route.ts
index a81b772..0f75b8c 100644
--- a/src/app/api/weather/route.ts
+++ b/src/app/api/weather/route.ts
@@ -1,78 +1,93 @@
 import { NextResponse } from 'next/server';
+import { fetchGdacsBalkansAlerts } from '@/lib/bulgaria-sources';
 
 /**
  * OSIRIS — Severe Weather & Anomalies API
- * Fetches active natural events from NASA EONET (Earth Observatory Natural Event Tracker)
- * Tracks: Severe Storms (Hurricanes/Typhoons), Volcanoes, Sea Ice
+ * NASA EONET (global) + GDACS Balkans civil-protection alerts
  */
 
 export async function GET() {
   try {
-    // Fetch currently open events from EONET v3
-    const res = await fetch('https://eonet.gsfc.nasa.gov/api/v3/events?status=open&limit=100', {
-      signal: AbortSignal.timeout(10000),
-      next: { revalidate: 1800 }, // Cache for 30 minutes (events don't change by the second)
-    });
+    const [eonetRes, gdacsAlerts] = await Promise.all([
+      fetch('https://eonet.gsfc.nasa.gov/api/v3/events?status=open&limit=100', {
+        signal: AbortSignal.timeout(10000),
+        next: { revalidate: 1800 },
+      }),
+      fetchGdacsBalkansAlerts().catch(() => []),
+    ]);
+
+    const events: any[] = [];
 
-    if (!res.ok) throw new Error(`NASA EONET API returned ${res.status}`);
+    if (eonetRes.ok) {
+      const data = await eonetRes.json();
 
-    const data = await res.json();
-    const events = [];
+      for (const event of data.events || []) {
+        const geom = event.geometry && event.geometry.length > 0 ? event.geometry[event.geometry.length - 1] : null;
+        if (!geom || geom.type !== 'Point') continue;
 
-    for (const event of data.events || []) {
-      // Get the most recent geometry point
-      const geom = event.geometry && event.geometry.length > 0 ? event.geometry[event.geometry.length - 1] : null;
-      if (!geom || geom.type !== 'Point') continue; // Skip polygons for now
+        const category = event.categories?.[0]?.id || 'unknown';
+        if (category === 'wildfires' || category === 'earthquakes') continue;
 
-      const category = event.categories?.[0]?.id || 'unknown';
-      
-      // We already track wildfires via FIRMS, so we skip EONET wildfires
-      if (category === 'wildfires') continue;
+        let typeLabel = 'Event';
+        let icon = 'alert';
+        let severity = 'low';
 
-      let typeLabel = 'Event';
-      let icon = 'alert';
-      let severity = 'low';
+        if (category === 'severeStorms') {
+          typeLabel = 'Severe Storm';
+          icon = 'cyclone';
+          severity = 'high';
+        } else if (category === 'volcanoes') {
+          typeLabel = 'Volcano Eruption';
+          icon = 'volcano';
+          severity = 'high';
+        } else if (category === 'seaIce') {
+          typeLabel = 'Iceberg / Sea Ice';
+          icon = 'ice';
+          severity = 'medium';
+        } else {
+          typeLabel = event.categories?.[0]?.title || 'Anomaly';
+        }
 
-      if (category === 'severeStorms') {
-        typeLabel = 'Severe Storm';
-        icon = 'cyclone';
-        severity = 'high';
-      } else if (category === 'volcanoes') {
-        typeLabel = 'Volcano Eruption';
-        icon = 'volcano';
-        severity = 'high';
-      } else if (category === 'seaIce') {
-        typeLabel = 'Iceberg / Sea Ice';
-        icon = 'ice';
-        severity = 'medium';
-      } else if (category === 'earthquakes') {
-        continue; // Handled by USGS
-      } else {
-        typeLabel = event.categories?.[0]?.title || 'Anomaly';
+        events.push({
+          id: event.id,
+          title: event.title,
+          category,
+          type: typeLabel,
+          icon,
+          severity,
+          lat: geom.coordinates[1],
+          lng: geom.coordinates[0],
+          date: geom.date,
+          source: event.sources?.[0]?.url || 'NASA EONET',
+        });
       }
+    }
 
+    for (const alert of gdacsAlerts) {
       events.push({
-        id: event.id,
-        title: event.title,
-        category: category,
-        type: typeLabel,
-        icon: icon,
-        severity: severity,
-        lat: geom.coordinates[1],
-        lng: geom.coordinates[0],
-        date: geom.date,
-        source: event.sources?.[0]?.url || 'NASA EONET',
+        id: alert.id,
+        title: alert.title,
+        category: alert.category,
+        type: alert.type,
+        icon: alert.icon,
+        severity: alert.severity,
+        lat: alert.lat,
+        lng: alert.lng,
+        date: alert.date,
+        source: alert.source,
+        link: alert.link,
+        alertLevel: alert.alertLevel,
       });
     }
 
     return NextResponse.json({
       events,
       total: events.length,
+      sources: ['NASA EONET', 'GDACS'],
       timestamp: new Date().toISOString(),
     });
-
   } catch (error) {
     console.error('Weather API error:', error);
-    return NextResponse.json({ events: [], error: 'Failed to fetch NASA EONET data' }, { status: 500 });
+    return NextResponse.json({ events: [], error: 'Failed to fetch weather/disaster data' }, { status: 500 });
   }
 }
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 7a161e7..f8c49b9 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -92,6 +92,7 @@ export default function Dashboard() {
     balloons: false,
     cctv: true,
     live_news: true,
+    news_intel: true,
     earthquakes: true,
     fires: false,
     weather: false,
diff --git a/src/components/CameraViewer.tsx b/src/components/CameraViewer.tsx
index 1378aad..bae96c7 100644
--- a/src/components/CameraViewer.tsx
+++ b/src/components/CameraViewer.tsx
@@ -10,42 +10,265 @@ interface CameraViewerProps {
   onLocate?: (lat: number, lng: number) => void;
 }
 
+type PlaybackMode = 'hls' | 'iframe' | 'jpg' | 'external';
+
+export interface ResolvedPlayback {
+  mode: PlaybackMode;
+  url: string | null;
+}
+
+function isRtspMeEmbed(url: string): boolean {
+  return /rtsp\.me\/embed/i.test(url);
+}
+
+function resolvePlayback(camera: any): ResolvedPlayback {
+  if (!camera) return { mode: 'external', url: null };
+
+  const streamUrl = camera.stream_url as string | undefined;
+  const streamType = camera.stream_type as string | undefined;
+
+  if (streamUrl) {
+    if (streamType === 'iframe' || /youtube\.com\/embed|youtube-nocookie\.com\/embed|rtsp\.me\/embed|ipcamlive\.com\/player|click2stream\.com|windy\.com\/webcams\/\d+\/embed/i.test(streamUrl)) {
+      return { mode: 'iframe', url: streamUrl.replace(/&amp;/g, '&') };
+    }
+    if (streamType === 'hls' || /\.m3u8(\?|$)/i.test(streamUrl)) {
+      return { mode: 'hls', url: streamUrl };
+    }
+  }
+
+  if (camera.feed_url) {
+    return { mode: 'jpg', url: camera.feed_url };
+  }
+
+  const external = camera.external_url as string | undefined;
+  if (external) {
+    const normalized = external.replace(/&amp;/g, '&');
+    if (/youtube\.com\/embed|youtube-nocookie\.com\/embed|rtsp\.me\/embed|click2stream\.com|windy\.com\/webcams\/\d+\/embed/i.test(normalized)) {
+      return { mode: 'iframe', url: normalized };
+    }
+    if (/ipcamlive\.com\/player/i.test(normalized)) {
+      return { mode: 'iframe', url: normalized };
+    }
+    if (/\.m3u8(\?|$)/i.test(normalized)) {
+      return { mode: 'hls', url: normalized };
+    }
+    return { mode: 'external', url: normalized };
+  }
+
+  return { mode: 'external', url: null };
+}
+
+async function probeRtspMe(streamUrl: string): Promise<boolean | null> {
+  try {
+    const res = await fetch(`/api/cctv/stream-status?url=${encodeURIComponent(streamUrl)}`, {
+      signal: AbortSignal.timeout(10000),
+    });
+    if (!res.ok) return null;
+    const data = await res.json();
+    if (data.blocked === true || data.available === false) return false;
+    if (data.available === true) return true;
+    return null;
+  } catch {
+    return null;
+  }
+}
+
 export default function CameraViewer({ camera, onClose, onLocate }: CameraViewerProps) {
   const [imageUrl, setImageUrl] = useState<string | null>(null);
   const [loading, setLoading] = useState(true);
   const [error, setError] = useState(false);
   const [refreshKey, setRefreshKey] = useState(0);
   const [fullscreen, setFullscreen] = useState(false);
-  const externalFeedUrl = camera?.external_url || camera?.feed_url;
-  const externalOnly = Boolean(camera?.external_url && !camera?.feed_url);
+  const [playback, setPlayback] = useState<ResolvedPlayback>({ mode: 'external', url: null });
+  const [rtspFallback, setRtspFallback] = useState(false);
+  const [probingRtsp, setProbingRtsp] = useState(false);
+  const [forceLive, setForceLive] = useState(false);
+  const videoRef = useRef<HTMLVideoElement>(null);
+  const hlsRef = useRef<{ destroy: () => void } | null>(null);
 
+  useEffect(() => {
+    setForceLive(false);
+  }, [camera?.id]);
+
+  // Pick iframe/HLS/JPG; probe rtsp.me and fall back to JPG snapshot when quota-blocked
   useEffect(() => {
     if (!camera) return;
-    setLoading(true);
+
+    let cancelled = false;
+    const primary = resolvePlayback(camera);
+    const streamUrl = (camera.stream_url as string | undefined)?.replace(/&amp;/g, '&');
+    const feedUrl = camera.feed_url as string | undefined;
+
     setError(false);
-    setImageUrl(null);
 
-    if (!camera.feed_url) {
+    const useJpgFallback = () => {
+      if (!feedUrl) return false;
+      setPlayback({ mode: 'jpg', url: feedUrl });
+      setRtspFallback(true);
+      return true;
+    };
+
+    if (forceLive && primary.mode === 'iframe' && streamUrl && isRtspMeEmbed(streamUrl)) {
+      setProbingRtsp(false);
+      setRtspFallback(false);
+      setPlayback(primary);
       setLoading(false);
-      return;
+      return () => { cancelled = true; };
     }
 
-    // Add cache-busting for live feeds
-    const url = camera.feed_url.includes('?')
-      ? `${camera.feed_url}&_t=${Date.now()}`
-      : `${camera.feed_url}?_t=${Date.now()}`;
-    setImageUrl(url);
-  }, [camera, refreshKey]);
+    setRtspFallback(false);
+
+    if (
+      !forceLive
+      && primary.mode === 'iframe'
+      && streamUrl
+      && isRtspMeEmbed(streamUrl)
+      && feedUrl
+    ) {
+      setProbingRtsp(true);
+      setLoading(true);
+
+      probeRtspMe(streamUrl).then((available) => {
+        if (cancelled) return;
+        setProbingRtsp(false);
+        if (available === true) {
+          setPlayback(primary);
+          setRtspFallback(false);
+          setLoading(false);
+        } else {
+          useJpgFallback();
+        }
+      });
+
+      return () => { cancelled = true; };
+    }
 
-  // Auto-refresh every 30 seconds for live feeds (skip for external-only)
+    setProbingRtsp(false);
+    setPlayback(primary);
+    if (primary.mode === 'iframe' || primary.mode === 'external') {
+      setLoading(false);
+    }
+
+    return () => { cancelled = true; };
+  }, [camera, forceLive]);
+
+  const externalLink = camera?.external_url || camera?.stream_url || camera?.feed_url;
+
+  // ── JPG snapshot refresh (every 5s) ──
   useEffect(() => {
-    if (!camera?.feed_url) return;
-    const iv = setInterval(() => setRefreshKey(k => k + 1), 30000);
+    if (!camera || playback.mode !== 'jpg' || !playback.url) return;
+
+    setLoading(true);
+    setError(false);
+
+    const bust = (url: string) =>
+      url.includes('?') ? `${url}&_t=${Date.now()}` : `${url}?_t=${Date.now()}`;
+
+    setImageUrl(bust(playback.url));
+    const iv = setInterval(() => setRefreshKey((k) => k + 1), 5000);
     return () => clearInterval(iv);
-  }, [camera?.feed_url]);
+  }, [camera, playback.mode, playback.url]);
+
+  useEffect(() => {
+    if (playback.mode !== 'jpg' || !playback.url) return;
+    const bust = playback.url.includes('?')
+      ? `${playback.url}&_t=${Date.now()}`
+      : `${playback.url}?_t=${Date.now()}`;
+    setImageUrl(bust);
+  }, [refreshKey, playback.mode, playback.url]);
+
+  // ── HLS live stream ──
+  useEffect(() => {
+    if (!camera || playback.mode !== 'hls' || !playback.url) return;
+
+    let cancelled = false;
+    setLoading(true);
+    setError(false);
+
+    const setup = async () => {
+      const video = videoRef.current;
+      if (!video) return;
+
+      hlsRef.current?.destroy();
+      hlsRef.current = null;
+
+      try {
+        const { default: Hls } = await import('hls.js');
+
+        if (cancelled) return;
+
+        if (Hls.isSupported()) {
+          const hls = new Hls({ enableWorker: true, lowLatencyMode: true });
+          hlsRef.current = hls;
+          hls.loadSource(playback.url!);
+          hls.attachMedia(video);
+          hls.on(Hls.Events.MANIFEST_PARSED, () => {
+            if (!cancelled) {
+              video.play().catch(() => {});
+              setLoading(false);
+            }
+          });
+          hls.on(Hls.Events.ERROR, (_e, data) => {
+            if (data.fatal && !cancelled) {
+              setLoading(false);
+              setError(true);
+            }
+          });
+        } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
+          video.src = playback.url!;
+          video.addEventListener('loadeddata', () => {
+            if (!cancelled) setLoading(false);
+          }, { once: true });
+          video.play().catch(() => {});
+        } else {
+          setLoading(false);
+          setError(true);
+        }
+      } catch {
+        if (!cancelled) {
+          setLoading(false);
+          setError(true);
+        }
+      }
+    };
+
+    setup();
+
+    return () => {
+      cancelled = true;
+      hlsRef.current?.destroy();
+      hlsRef.current = null;
+      if (videoRef.current) {
+        videoRef.current.pause();
+        videoRef.current.removeAttribute('src');
+        videoRef.current.load();
+      }
+    };
+  }, [camera, playback.mode, playback.url]);
+
+  // ── iframe reset (non-rtsp or forced live) ──
+  useEffect(() => {
+    if (!camera) return;
+    if (playback.mode === 'iframe' && !probingRtsp) {
+      setLoading(false);
+      setError(false);
+    } else if (playback.mode === 'external') {
+      setLoading(false);
+      setError(false);
+    }
+  }, [camera, playback.mode, probingRtsp]);
 
   if (!camera) return null;
 
+  const isLiveVideo = playback.mode === 'hls' || (playback.mode === 'iframe' && !rtspFallback);
+
+  const tryLiveStream = () => {
+    if (!camera?.stream_url) return;
+    setForceLive(true);
+    setLoading(true);
+    setError(false);
+  };
+
   return (
     <AnimatePresence>
       <motion.div
@@ -54,26 +277,32 @@ export default function CameraViewer({ camera, onClose, onLocate }: CameraViewer
         exit={{ opacity: 0, scale: 0.95 }}
         transition={{ duration: 0.3 }}
         className={`fixed z-[500] ${
-          fullscreen 
-            ? 'inset-2 md:inset-4' 
+          fullscreen
+            ? 'inset-2 md:inset-4'
             : 'bottom-[70px] left-2 right-2 md:bottom-6 md:right-6 md:left-auto md:w-[420px]'
         }`}
       >
         <div className="glass-panel osiris-glow overflow-hidden h-full flex flex-col" style={{ borderColor: 'rgba(57, 255, 20, 0.3)' }}>
-          {/* Header */}
           <div className="flex items-center justify-between px-3 md:px-4 py-2 md:py-3 border-b border-[var(--border-secondary)]">
             <div className="flex items-center gap-2 flex-1 min-w-0">
               <div className="w-2 h-2 rounded-full bg-[#39FF14] animate-osiris-pulse flex-shrink-0" />
               <Camera className="w-3.5 h-3.5 text-[#39FF14] flex-shrink-0" />
               <div className="min-w-0">
                 <h3 className="text-[10px] md:text-[11px] font-mono font-bold text-[#39FF14] tracking-wider truncate">{camera.name}</h3>
-                <p className="text-[6px] md:text-[7px] font-mono text-[var(--text-muted)]">{camera.city}, {camera.country} · {camera.source}</p>
+                <p className="text-[6px] md:text-[7px] font-mono text-[var(--text-muted)]">
+                  {camera.city}, {camera.country} · {camera.source}
+                  {rtspFallback && ' · snapshot (rtsp.me limit)'}
+                  {playback.mode === 'jpg' && !rtspFallback && ' · snapshot'}
+                  {playback.mode === 'hls' && ' · HLS'}
+                </p>
               </div>
             </div>
             <div className="flex items-center gap-1 flex-shrink-0">
-              <button onClick={() => setRefreshKey(k => k + 1)} className="p-1.5 rounded hover:bg-[var(--hover-accent)] transition-colors" title="Refresh feed">
-                <RefreshCw className="w-3 h-3 text-[var(--text-muted)] hover:text-[#39FF14]" />
-              </button>
+              {playback.mode === 'jpg' && (
+                <button onClick={() => setRefreshKey((k) => k + 1)} className="p-1.5 rounded hover:bg-[var(--hover-accent)] transition-colors" title="Refresh feed">
+                  <RefreshCw className="w-3 h-3 text-[var(--text-muted)] hover:text-[#39FF14]" />
+                </button>
+              )}
               {camera.lat && camera.lng && (
                 <button onClick={() => onLocate?.(camera.lat, camera.lng)} className="p-1.5 rounded hover:bg-[var(--hover-accent)] transition-colors" title="Fly to location">
                   <MapPin className="w-3 h-3 text-[var(--text-muted)] hover:text-[var(--gold-primary)]" />
@@ -88,25 +317,26 @@ export default function CameraViewer({ camera, onClose, onLocate }: CameraViewer
             </div>
           </div>
 
-          {/* Camera Feed */}
           <div className={`relative bg-black ${fullscreen ? 'flex-1' : 'aspect-video max-h-[35vh] md:max-h-none'}`}>
-            {loading && !error && !externalOnly && (
+            {loading && !error && playback.mode !== 'external' && (
               <div className="absolute inset-0 flex items-center justify-center bg-black/80 z-10">
                 <div className="text-center">
                   <div className="w-6 h-6 border-2 border-[#39FF14] border-t-transparent rounded-full animate-spin mx-auto mb-2" />
-                  <span className="text-[8px] font-mono text-[#39FF14] tracking-widest">CONNECTING TO FEED...</span>
+                  <span className="text-[8px] font-mono text-[#39FF14] tracking-widest">
+                    {probingRtsp ? 'CHECKING RTSP.ME...' : 'CONNECTING TO FEED...'}
+                  </span>
                 </div>
               </div>
             )}
 
-            {externalOnly ? (
+            {playback.mode === 'external' && !error ? (
               <div className="absolute inset-0 flex items-center justify-center bg-black/90">
                 <div className="text-center px-6">
                   <div className="w-8 h-8 rounded-full bg-[#39FF14]/15 flex items-center justify-center mx-auto mb-2"><ExternalLink className="w-4 h-4 text-[#39FF14]" /></div>
                   <span className="text-[9px] font-mono text-[#39FF14] tracking-widest block mb-1">EXTERNAL FEED</span>
-                  <span className="text-[7px] font-mono text-[var(--text-muted)]">Live stream opens in source viewer</span>
-                  {externalFeedUrl && (
-                    <a href={externalFeedUrl} target="_blank" rel="noopener noreferrer" className="block mx-auto mt-3 px-3 py-1 text-[8px] font-mono text-[#39FF14] border border-[#39FF14]/30 rounded hover:bg-[#39FF14]/10 transition-colors tracking-wider">
+                  <span className="text-[7px] font-mono text-[var(--text-muted)]">Opens in source viewer</span>
+                  {playback.url && (
+                    <a href={playback.url} target="_blank" rel="noopener noreferrer" className="block mx-auto mt-3 px-3 py-1 text-[8px] font-mono text-[#39FF14] border border-[#39FF14]/30 rounded hover:bg-[#39FF14]/10 transition-colors tracking-wider">
                       OPEN FEED
                     </a>
                   )}
@@ -115,15 +345,32 @@ export default function CameraViewer({ camera, onClose, onLocate }: CameraViewer
             ) : error ? (
               <div className="absolute inset-0 flex items-center justify-center bg-black/90">
                 <div className="text-center">
-                  <div className="w-8 h-8 rounded-full bg-red-500/20 flex items-center justify-center mb-2"><Camera className="w-4 h-4 text-red-400" /></div>
+                  <div className="w-8 h-8 rounded-full bg-red-500/20 flex items-center justify-center mb-2 mx-auto"><Camera className="w-4 h-4 text-red-400" /></div>
                   <span className="text-[9px] font-mono text-red-400 tracking-widest block mb-1">FEED UNAVAILABLE</span>
-                  <span className="text-[7px] font-mono text-[var(--text-muted)]">Camera may be offline or restricted</span>
-                  <button onClick={() => { setError(false); setRefreshKey(k => k + 1); }} className="block mx-auto mt-3 px-3 py-1 text-[8px] font-mono text-[#39FF14] border border-[#39FF14]/30 rounded hover:bg-[#39FF14]/10 transition-colors tracking-wider">
+                  <span className="text-[7px] font-mono text-[var(--text-muted)]">Stream may be offline or blocked</span>
+                  <button onClick={() => { setError(false); setRefreshKey((k) => k + 1); }} className="block mx-auto mt-3 px-3 py-1 text-[8px] font-mono text-[#39FF14] border border-[#39FF14]/30 rounded hover:bg-[#39FF14]/10 transition-colors tracking-wider">
                     RETRY
                   </button>
                 </div>
               </div>
-            ) : imageUrl ? (
+            ) : playback.mode === 'hls' ? (
+              <video
+                ref={videoRef}
+                className={`w-full ${fullscreen ? 'h-full object-contain' : 'h-full object-cover'}`}
+                autoPlay
+                muted
+                playsInline
+                controls
+              />
+            ) : playback.mode === 'iframe' && playback.url ? (
+              <iframe
+                src={playback.url}
+                className="w-full h-full border-0"
+                allow="autoplay; encrypted-media; picture-in-picture"
+                allowFullScreen
+                title={camera.name}
+              />
+            ) : playback.mode === 'jpg' && imageUrl ? (
               <img
                 key={refreshKey}
                 src={imageUrl}
@@ -134,32 +381,34 @@ export default function CameraViewer({ camera, onClose, onLocate }: CameraViewer
               />
             ) : null}
 
-            {/* Live indicator */}
             {!error && !loading && (
               <div className="absolute top-2 left-2 flex items-center gap-1.5 bg-black/70 backdrop-blur-sm px-2 py-1 rounded">
                 <div className="w-1.5 h-1.5 rounded-full bg-red-500 animate-osiris-pulse" />
-                <span className="text-[7px] font-mono text-white tracking-widest">LIVE</span>
-              </div>
-            )}
-
-            {/* Timestamp */}
-            {!error && !loading && (
-              <div className="absolute bottom-2 right-2 bg-black/70 backdrop-blur-sm px-2 py-1 rounded">
-                <span className="text-[7px] font-mono text-[var(--text-muted)]">{new Date().toLocaleTimeString()}</span>
+                <span className="text-[7px] font-mono text-white tracking-widest">
+                  {isLiveVideo ? 'LIVE' : 'REFRESH'}
+                </span>
               </div>
             )}
           </div>
 
-          {/* Footer with coords + links */}
           <div className="px-3 md:px-4 py-2 border-t border-[var(--border-secondary)] flex items-center justify-between">
             <div className="text-[7px] md:text-[8px] font-mono text-[var(--text-muted)]">
               {camera.lat?.toFixed(4)}, {camera.lng?.toFixed(4)}
             </div>
-            <div className="flex gap-2">
-              {(camera.feed_url || camera.external_url) && (
-                <a href={camera.external_url || camera.feed_url} target="_blank" rel="noopener noreferrer"
+            <div className="flex gap-2 flex-wrap justify-end">
+              {rtspFallback && camera.stream_url && (
+                <button
+                  type="button"
+                  onClick={tryLiveStream}
+                  className="flex items-center gap-1 text-[7px] font-mono text-[var(--gold-primary)] hover:underline tracking-wider"
+                >
+                  TRY LIVE
+                </button>
+              )}
+              {externalLink && (
+                <a href={externalLink} target="_blank" rel="noopener noreferrer"
                   className="flex items-center gap-1 text-[7px] font-mono text-[#39FF14] hover:underline tracking-wider">
-                  <ExternalLink className="w-2.5 h-2.5" /> FEED
+                  <ExternalLink className="w-2.5 h-2.5" /> SOURCE
                 </a>
               )}
               <a href={`https://www.google.com/maps/@${camera.lat},${camera.lng},17z`} target="_blank" rel="noopener noreferrer"
diff --git a/src/components/IntelFeed.tsx b/src/components/IntelFeed.tsx
index a0852c4..b7cd2c9 100644
--- a/src/components/IntelFeed.tsx
+++ b/src/components/IntelFeed.tsx
@@ -52,7 +52,7 @@ export default function IntelFeed({ data, onLocate }: IntelFeedProps) {
       initial={{ opacity: 0, x: 20 }}
       animate={{ opacity: 1, x: 0 }}
       transition={{ delay: 0.6, duration: 0.6 }}
-      className="glass-panel flex flex-col overflow-hidden"
+      className="glass-panel flex flex-col overflow-hidden pointer-events-auto"
     >
       {/* Header */}
       <button
@@ -90,8 +90,16 @@ export default function IntelFeed({ data, onLocate }: IntelFeedProps) {
                 news.slice(0, 25).map((item: any, i: number) => (
                   <div
                     key={i}
+                    role="button"
+                    tabIndex={0}
                     className="px-4 py-2.5 hover:bg-[var(--hover-accent)] transition-colors cursor-pointer"
-                    onClick={() => setSelectedIdx(selectedIdx === i ? null : i)}
+                    onClick={() => {
+                      if (item.link) window.open(item.link, '_blank', 'noopener,noreferrer');
+                      else setSelectedIdx(selectedIdx === i ? null : i);
+                    }}
+                    onKeyDown={(e) => {
+                      if (e.key === 'Enter' && item.link) window.open(item.link, '_blank', 'noopener,noreferrer');
+                    }}
                   >
                     {/* Top row: risk badge + source + time */}
                     <div className="flex items-center gap-2 mb-1">
diff --git a/src/components/LayerPanel.tsx b/src/components/LayerPanel.tsx
index 2e06b2d..2bafd67 100644
--- a/src/components/LayerPanel.tsx
+++ b/src/components/LayerPanel.tsx
@@ -5,7 +5,7 @@ import { motion } from 'framer-motion';
 import {
   Plane, Satellite, Activity, Globe, Radio, Eye,
   Shield, Sun, AlertTriangle, Camera, Flame, Target,
-  CloudLightning, Radiation, Tv, Anchor, Ship,
+  CloudLightning, Radiation, Tv, Anchor, Ship, Newspaper,
 } from 'lucide-react';
 
 interface LayerPanelProps {
@@ -23,6 +23,7 @@ const LAYER_CONFIG = [
   { key: 'satellites', label: 'Satellites', icon: Satellite, color: '#D4AF37', dataKey: 'satellites' },
   { key: 'cctv', label: 'CCTV Cameras', icon: Camera, color: '#39FF14', dataKey: 'cameras' },
   { key: 'live_news', label: 'Live News Feeds', icon: Tv, color: '#FF4081', dataKey: 'live_feeds' },
+  { key: 'news_intel', label: 'SIGINT News (RSS)', icon: Newspaper, color: '#D4AF37', dataKey: 'news' },
   { key: 'earthquakes', label: 'Earthquakes (24h)', icon: Activity, color: '#FF9500', dataKey: 'earthquakes' },
   { key: 'fires', label: 'Active Fires', icon: Flame, color: '#FF6B00', dataKey: 'fires' },
   { key: 'weather', label: 'Severe Weather', icon: CloudLightning, color: '#E040FB', dataKey: 'weather_events' },
diff --git a/src/components/LiveAlerts.tsx b/src/components/LiveAlerts.tsx
index 54741b2..59834c3 100644
--- a/src/components/LiveAlerts.tsx
+++ b/src/components/LiveAlerts.tsx
@@ -62,13 +62,15 @@ export default function LiveAlerts({ data, onLocate, onWatchFeed }: LiveAlertsPr
   const alerts: any[] = [];
 
   // News articles with locations (from /api/news)
-  if (data.articles) {
-    data.articles.slice(0, 10).forEach((a: any) => {
-      if (a.lat && a.lng) {
+  if (data.news) {
+    data.news.slice(0, 10).forEach((a: any) => {
+      if (a.coords?.length === 2) {
+        const score = a.risk_score ?? 1;
         alerts.push({
           type: 'news', title: a.title, source: a.source,
-          lat: a.lat, lng: a.lng, time: a.published,
-          severity: a.risk_label || 'MODERATE', url: a.url,
+          lat: a.coords[0], lng: a.coords[1], time: a.published,
+          severity: score >= 8 ? 'CRITICAL' : score >= 6 ? 'HIGH' : score >= 4 ? 'ELEVATED' : 'LOW',
+          url: a.link,
         });
       }
     });
diff --git a/src/components/OsirisMap.tsx b/src/components/OsirisMap.tsx
index a457635..ac2362d 100644
--- a/src/components/OsirisMap.tsx
+++ b/src/components/OsirisMap.tsx
@@ -86,7 +86,7 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
     const map = new maplibregl.Map({
       container: containerRef.current,
       style: 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json',
-      center: [20, 20], zoom: 2.5, minZoom: 1.5, maxZoom: 18,
+      center: [25.484, 42.698], zoom: 6.5, minZoom: 1.5, maxZoom: 18,
       attributionControl: false,
       maxPitch: 85,
     });
@@ -107,7 +107,7 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
       createDot(map, 'dot-cctv', '#39FF14', 10);
 
       // Sources
-      const sources = ['flights','military','jets','private-fl','satellites','earthquakes','gdelt','gps-jamming','day-night','cctv','fires','weather','infrastructure','maritime','maritime-choke','maritime-ships','live-news','conflict-zones', 'war-alerts-targets', 'war-alerts-lines', 'balloons', 'radiation'];
+      const sources = ['flights','military','jets','private-fl','satellites','earthquakes','gdelt','gps-jamming','day-night','cctv','fires','weather','infrastructure','maritime','maritime-choke','maritime-ships','live-news','sigint-news','conflict-zones', 'war-alerts-targets', 'war-alerts-lines', 'balloons', 'radiation'];
       sources.forEach(s => map.addSource(s, { type: 'geojson', data: EMPTY_FC }));
 
       // ── CONFLICT ZONES — small warning markers (not polygons) ──
@@ -312,6 +312,21 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
         'text-offset': [0, 1.8], 'text-max-width': 12, 'text-allow-overlap': false,
       }, paint: { 'text-color': '#FF4081', 'text-halo-color': '#000', 'text-halo-width': 1, 'text-opacity': 0.8 }});
 
+      // SIGINT RSS news — gold markers (distinct from YouTube live feeds)
+      map.addLayer({ id: 'sigint-news-glow', type: 'circle', source: 'sigint-news', paint: {
+        'circle-radius': ['interpolate',['linear'],['zoom'], 1,6, 5,10, 10,18],
+        'circle-color': '#D4AF37', 'circle-opacity': 0.12, 'circle-blur': 1,
+      }});
+      map.addLayer({ id: 'sigint-news-dots', type: 'circle', source: 'sigint-news', paint: {
+        'circle-radius': ['interpolate',['linear'],['zoom'], 1,3, 5,5, 10,8],
+        'circle-color': '#D4AF37', 'circle-opacity': 0.9,
+        'circle-stroke-width': 1.5, 'circle-stroke-color': '#FFF8DC', 'circle-stroke-opacity': 0.6,
+      }});
+      map.addLayer({ id: 'sigint-news-label', type: 'symbol', source: 'sigint-news', minzoom: 5, layout: {
+        'text-field': ['get','source'], 'text-size': 9, 'text-font': ['Open Sans Regular'],
+        'text-offset': [0, 1.6], 'text-max-width': 10, 'text-allow-overlap': false,
+      }, paint: { 'text-color': '#D4AF37', 'text-halo-color': '#000', 'text-halo-width': 1, 'text-opacity': 0.85 }});
+
       // Flight layers (WebGL symbol — GPU rendered, handles 50K+ smooth)
       const flightLayers = [
         { id: 'fl-commercial', src: 'flights', icon: 'plane-cyan' },
@@ -436,6 +451,8 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
         source: p.source,
         feed_url: p.feed_url,
         external_url: p.external_url,
+        stream_url: p.stream_url,
+        stream_type: p.stream_type,
         lat: coords[1],
         lng: coords[0],
       });
@@ -455,7 +472,7 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
           <div><span style="color:#5C5A54;">DEPTH</span><br/><span style="color:#E8E6E0;">${p.depth||'—'}km</span></div>
           <div><span style="color:#5C5A54;">COORDS</span><br/><span style="color:#E8E6E0;">${coords[1].toFixed(3)}, ${coords[0].toFixed(3)}</span></div>
         </div>
-        <a href="https://earthquake.usgs.gov/earthquakes/eventpage/${p.id||''}" target="_blank" style="${linkStyle}color:#FF9500;border:1px solid rgba(255,149,0,0.4);background:rgba(255,149,0,0.1);">📊 USGS DETAILS</a>
+        <a href="${p.source === 'NIGGG-BAS' ? 'https://ndc.niggg.bas.bg/' : `https://earthquake.usgs.gov/earthquakes/eventpage/${p.id||''}`}" target="_blank" style="${linkStyle}color:#FF9500;border:1px solid rgba(255,149,0,0.4);background:rgba(255,149,0,0.1);">📊 ${p.source === 'NIGGG-BAS' ? 'NIGGG-BAS' : 'USGS'} DETAILS</a>
       </div>`);
     });
 
@@ -522,7 +539,7 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
 
 
     // ── Generic hover for clickables ──
-    ['conflict-icons','cctv-dots','eq-circles','sat-dots','fires-heat','gdelt-dots','weather-dots','infra-dots','maritime-dots','choke-dots','news-dots','balloon-dots','rad-dots','ship-dots'].forEach(layer => {
+    ['conflict-icons','cctv-dots','eq-circles','sat-dots','fires-heat','gdelt-dots','weather-dots','infra-dots','maritime-dots','choke-dots','news-dots','sigint-news-dots','balloon-dots','rad-dots','ship-dots'].forEach(layer => {
       map.on('mouseenter', layer, () => { map.getCanvas().style.cursor = 'pointer'; });
       map.on('mouseleave', layer, () => { map.getCanvas().style.cursor = ''; });
     });
@@ -595,8 +612,8 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
           <div><span style="color:#5C5A54;">COORDS</span><br/><span style="color:#E8E6E0;">${coords[1].toFixed(3)}°, ${coords[0].toFixed(3)}°</span></div>
         </div>
         <div style="display:flex;gap:6px;">
-          ${p.source ? `<a href="${p.source}" target="_blank" style="${linkStyle}color:#E040FB;border:1px solid rgba(224,64,251,0.4);background:rgba(224,64,251,0.1);">📡 SOURCE</a>` : ''}
-          <a href="https://eonet.gsfc.nasa.gov/api/v3/events/${p.id || ''}" target="_blank" style="${linkStyle}color:#D4AF37;border:1px solid rgba(212,175,55,0.4);background:rgba(212,175,55,0.1);">🛰️ NASA EONET</a>
+          ${p.sourceUrl && p.sourceUrl.startsWith('http') ? `<a href="${p.sourceUrl}" target="_blank" style="${linkStyle}color:#E040FB;border:1px solid rgba(224,64,251,0.4);background:rgba(224,64,251,0.1);">📡 ${p.source || 'SOURCE'}</a>` : ''}
+          ${p.source === 'GDACS' ? `<a href="https://www.gdacs.org/" target="_blank" style="${linkStyle}color:#E040FB;border:1px solid rgba(224,64,251,0.4);background:rgba(224,64,251,0.1);">🆘 GDACS</a>` : `<a href="https://eonet.gsfc.nasa.gov/api/v3/events/${p.id || ''}" target="_blank" style="${linkStyle}color:#D4AF37;border:1px solid rgba(212,175,55,0.4);background:rgba(212,175,55,0.1);">🛰️ NASA EONET</a>`}
         </div>
       </div>`);
     });
@@ -665,6 +682,18 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
       });
     });
 
+    // ── SIGINT RSS news ──
+    map.on('click', 'sigint-news-dots', e => {
+      if (!e.features?.length) return;
+      const p = e.features[0].properties as any;
+      const coords = (e.features[0].geometry as any).coordinates;
+      popup(coords, `<div style="${pStyle}border:1px solid rgba(212,175,55,0.35);">
+        <div style="color:#D4AF37;font-size:11px;font-weight:700;margin-bottom:4px;">📰 ${p.source || 'NEWS'}</div>
+        <div style="font-size:10px;color:#E8E6E0;margin-bottom:8px;line-height:1.4;">${p.title || ''}</div>
+        ${p.link ? `<a href="${p.link}" target="_blank" rel="noopener noreferrer" style="${linkStyle}color:#D4AF37;border:1px solid rgba(212,175,55,0.4);background:rgba(212,175,55,0.1);">OPEN ARTICLE</a>` : ''}
+      </div>`);
+    });
+
     return () => { map.remove(); mapRef.current = null; };
   }, []);
 
@@ -712,7 +741,7 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
 
   useEffect(() => {
     if (!mapReady) return;
-    setGeo('earthquakes', activeLayers.earthquakes && data.earthquakes ? data.earthquakes.map((eq: any) => ({ type: 'Feature', geometry: { type: 'Point', coordinates: [eq.lng, eq.lat] }, properties: { magnitude: eq.magnitude, place: eq.place } })) : []);
+    setGeo('earthquakes', activeLayers.earthquakes && data.earthquakes ? data.earthquakes.map((eq: any) => ({ type: 'Feature', geometry: { type: 'Point', coordinates: [eq.lng, eq.lat] }, properties: { id: eq.id, magnitude: eq.magnitude, place: eq.place, depth: eq.depth, source: eq.source || 'USGS' } })) : []);
   }, [mapReady, data.earthquakes, activeLayers.earthquakes, setGeo]);
 
   useEffect(() => {
@@ -732,7 +761,7 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
 
   useEffect(() => {
     if (!mapReady) return;
-    setGeo('cctv', activeLayers.cctv && data.cameras ? data.cameras.map((c: any) => ({ type: 'Feature', geometry: { type: 'Point', coordinates: [c.lng, c.lat] }, properties: { name: c.name, city: c.city, country: c.country, source: c.source, feed_url: c.feed_url, external_url: c.external_url } })) : []);
+    setGeo('cctv', activeLayers.cctv && data.cameras ? data.cameras.map((c: any) => ({ type: 'Feature', geometry: { type: 'Point', coordinates: [c.lng, c.lat] }, properties: { id: c.id, name: c.name, city: c.city, country: c.country, source: c.source, feed_url: c.feed_url, external_url: c.external_url, stream_url: c.stream_url, stream_type: c.stream_type } })) : []);
   }, [mapReady, data.cameras, activeLayers.cctv, setGeo]);
 
   useEffect(() => {
@@ -742,7 +771,7 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
 
   useEffect(() => {
     if (!mapReady) return;
-    setGeo('weather', activeLayers.weather && data.weather_events ? data.weather_events.map((w: any) => ({ type: 'Feature', geometry: { type: 'Point', coordinates: [w.lng, w.lat] }, properties: { title: w.title, type: w.type, icon: w.icon, severity: w.severity, source: w.source, id: w.id } })) : []);
+    setGeo('weather', activeLayers.weather && data.weather_events ? data.weather_events.map((w: any) => ({ type: 'Feature', geometry: { type: 'Point', coordinates: [w.lng, w.lat] }, properties: { title: w.title, type: w.type, icon: w.icon, severity: w.severity, source: w.source, sourceUrl: w.link || w.source, id: w.id } })) : []);
   }, [mapReady, data.weather_events, activeLayers.weather, setGeo]);
 
   useEffect(() => {
@@ -772,6 +801,15 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
     setGeo('live-news', activeLayers.live_news && data.live_feeds ? data.live_feeds.map((f: any) => ({ type: 'Feature', geometry: { type: 'Point', coordinates: [f.lng, f.lat] }, properties: { name: f.name, city: f.city, country: f.country, url: f.url, category: f.category, embed_allowed: f.embed_allowed !== false } })) : []);
   }, [mapReady, data.live_feeds, activeLayers.live_news, setGeo]);
 
+  useEffect(() => {
+    if (!mapReady) return;
+    setGeo('sigint-news', activeLayers.news_intel && data.news ? data.news.filter((n: any) => n.coords?.length === 2).map((n: any) => ({
+      type: 'Feature',
+      geometry: { type: 'Point', coordinates: [n.coords[1], n.coords[0]] },
+      properties: { title: n.title, source: n.source, link: n.link, risk_score: n.risk_score, coords_default: n.coords_default },
+    })) : []);
+  }, [mapReady, data.news, activeLayers.news_intel, setGeo]);
+
   useEffect(() => {
     if (!mapReady) return;
     // ── CONFLICT ZONES — center-point warning markers ──
@@ -819,6 +857,7 @@ function OsirisMap({ data, activeLayers, onEntityClick, onMouseCoords, onRightCl
     setVis(['choke-glow','choke-dots','choke-label'], activeLayers.maritime);
     setVis(['ship-dots','ship-label'], activeLayers.maritime);
     setVis(['news-glow','news-dots','news-label'], activeLayers.live_news);
+    setVis(['sigint-news-glow','sigint-news-dots','sigint-news-label'], activeLayers.news_intel);
     setVis(['conflict-icons'], activeLayers.conflict_zones !== false);
 
     setVis(['balloon-dots','balloon-label'], activeLayers.balloons);
diff --git a/src/lib/bulgaria-sources.ts b/src/lib/bulgaria-sources.ts
new file mode 100644
index 0000000..f67478a
--- /dev/null
+++ b/src/lib/bulgaria-sources.ts
@@ -0,0 +1,219 @@
+/**
+ * Balkans-focused data sources for the Ito-69/osiris fork.
+ * NIGGG-BAS (seismic), GDACS (EU civil protection), BG news feeds.
+ */
+
+export const BALKANS_BBOX = {
+  minLat: 39.5,
+  maxLat: 46.5,
+  minLng: 19.5,
+  maxLng: 30.5,
+};
+
+export const BULGARIA_BBOX = {
+  minLat: 41.2,
+  maxLat: 44.5,
+  minLng: 22.0,
+  maxLng: 29.0,
+};
+
+export const DEFAULT_MAP_CENTER: [number, number] = [25.484, 42.698]; // Sofia — Balkans startup view
+export const DEFAULT_MAP_ZOOM = 6.5;
+
+export function inBbox(
+  lat: number,
+  lng: number,
+  bbox: { minLat: number; maxLat: number; minLng: number; maxLng: number } = BALKANS_BBOX,
+): boolean {
+  return lat >= bbox.minLat && lat <= bbox.maxLat && lng >= bbox.minLng && lng <= bbox.maxLng;
+}
+
+export interface NigggEarthquake {
+  id: string;
+  lat: number;
+  lng: number;
+  depth: number;
+  magnitude: number;
+  place: string;
+  time: number;
+  url: string;
+  source: 'NIGGG-BAS';
+}
+
+export function parseNigggXml(xml: string): NigggEarthquake[] {
+  const events: NigggEarthquake[] = [];
+  const markerRegex = /<marker\b([^>]*)\/>/gi;
+  let match: RegExpExecArray | null;
+
+  while ((match = markerRegex.exec(xml)) !== null) {
+    const attrs = match[1];
+    const get = (name: string) => {
+      const m = attrs.match(new RegExp(`${name}="([^"]*)"`));
+      return m?.[1] ?? '';
+    };
+
+    const lat = parseFloat(get('lat'));
+    const lng = parseFloat(get('lon'));
+    const magnitude = parseFloat(get('mag'));
+    if (!Number.isFinite(lat) || !Number.isFinite(lng) || !Number.isFinite(magnitude)) continue;
+
+    const id = get('id') || `niggg-${lat}-${lng}-${get('time')}`;
+    const label = get('label') || 'Balkans region';
+    const timeStr = get('time');
+    const time = timeStr ? Date.parse(timeStr.replace(' ', 'T') + 'Z') : Date.now();
+
+    events.push({
+      id: `niggg-${id}`,
+      lat,
+      lng,
+      depth: parseFloat(get('depth')) || 0,
+      magnitude,
+      place: label,
+      time,
+      url: 'https://ndc.niggg.bas.bg/',
+      source: 'NIGGG-BAS',
+    });
+  }
+
+  return events;
+}
+
+export async function fetchNigggEarthquakes(): Promise<NigggEarthquake[]> {
+  const res = await fetch('https://ndc.niggg.bas.bg/data.xml', {
+    signal: AbortSignal.timeout(10000),
+    next: { revalidate: 300 },
+  });
+  if (!res.ok) return [];
+  const xml = await res.text();
+  return parseNigggXml(xml);
+}
+
+export interface GdacsAlert {
+  id: string;
+  title: string;
+  category: string;
+  type: string;
+  icon: string;
+  severity: 'low' | 'medium' | 'high';
+  lat: number;
+  lng: number;
+  date: string;
+  source: string;
+  link: string;
+  alertLevel: string;
+}
+
+const GDACS_TYPE_MAP: Record<string, { type: string; icon: string; severity: 'low' | 'medium' | 'high' }> = {
+  EQ: { type: 'Earthquake Alert', icon: 'earthquake', severity: 'high' },
+  FL: { type: 'Forest Fire', icon: 'fire', severity: 'high' },
+  TC: { type: 'Tropical Cyclone', icon: 'cyclone', severity: 'high' },
+  VO: { type: 'Volcano', icon: 'volcano', severity: 'high' },
+  DR: { type: 'Drought', icon: 'drought', severity: 'medium' },
+  WF: { type: 'Wildfire', icon: 'fire', severity: 'high' },
+};
+
+function gdacsSeverity(level: string): 'low' | 'medium' | 'high' {
+  const l = level.toLowerCase();
+  if (l === 'red' || l === 'orange') return 'high';
+  if (l === 'yellow') return 'medium';
+  return 'low';
+}
+
+const BALKANS_KEYWORDS = [
+  'bulgaria', 'българ', 'greece', 'гърц', 'romania', 'румън', 'turkey', 'турц',
+  'serbia', 'сърб', 'balkans', 'балкан', 'black sea', 'черно море', 'macedonia', 'македон',
+];
+
+function bboxOverlapsBalkans(bboxStr: string): boolean {
+  const parts = bboxStr.trim().split(/\s+/).map(Number);
+  if (parts.length !== 4 || parts.some(n => !Number.isFinite(n))) return false;
+  const [lonMin, lonMax, latMin, latMax] = parts;
+  return latMax >= BALKANS_BBOX.minLat && latMin <= BALKANS_BBOX.maxLat
+    && lonMax >= BALKANS_BBOX.minLng && lonMin <= BALKANS_BBOX.maxLng;
+}
+
+function mentionsBalkans(text: string): boolean {
+  const lower = text.toLowerCase();
+  return BALKANS_KEYWORDS.some(kw => lower.includes(kw));
+}
+
+export function parseGdacsRss(xml: string, bbox = BALKANS_BBOX): GdacsAlert[] {
+  const alerts: GdacsAlert[] = [];
+  const itemRegex = /<item>([\s\S]*?)<\/item>/gi;
+  let match: RegExpExecArray | null;
+
+  while ((match = itemRegex.exec(xml)) !== null) {
+    const itemXml = match[1];
+    const getTag = (tag: string) => {
+      const m = itemXml.match(new RegExp(`<${tag}[^>]*>([\\s\\S]*?)<\\/${tag}>`, 'i'));
+      return (m?.[1] || '').trim();
+    };
+
+    const lat = parseFloat(getTag('geo:lat'));
+    const lng = parseFloat(getTag('geo:long'));
+    const title = getTag('title').replace(/<[^>]+>/g, '');
+    const description = getTag('description').replace(/<[^>]+>/g, '');
+    const gdacsBbox = getTag('gdacs:bbox');
+    const inRegion = (Number.isFinite(lat) && Number.isFinite(lng) && inBbox(lat, lng, bbox))
+      || bboxOverlapsBalkans(gdacsBbox)
+      || mentionsBalkans(`${title} ${description}`);
+    if (!inRegion) continue;
+
+    const eventType = getTag('gdacs:eventtype') || 'UN';
+    const alertLevel = getTag('gdacs:alertlevel') || 'Green';
+    const mapped = GDACS_TYPE_MAP[eventType] || { type: 'Disaster Alert', icon: 'alert', severity: 'low' as const };
+    const link = getTag('link');
+    const pubDate = getTag('pubDate');
+    const guid = getTag('guid') || link;
+    const pointLat = Number.isFinite(lat) ? lat : (bbox.minLat + bbox.maxLat) / 2;
+    const pointLng = Number.isFinite(lng) ? lng : (bbox.minLng + bbox.maxLng) / 2;
+
+    alerts.push({
+      id: `gdacs-${guid.replace(/[^a-zA-Z0-9]/g, '')}`,
+      title,
+      category: eventType.toLowerCase(),
+      type: mapped.type,
+      icon: mapped.icon,
+      severity: gdacsSeverity(alertLevel) === 'low' ? mapped.severity : gdacsSeverity(alertLevel),
+      lat: pointLat,
+      lng: pointLng,
+      date: pubDate,
+      source: 'GDACS',
+      link,
+      alertLevel,
+    });
+  }
+
+  return alerts;
+}
+
+export async function fetchGdacsBalkansAlerts(): Promise<GdacsAlert[]> {
+  const res = await fetch('https://www.gdacs.org/xml/rss.xml', {
+    signal: AbortSignal.timeout(10000),
+    next: { revalidate: 600 },
+  });
+  if (!res.ok) return [];
+  const xml = await res.text();
+  return parseGdacsRss(xml);
+}
+
+export function mergeEarthquakes<T extends { lat: number; lng: number; time?: number; magnitude?: number }>(
+  primary: T[],
+  regional: T[],
+): T[] {
+  const merged = [...primary];
+
+  for (const eq of regional) {
+    const duplicate = merged.some(existing => {
+      const dist = Math.hypot(existing.lat - eq.lat, existing.lng - eq.lng);
+      if (dist > 0.12) return false;
+      const tA = existing.time || 0;
+      const tB = eq.time || 0;
+      if (tA && tB && Math.abs(tA - tB) < 3600000) return true;
+      return dist < 0.05 && Math.abs((existing.magnitude || 0) - (eq.magnitude || 0)) < 0.3;
+    });
+    if (!duplicate) merged.push(eq);
+  }
+
+  return merged.sort((a, b) => (b.time || 0) - (a.time || 0));
+}
