From a51687280f4746241d8f008d200598d797ab51f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 18:57:43 +0200 Subject: [PATCH 01/10] docs: publish full country-flag and category playlist directory with verified status labels --- docs/BUNNY_PLAYLISTS.md | 296 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 docs/BUNNY_PLAYLISTS.md diff --git a/docs/BUNNY_PLAYLISTS.md b/docs/BUNNY_PLAYLISTS.md new file mode 100644 index 0000000000..6de8701c6b --- /dev/null +++ b/docs/BUNNY_PLAYLISTS.md @@ -0,0 +1,296 @@ +# 📚 Каталог IPTV-плейлистов на Bunny CDN + +**Public playlist directory • 2 ноября 2026** + +> [!IMPORTANT] +> Ссылки приведены как публичные пути существующей Pull Zone. **Статус публикации и воспроизведения — разные вещи.** Перечисление URL не подтверждает, что файл уже загружен или что все каналы играют. Сейчас снаружи мы не можем выполнить независимую HTTP-проверку Bunny CDN. + +**Легенда:** ✅ — CDN подтверждён ранее присланным отчётом · ☑️ — загрузка зафиксирована в логе пользователя · ○ — URL зарезервирован генератором, загрузка на Bunny не подтверждена. + +**База URL:** `https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/` · [↩ На главную](../README.md) · [Инструкция по публикации](BUNNY_ONE_CLICK.md) + +## 🚀 Основные и Samsung Lampa + +| Плейлист | Каналов / цель | Публичный M3U | Статус | +|---|---|---|---| +| **Полный IPTV** | 11 420 записей на момент первого деплоя; не все проверены | [index.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.m3u) | ☑️ Загружен по логу | +| **Все категории (исторический)** | Изначальная загрузка, может содержать старую группировку | [index.category.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.category.m3u) | ☑️ Загружен по логу | +| **Все категории (исправлено)** | Исправление собрано, новая публикация не подтверждена | [index.clean.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.clean.m3u) | ○ Публикация не подтверждена | +| **Все страны вместе** | Публикация в Bunny ещё не подтверждена | [index.country.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.country.m3u) | ○ Публикация не подтверждена | +| **Lampa Lite · 240** | Первый облегчённый вариант | [lampa-lite.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa-lite.m3u) | ○ Публикация не подтверждена | +| **Lampa · 600** | Расширенный облегчённый вариант | [lampa.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa.m3u) | ○ Публикация не подтверждена | +| **Lampa Clean Lite · 240** | Рекомендуется после загрузки | [lampa-clean-lite.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa-clean-lite.m3u) | ○ Публикация не подтверждена | +| **Lampa Clean · 600** | Рекомендуется после загрузки | [lampa-clean.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa-clean.m3u) | ○ Публикация не подтверждена | + +## 🔞 Adult / XXX + +> 18+. Содержимое сторонних источников и права вещания не подтверждены. **HLS OPEN ≠ полноценный бесплатный телеканал**: ранее обнаружены cam-реклама и заставки с требованием подписки. + +| Плейлист | Примечание | URL | Статус | +|---|---|---|---| +| Adult / XXX (исходный) | 46 ранее технически открытых HLS; много рекламных/платных заглушек | [adult.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/adult.m3u) | ☑️ Загружен по логу | +| Adulttest / 18+ (тестовый) | 141 анонимный HLS прошёл тест; качество не подтверждено | [adulttest.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/adulttest.m3u) | ✅ CDN подтверждён отчётом | + +## 🪐 Pluto TV · отдельные списки + +> Каналы из стороннего источника [BuddyChewChew/app-m3u-generator](https://github.com/BuddyChewChew/app-m3u-generator), ссылки HLS идут через `jmp2.uk`; возможны геоограничения. Это FAST-платформа, не премиальные платные каналы. + +| Плейлист | Назначение | URL | Статус | +|---|---|---|---| +| Pluto TV · все регионы | 3 016 записей по последнему CI-отчёту | [plutotv.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv.m3u) | ○ Публикация не подтверждена | +| Pluto TV Lite | 240 каналов — для Samsung | [plutotv-lite.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-lite.m3u) | ○ Публикация не подтверждена | +| Pluto TV Germany | 200 каналов | [plutotv-de.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-de.m3u) | ○ Публикация не подтверждена | +| Pluto TV Erotic FAST | 8 немецких эротических FAST-каналов | [plutotv-erotic.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-erotic.m3u) | ○ Публикация не подтверждена | +| Pluto TV US | 433 канала | [plutotv-us.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-us.m3u) | ○ Публикация не подтверждена | +| Pluto TV UK | 183 канала | [plutotv-gb.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-gb.m3u) | ○ Публикация не подтверждена | + +## 🎭 Категории + +В первом подтверждённом выводе терминала опубликовано **34 категорий**. Эти отдельные файлы могут содержать старые записи; улучшенная группировка относится к новым файлам `index.clean.m3u` и `lampa-clean-*.m3u`. + +| Тематика | Ссылка | Статус | +|---|---|---| +| ⚠️ AdultIPTV (старый источник) | [categories/adultiptv.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/adultiptv.m3u) | ☑️ По первоначальному логу | +| 🎨 Анимация | [categories/animation.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/animation.m3u) | ☑️ По первоначальному логу | +| 🚗 Автомобили | [categories/auto.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/auto.m3u) | ☑️ По первоначальному логу | +| 💼 Бизнес | [categories/business.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/business.m3u) | ☑️ По первоначальному логу | +| 📼 Классика | [categories/classic.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/classic.m3u) | ☑️ По первоначальному логу | +| 😂 Комедии | [categories/comedy.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/comedy.m3u) | ☑️ По первоначальному логу | +| 🍳 Кулинария | [categories/cooking.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/cooking.m3u) | ☑️ По первоначальному логу | +| 🏛️ Культура | [categories/culture.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/culture.m3u) | ☑️ По первоначальному логу | +| 🎞️ Документальные | [categories/documentary.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/documentary.m3u) | ☑️ По первоначальному логу | +| 🎓 Образование | [categories/education.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/education.m3u) | ☑️ По первоначальному логу | +| 🎭 Развлечения | [categories/entertainment.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/entertainment.m3u) | ☑️ По первоначальному логу | +| 👨‍👩‍👧 Семья | [categories/family.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/family.m3u) | ☑️ По первоначальному логу | +| 📺 Общие | [categories/general.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/general.m3u) | ☑️ По первоначальному логу | +| 🎮 Интерактив | [categories/interactive.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/interactive.m3u) | ☑️ По первоначальному логу | +| 🧸 Детские | [categories/kids.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/kids.m3u) | ☑️ По первоначальному логу | +| 🏛️ Парламент | [categories/legislative.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/legislative.m3u) | ☑️ По первоначальному логу | +| 🌿 Образ жизни | [categories/lifestyle.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/lifestyle.m3u) | ☑️ По первоначальному логу | +| 🎬 Фильмы | [categories/movies.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/movies.m3u) | ☑️ По первоначальному логу | +| 🎵 Музыка | [categories/music.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/music.m3u) | ☑️ По первоначальному логу | +| ⚠️ MyCamTV (старый источник) | [categories/mycamtv.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/mycamtv.m3u) | ☑️ По первоначальному логу | +| 📰 Новости | [categories/news.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/news.m3u) | ☑️ По первоначальному логу | +| 🔞 Другие 18+ (старый источник) | [categories/other-adult.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/other-adult.m3u) | ☑️ По первоначальному логу | +| 🏞️ Природа и активный отдых | [categories/outdoor.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/outdoor.m3u) | ☑️ По первоначальному логу | +| 📡 Общественные | [categories/public.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/public.m3u) | ☑️ По первоначальному логу | +| 🧘 Релакс | [categories/relax.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/relax.m3u) | ☑️ По первоначальному логу | +| ⛪ Религия | [categories/religious.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/religious.m3u) | ☑️ По первоначальному логу | +| 🔬 Наука | [categories/science.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/science.m3u) | ☑️ По первоначальному логу | +| 🍿 Сериалы | [categories/series.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/series.m3u) | ☑️ По первоначальному логу | +| 🛍️ Покупки | [categories/shop.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/shop.m3u) | ☑️ По первоначальному логу | +| ⚽ Спорт | [categories/sports.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/sports.m3u) | ☑️ По первоначальному логу | +| ✈️ Путешествия | [categories/travel.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/travel.m3u) | ☑️ По первоначальному логу | +| 📁 Без категории | [categories/undefined.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/undefined.m3u) | ☑️ По первоначальному логу | +| 🌦️ Погода | [categories/weather.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/weather.m3u) | ☑️ По первоначальному логу | +| 🔞 18+ (XXX) | [categories/xxx.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/xxx.m3u) | ☑️ По первоначальному логу | + +## 🌍 По странам · 188 направлений + +Ниже **188 кодов стран, присутствующих в официальном списке IPTV-org**. Скрипт `sync_bunny_countries.py` поддерживает их зеркалирование, но загрузка всех стран на конкретный Bunny пока не подтверждена. В старом терминальном логе есть подтверждение `ua.m3u`. + +
+Показать все страны с флагами и прямыми M3U + +| Страна | ISO | Прямая ссылка | Статус | +|---|:---:|---|:---:| +| 🇦🇫 Афганистан | `af` | [countries/af.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/af.m3u) | ○ | +| 🇦🇱 Албания | `al` | [countries/al.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/al.m3u) | ○ | +| 🇩🇿 Алжир | `dz` | [countries/dz.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/dz.m3u) | ○ | +| 🇦🇩 Андорра | `ad` | [countries/ad.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ad.m3u) | ○ | +| 🇦🇴 Ангола | `ao` | [countries/ao.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ao.m3u) | ○ | +| 🇦🇬 Антигуа и Барбуда | `ag` | [countries/ag.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ag.m3u) | ○ | +| 🇦🇷 Аргентина | `ar` | [countries/ar.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ar.m3u) | ○ | +| 🇦🇲 Армения | `am` | [countries/am.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/am.m3u) | ○ | +| 🇦🇼 Аруба | `aw` | [countries/aw.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/aw.m3u) | ○ | +| 🇦🇺 Австралия | `au` | [countries/au.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/au.m3u) | ○ | +| 🇦🇹 Австрия | `at` | [countries/at.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/at.m3u) | ○ | +| 🇦🇿 Азербайджан | `az` | [countries/az.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/az.m3u) | ○ | +| 🇧🇸 Багамы | `bs` | [countries/bs.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bs.m3u) | ○ | +| 🇧🇭 Бахрейн | `bh` | [countries/bh.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bh.m3u) | ○ | +| 🇧🇩 Бангладеш | `bd` | [countries/bd.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bd.m3u) | ○ | +| 🇧🇧 Барбадос | `bb` | [countries/bb.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bb.m3u) | ○ | +| 🇧🇾 Беларусь | `by` | [countries/by.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/by.m3u) | ○ | +| 🇧🇪 Бельгия | `be` | [countries/be.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/be.m3u) | ○ | +| 🇧🇿 Белиз | `bz` | [countries/bz.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bz.m3u) | ○ | +| 🇧🇯 Бенин | `bj` | [countries/bj.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bj.m3u) | ○ | +| 🇧🇹 Бутан | `bt` | [countries/bt.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bt.m3u) | ○ | +| 🇧🇴 Боливия | `bo` | [countries/bo.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bo.m3u) | ○ | +| 🇧🇶 Бонэйр, Синт-Эстатиус и Саба | `bq` | [countries/bq.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bq.m3u) | ○ | +| 🇧🇦 Босния и Герцеговина | `ba` | [countries/ba.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ba.m3u) | ○ | +| 🇧🇷 Бразилия | `br` | [countries/br.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/br.m3u) | ○ | +| 🇻🇬 Виргинские о-ва (Великобритания) | `vg` | [countries/vg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/vg.m3u) | ○ | +| 🇧🇳 Бруней | `bn` | [countries/bn.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bn.m3u) | ○ | +| 🇧🇬 Болгария | `bg` | [countries/bg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bg.m3u) | ○ | +| 🇧🇫 Буркина-Фасо | `bf` | [countries/bf.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bf.m3u) | ○ | +| 🇧🇮 Бурунди | `bi` | [countries/bi.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bi.m3u) | ○ | +| 🇰🇭 Камбоджа | `kh` | [countries/kh.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kh.m3u) | ○ | +| 🇨🇲 Камерун | `cm` | [countries/cm.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cm.m3u) | ○ | +| 🇨🇦 Канада | `ca` | [countries/ca.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ca.m3u) | ○ | +| 🇨🇻 Кабо-Верде | `cv` | [countries/cv.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cv.m3u) | ○ | +| 🇹🇩 Чад | `td` | [countries/td.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/td.m3u) | ○ | +| 🇨🇱 Чили | `cl` | [countries/cl.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cl.m3u) | ○ | +| 🇨🇳 Китай | `cn` | [countries/cn.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cn.m3u) | ○ | +| 🇨🇴 Колумбия | `co` | [countries/co.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/co.m3u) | ○ | +| 🇰🇲 Коморы | `km` | [countries/km.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/km.m3u) | ○ | +| 🇨🇷 Коста-Рика | `cr` | [countries/cr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cr.m3u) | ○ | +| 🇭🇷 Хорватия | `hr` | [countries/hr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/hr.m3u) | ○ | +| 🇨🇺 Куба | `cu` | [countries/cu.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cu.m3u) | ○ | +| 🇨🇼 Кюрасао | `cw` | [countries/cw.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cw.m3u) | ○ | +| 🇨🇾 Кипр | `cy` | [countries/cy.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cy.m3u) | ○ | +| 🇨🇿 Чехия | `cz` | [countries/cz.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cz.m3u) | ○ | +| 🇨🇩 Конго - Киншаса | `cd` | [countries/cd.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cd.m3u) | ○ | +| 🇩🇰 Дания | `dk` | [countries/dk.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/dk.m3u) | ○ | +| 🇩🇴 Доминиканская Республика | `do` | [countries/do.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/do.m3u) | ○ | +| 🇪🇨 Эквадор | `ec` | [countries/ec.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ec.m3u) | ○ | +| 🇪🇬 Египет | `eg` | [countries/eg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/eg.m3u) | ○ | +| 🇸🇻 Сальвадор | `sv` | [countries/sv.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sv.m3u) | ○ | +| 🇬🇶 Экваториальная Гвинея | `gq` | [countries/gq.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gq.m3u) | ○ | +| 🇪🇷 Эритрея | `er` | [countries/er.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/er.m3u) | ○ | +| 🇪🇪 Эстония | `ee` | [countries/ee.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ee.m3u) | ○ | +| 🇪🇹 Эфиопия | `et` | [countries/et.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/et.m3u) | ○ | +| 🇫🇮 Финляндия | `fi` | [countries/fi.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/fi.m3u) | ○ | +| 🇫🇷 Франция | `fr` | [countries/fr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/fr.m3u) | ○ | +| 🇬🇫 Французская Гвиана | `gf` | [countries/gf.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gf.m3u) | ○ | +| 🇵🇫 Французская Полинезия | `pf` | [countries/pf.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pf.m3u) | ○ | +| 🇬🇲 Гамбия | `gm` | [countries/gm.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gm.m3u) | ○ | +| 🇬🇪 Грузия | `ge` | [countries/ge.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ge.m3u) | ○ | +| 🇩🇪 Германия | `de` | [countries/de.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/de.m3u) | ○ | +| 🇬🇭 Гана | `gh` | [countries/gh.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gh.m3u) | ○ | +| 🇬🇷 Греция | `gr` | [countries/gr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gr.m3u) | ○ | +| 🇬🇵 Гваделупа | `gp` | [countries/gp.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gp.m3u) | ○ | +| 🇬🇺 Гуам | `gu` | [countries/gu.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gu.m3u) | ○ | +| 🇬🇹 Гватемала | `gt` | [countries/gt.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gt.m3u) | ○ | +| 🇬🇬 Гернси | `gg` | [countries/gg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gg.m3u) | ○ | +| 🇬🇳 Гвинея | `gn` | [countries/gn.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gn.m3u) | ○ | +| 🇬🇾 Гайана | `gy` | [countries/gy.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gy.m3u) | ○ | +| 🇭🇹 Гаити | `ht` | [countries/ht.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ht.m3u) | ○ | +| 🇭🇳 Гондурас | `hn` | [countries/hn.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/hn.m3u) | ○ | +| 🇭🇰 Гонконг | `hk` | [countries/hk.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/hk.m3u) | ○ | +| 🇭🇺 Венгрия | `hu` | [countries/hu.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/hu.m3u) | ○ | +| 🇮🇸 Исландия | `is` | [countries/is.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/is.m3u) | ○ | +| 🇮🇳 Индия | `in` | [countries/in.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/in.m3u) | ○ | +| 🇮🇩 Индонезия | `id` | [countries/id.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/id.m3u) | ○ | +| 🇮🇷 Иран | `ir` | [countries/ir.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ir.m3u) | ○ | +| 🇮🇶 Ирак | `iq` | [countries/iq.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/iq.m3u) | ○ | +| 🇮🇪 Ирландия | `ie` | [countries/ie.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ie.m3u) | ○ | +| 🇮🇱 Израиль | `il` | [countries/il.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/il.m3u) | ○ | +| 🇮🇹 Италия | `it` | [countries/it.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/it.m3u) | ○ | +| 🇨🇮 Кот-д’Ивуар | `ci` | [countries/ci.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ci.m3u) | ○ | +| 🇯🇲 Ямайка | `jm` | [countries/jm.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/jm.m3u) | ○ | +| 🇯🇵 Япония | `jp` | [countries/jp.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/jp.m3u) | ○ | +| 🇯🇴 Иордания | `jo` | [countries/jo.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/jo.m3u) | ○ | +| 🇰🇿 Казахстан | `kz` | [countries/kz.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kz.m3u) | ○ | +| 🇰🇪 Кения | `ke` | [countries/ke.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ke.m3u) | ○ | +| 🇽🇰 Косово | `xk` | [countries/xk.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/xk.m3u) | ○ | +| 🇰🇼 Кувейт | `kw` | [countries/kw.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kw.m3u) | ○ | +| 🇰🇬 Киргизия | `kg` | [countries/kg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kg.m3u) | ○ | +| 🇱🇦 Лаос | `la` | [countries/la.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/la.m3u) | ○ | +| 🇱🇻 Латвия | `lv` | [countries/lv.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lv.m3u) | ○ | +| 🇱🇧 Ливан | `lb` | [countries/lb.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lb.m3u) | ○ | +| 🇱🇾 Ливия | `ly` | [countries/ly.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ly.m3u) | ○ | +| 🇱🇮 Лихтенштейн | `li` | [countries/li.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/li.m3u) | ○ | +| 🇱🇹 Литва | `lt` | [countries/lt.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lt.m3u) | ○ | +| 🇱🇺 Люксембург | `lu` | [countries/lu.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lu.m3u) | ○ | +| 🇲🇴 Макао | `mo` | [countries/mo.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mo.m3u) | ○ | +| 🇲🇬 Мадагаскар | `mg` | [countries/mg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mg.m3u) | ○ | +| 🇲🇾 Малайзия | `my` | [countries/my.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/my.m3u) | ○ | +| 🇲🇻 Мальдивы | `mv` | [countries/mv.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mv.m3u) | ○ | +| 🇲🇱 Мали | `ml` | [countries/ml.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ml.m3u) | ○ | +| 🇲🇹 Мальта | `mt` | [countries/mt.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mt.m3u) | ○ | +| 🇲🇶 Мартиника | `mq` | [countries/mq.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mq.m3u) | ○ | +| 🇲🇷 Мавритания | `mr` | [countries/mr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mr.m3u) | ○ | +| 🇲🇺 Маврикий | `mu` | [countries/mu.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mu.m3u) | ○ | +| 🇲🇽 Мексика | `mx` | [countries/mx.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mx.m3u) | ○ | +| 🇲🇩 Молдова | `md` | [countries/md.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/md.m3u) | ○ | +| 🇲🇨 Монако | `mc` | [countries/mc.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mc.m3u) | ○ | +| 🇲🇳 Монголия | `mn` | [countries/mn.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mn.m3u) | ○ | +| 🇲🇪 Черногория | `me` | [countries/me.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/me.m3u) | ○ | +| 🇲🇦 Марокко | `ma` | [countries/ma.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ma.m3u) | ○ | +| 🇲🇿 Мозамбик | `mz` | [countries/mz.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mz.m3u) | ○ | +| 🇲🇲 Мьянма (Бирма) | `mm` | [countries/mm.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mm.m3u) | ○ | +| 🇳🇦 Намибия | `na` | [countries/na.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/na.m3u) | ○ | +| 🇳🇵 Непал | `np` | [countries/np.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/np.m3u) | ○ | +| 🇳🇱 Нидерланды | `nl` | [countries/nl.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/nl.m3u) | ○ | +| 🇳🇨 Новая Каледония | `nc` | [countries/nc.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/nc.m3u) | ○ | +| 🇳🇿 Новая Зеландия | `nz` | [countries/nz.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/nz.m3u) | ○ | +| 🇳🇮 Никарагуа | `ni` | [countries/ni.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ni.m3u) | ○ | +| 🇳🇪 Нигер | `ne` | [countries/ne.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ne.m3u) | ○ | +| 🇳🇬 Нигерия | `ng` | [countries/ng.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ng.m3u) | ○ | +| 🇰🇵 КНДР | `kp` | [countries/kp.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kp.m3u) | ○ | +| 🇲🇰 Северная Македония | `mk` | [countries/mk.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mk.m3u) | ○ | +| 🇳🇴 Норвегия | `no` | [countries/no.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/no.m3u) | ○ | +| 🇴🇲 Оман | `om` | [countries/om.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/om.m3u) | ○ | +| 🇵🇰 Пакистан | `pk` | [countries/pk.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pk.m3u) | ○ | +| 🇵🇸 Палестина | `ps` | [countries/ps.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ps.m3u) | ○ | +| 🇵🇦 Панама | `pa` | [countries/pa.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pa.m3u) | ○ | +| 🇵🇬 Папуа — Новая Гвинея | `pg` | [countries/pg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pg.m3u) | ○ | +| 🇵🇾 Парагвай | `py` | [countries/py.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/py.m3u) | ○ | +| 🇵🇪 Перу | `pe` | [countries/pe.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pe.m3u) | ○ | +| 🇵🇭 Филиппины | `ph` | [countries/ph.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ph.m3u) | ○ | +| 🇵🇱 Польша | `pl` | [countries/pl.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pl.m3u) | ○ | +| 🇵🇹 Португалия | `pt` | [countries/pt.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pt.m3u) | ○ | +| 🇵🇷 Пуэрто-Рико | `pr` | [countries/pr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pr.m3u) | ○ | +| 🇶🇦 Катар | `qa` | [countries/qa.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/qa.m3u) | ○ | +| 🇨🇬 Конго - Браззавиль | `cg` | [countries/cg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cg.m3u) | ○ | +| 🇷🇪 Реюньон | `re` | [countries/re.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/re.m3u) | ○ | +| 🇷🇴 Румыния | `ro` | [countries/ro.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ro.m3u) | ○ | +| 🇷🇺 Россия | `ru` | [countries/ru.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ru.m3u) | ○ | +| 🇷🇼 Руанда | `rw` | [countries/rw.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/rw.m3u) | ○ | +| 🇰🇳 Сент-Китс и Невис | `kn` | [countries/kn.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kn.m3u) | ○ | +| 🇱🇨 Сент-Люсия | `lc` | [countries/lc.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lc.m3u) | ○ | +| 🇻🇨 Сент-Винсент и Гренадины | `vc` | [countries/vc.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/vc.m3u) | ○ | +| 🇼🇸 Самоа | `ws` | [countries/ws.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ws.m3u) | ○ | +| 🇸🇲 Сан-Марино | `sm` | [countries/sm.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sm.m3u) | ○ | +| 🇸🇦 Саудовская Аравия | `sa` | [countries/sa.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sa.m3u) | ○ | +| 🇸🇳 Сенегал | `sn` | [countries/sn.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sn.m3u) | ○ | +| 🇷🇸 Сербия | `rs` | [countries/rs.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/rs.m3u) | ○ | +| 🇸🇱 Сьерра-Леоне | `sl` | [countries/sl.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sl.m3u) | ○ | +| 🇸🇬 Сингапур | `sg` | [countries/sg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sg.m3u) | ○ | +| 🇸🇽 Синт-Мартен | `sx` | [countries/sx.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sx.m3u) | ○ | +| 🇸🇰 Словакия | `sk` | [countries/sk.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sk.m3u) | ○ | +| 🇸🇮 Словения | `si` | [countries/si.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/si.m3u) | ○ | +| 🇸🇴 Сомали | `so` | [countries/so.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/so.m3u) | ○ | +| 🇿🇦 Южно-Африканская Республика | `za` | [countries/za.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/za.m3u) | ○ | +| 🇰🇷 Республика Корея | `kr` | [countries/kr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kr.m3u) | ○ | +| 🇪🇸 Испания | `es` | [countries/es.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/es.m3u) | ○ | +| 🇱🇰 Шри-Ланка | `lk` | [countries/lk.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lk.m3u) | ○ | +| 🇸🇩 Судан | `sd` | [countries/sd.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sd.m3u) | ○ | +| 🇸🇷 Суринам | `sr` | [countries/sr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sr.m3u) | ○ | +| 🇸🇪 Швеция | `se` | [countries/se.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/se.m3u) | ○ | +| 🇨🇭 Швейцария | `ch` | [countries/ch.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ch.m3u) | ○ | +| 🇸🇾 Сирия | `sy` | [countries/sy.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sy.m3u) | ○ | +| 🇹🇼 Тайвань | `tw` | [countries/tw.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tw.m3u) | ○ | +| 🇹🇯 Таджикистан | `tj` | [countries/tj.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tj.m3u) | ○ | +| 🇹🇿 Танзания | `tz` | [countries/tz.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tz.m3u) | ○ | +| 🇹🇭 Таиланд | `th` | [countries/th.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/th.m3u) | ○ | +| 🇹🇬 Того | `tg` | [countries/tg.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tg.m3u) | ○ | +| 🇹🇹 Тринидад и Тобаго | `tt` | [countries/tt.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tt.m3u) | ○ | +| 🇹🇳 Тунис | `tn` | [countries/tn.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tn.m3u) | ○ | +| 🇹🇷 Турция | `tr` | [countries/tr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tr.m3u) | ○ | +| 🇹🇲 Туркменистан | `tm` | [countries/tm.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tm.m3u) | ○ | +| 🇺🇬 Уганда | `ug` | [countries/ug.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ug.m3u) | ○ | +| 🇺🇦 Украина | `ua` | [countries/ua.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ua.m3u) | ☑️ | +| 🇦🇪 ОАЭ | `ae` | [countries/ae.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ae.m3u) | ○ | +| 🇺🇰 Великобритания | `uk` | [countries/uk.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/uk.m3u) | ○ | +| 🇺🇸 Соединенные Штаты | `us` | [countries/us.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/us.m3u) | ○ | +| 🇺🇾 Уругвай | `uy` | [countries/uy.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/uy.m3u) | ○ | +| 🇺🇿 Узбекистан | `uz` | [countries/uz.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/uz.m3u) | ○ | +| 🇻🇦 Ватикан | `va` | [countries/va.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/va.m3u) | ○ | +| 🇻🇪 Венесуэла | `ve` | [countries/ve.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ve.m3u) | ○ | +| 🇻🇳 Вьетнам | `vn` | [countries/vn.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/vn.m3u) | ○ | +| 🇪🇭 Западная Сахара | `eh` | [countries/eh.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/eh.m3u) | ○ | +| 🇾🇪 Йемен | `ye` | [countries/ye.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ye.m3u) | ○ | +| 🇿🇼 Зимбабве | `zw` | [countries/zw.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/zw.m3u) | ○ | + +
+ +## 🛠 Как опубликовать недостающие файлы + +При наличии уже созданных Bunny Storage и Pull Zone обновите локальные скрипты и запустите [команды публикации](BUNNY_ONE_CLICK.md), [зеркало всех стран](BUNNY_ONE_CLICK.md#country-playlists-all-countries-on-your-existing-bunny), [Pluto TV](QIST_PLUTOTV.md) или единый безопасный синхронизатор из [руководства](PUBLIC_RELEASE.md). Ключ вводится только локально в терминале. + +После публикации проверяйте доступность HTTP + `#EXTM3U` и воспроизведение **на телевизоре**, особенно для ссылок `jmp2.uk` и 18+. Старые платные/рекламные заглушки не считаются качественными каналами. + +## 📜 Происхождение и лицензии + +Проект основан на [iptv-org/iptv](https://github.com/iptv-org/iptv). Списки IPTV-org прекращают распространять NSFW с 2024-01-30. Bunny-каталог — отдельная пользовательская сборка форка, **не официальный CDN IPTV-org**. Pluto TV, товарные знаки и оригинальный видеоконтент принадлежат правообладателям. Репозиторий хранит ссылки M3U, не видео. [История наших изменений](FORK_CHANGELOG.md). From a250a786e8f2d0b488918c996bf980b3ef01c666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 18:57:47 +0200 Subject: [PATCH 02/10] feat: versioned machine-readable Bunny playlist manifest with explicit publication states --- catalog/bunny-playlists.json | 2537 ++++++++++++++++++++++++++++++++++ 1 file changed, 2537 insertions(+) create mode 100644 catalog/bunny-playlists.json diff --git a/catalog/bunny-playlists.json b/catalog/bunny-playlists.json new file mode 100644 index 0000000000..83c24ab1b0 --- /dev/null +++ b/catalog/bunny-playlists.json @@ -0,0 +1,2537 @@ +{ + "schema_version": 1, + "generated_from": "iptv-org/iptv PLAYLISTS.md country codes + vbrekher/iptv uploaded Terminal logs", + "as_of": "2026-11-02", + "base_url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/", + "status_legend": { + "user_report_cdn_verified": "CDN confirmed by user-supplied JSON report", + "user_log_uploaded": "Upload shown in user terminal log; not independently checked now", + "publication_unconfirmed": "Expected link; upload and availability not independently verified" + }, + "totals": { + "countries": 188, + "categories": 34, + "featured": 16, + "links": 238 + }, + "items": [ + { + "id": "index-m3u", + "path": "index.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.m3u", + "status": "user_log_uploaded", + "group": "main", + "title": "Полный IPTV", + "description": "11 420 записей на момент первого деплоя; не все проверены" + }, + { + "id": "index-category-m3u", + "path": "index.category.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.category.m3u", + "status": "user_log_uploaded", + "group": "main", + "title": "Все категории (исторический)", + "description": "Изначальная загрузка, может содержать старую группировку" + }, + { + "id": "index-clean-m3u", + "path": "index.clean.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.clean.m3u", + "status": "publication_unconfirmed", + "group": "main", + "title": "Все категории (исправлено)", + "description": "Исправление собрано, новая публикация не подтверждена" + }, + { + "id": "index-country-m3u", + "path": "index.country.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.country.m3u", + "status": "publication_unconfirmed", + "group": "main", + "title": "Все страны вместе", + "description": "Публикация в Bunny ещё не подтверждена" + }, + { + "id": "adult-m3u", + "path": "adult.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/adult.m3u", + "status": "user_log_uploaded", + "group": "adult", + "title": "Adult / XXX (исходный)", + "description": "46 ранее технически открытых HLS; много рекламных/платных заглушек" + }, + { + "id": "adulttest-m3u", + "path": "adulttest.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/adulttest.m3u", + "status": "user_report_cdn_verified", + "group": "adult", + "title": "Adulttest / 18+ (тестовый)", + "description": "141 анонимный HLS прошёл тест; качество не подтверждено" + }, + { + "id": "lampa-lite-m3u", + "path": "lampa-lite.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa-lite.m3u", + "status": "publication_unconfirmed", + "group": "tizen", + "title": "Lampa Lite · 240", + "description": "Первый облегчённый вариант" + }, + { + "id": "lampa-m3u", + "path": "lampa.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa.m3u", + "status": "publication_unconfirmed", + "group": "tizen", + "title": "Lampa · 600", + "description": "Расширенный облегчённый вариант" + }, + { + "id": "lampa-clean-lite-m3u", + "path": "lampa-clean-lite.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa-clean-lite.m3u", + "status": "publication_unconfirmed", + "group": "tizen", + "title": "Lampa Clean Lite · 240", + "description": "Рекомендуется после загрузки" + }, + { + "id": "lampa-clean-m3u", + "path": "lampa-clean.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa-clean.m3u", + "status": "publication_unconfirmed", + "group": "tizen", + "title": "Lampa Clean · 600", + "description": "Рекомендуется после загрузки" + }, + { + "id": "plutotv-m3u", + "path": "plutotv.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv.m3u", + "status": "publication_unconfirmed", + "group": "pluto", + "title": "Pluto TV · все регионы", + "description": "3 016 записей по последнему CI-отчёту" + }, + { + "id": "plutotv-lite-m3u", + "path": "plutotv-lite.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-lite.m3u", + "status": "publication_unconfirmed", + "group": "pluto", + "title": "Pluto TV Lite", + "description": "240 каналов — для Samsung" + }, + { + "id": "plutotv-de-m3u", + "path": "plutotv-de.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-de.m3u", + "status": "publication_unconfirmed", + "group": "pluto", + "title": "Pluto TV Germany", + "description": "200 каналов" + }, + { + "id": "plutotv-erotic-m3u", + "path": "plutotv-erotic.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-erotic.m3u", + "status": "publication_unconfirmed", + "group": "pluto", + "title": "Pluto TV Erotic FAST", + "description": "8 немецких эротических FAST-каналов" + }, + { + "id": "plutotv-us-m3u", + "path": "plutotv-us.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-us.m3u", + "status": "publication_unconfirmed", + "group": "pluto", + "title": "Pluto TV US", + "description": "433 канала" + }, + { + "id": "plutotv-gb-m3u", + "path": "plutotv-gb.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-gb.m3u", + "status": "publication_unconfirmed", + "group": "pluto", + "title": "Pluto TV UK", + "description": "183 канала" + }, + { + "id": "categories-adultiptv-m3u", + "path": "categories/adultiptv.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/adultiptv.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "⚠️ AdultIPTV (старый источник)", + "description": "Legacy рекламный/непроверенный 18+ источник" + }, + { + "id": "categories-animation-m3u", + "path": "categories/animation.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/animation.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🎨 Анимация", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-auto-m3u", + "path": "categories/auto.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/auto.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🚗 Автомобили", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-business-m3u", + "path": "categories/business.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/business.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "💼 Бизнес", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-classic-m3u", + "path": "categories/classic.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/classic.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "📼 Классика", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-comedy-m3u", + "path": "categories/comedy.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/comedy.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "😂 Комедии", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-cooking-m3u", + "path": "categories/cooking.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/cooking.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🍳 Кулинария", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-culture-m3u", + "path": "categories/culture.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/culture.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🏛️ Культура", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-documentary-m3u", + "path": "categories/documentary.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/documentary.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🎞️ Документальные", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-education-m3u", + "path": "categories/education.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/education.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🎓 Образование", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-entertainment-m3u", + "path": "categories/entertainment.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/entertainment.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🎭 Развлечения", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-family-m3u", + "path": "categories/family.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/family.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "👨‍👩‍👧 Семья", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-general-m3u", + "path": "categories/general.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/general.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "📺 Общие", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-interactive-m3u", + "path": "categories/interactive.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/interactive.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🎮 Интерактив", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-kids-m3u", + "path": "categories/kids.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/kids.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🧸 Детские", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-legislative-m3u", + "path": "categories/legislative.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/legislative.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🏛️ Парламент", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-lifestyle-m3u", + "path": "categories/lifestyle.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/lifestyle.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🌿 Образ жизни", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-movies-m3u", + "path": "categories/movies.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/movies.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🎬 Фильмы", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-music-m3u", + "path": "categories/music.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/music.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🎵 Музыка", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-mycamtv-m3u", + "path": "categories/mycamtv.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/mycamtv.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "⚠️ MyCamTV (старый источник)", + "description": "Legacy рекламный/непроверенный 18+ источник" + }, + { + "id": "categories-news-m3u", + "path": "categories/news.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/news.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "📰 Новости", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-other-adult-m3u", + "path": "categories/other-adult.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/other-adult.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🔞 Другие 18+ (старый источник)", + "description": "Legacy рекламный/непроверенный 18+ источник" + }, + { + "id": "categories-outdoor-m3u", + "path": "categories/outdoor.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/outdoor.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🏞️ Природа и активный отдых", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-public-m3u", + "path": "categories/public.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/public.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "📡 Общественные", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-relax-m3u", + "path": "categories/relax.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/relax.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🧘 Релакс", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-religious-m3u", + "path": "categories/religious.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/religious.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "⛪ Религия", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-science-m3u", + "path": "categories/science.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/science.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🔬 Наука", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-series-m3u", + "path": "categories/series.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/series.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🍿 Сериалы", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-shop-m3u", + "path": "categories/shop.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/shop.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🛍️ Покупки", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-sports-m3u", + "path": "categories/sports.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/sports.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "⚽ Спорт", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-travel-m3u", + "path": "categories/travel.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/travel.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "✈️ Путешествия", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-undefined-m3u", + "path": "categories/undefined.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/undefined.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "📁 Без категории", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-weather-m3u", + "path": "categories/weather.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/weather.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🌦️ Погода", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "categories-xxx-m3u", + "path": "categories/xxx.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/xxx.m3u", + "status": "user_log_uploaded", + "group": "category", + "title": "🔞 18+ (XXX)", + "description": "Категория из первой опубликованной сборки" + }, + { + "id": "countries-af-m3u", + "path": "countries/af.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/af.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AF", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇫", + "country_name": "Афганистан" + }, + { + "id": "countries-al-m3u", + "path": "countries/al.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/al.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AL", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇱", + "country_name": "Албания" + }, + { + "id": "countries-dz-m3u", + "path": "countries/dz.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/dz.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "DZ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇩🇿", + "country_name": "Алжир" + }, + { + "id": "countries-ad-m3u", + "path": "countries/ad.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ad.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AD", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇩", + "country_name": "Андорра" + }, + { + "id": "countries-ao-m3u", + "path": "countries/ao.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ao.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AO", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇴", + "country_name": "Ангола" + }, + { + "id": "countries-ag-m3u", + "path": "countries/ag.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ag.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇬", + "country_name": "Антигуа и Барбуда" + }, + { + "id": "countries-ar-m3u", + "path": "countries/ar.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ar.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇷", + "country_name": "Аргентина" + }, + { + "id": "countries-am-m3u", + "path": "countries/am.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/am.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AM", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇲", + "country_name": "Армения" + }, + { + "id": "countries-aw-m3u", + "path": "countries/aw.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/aw.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AW", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇼", + "country_name": "Аруба" + }, + { + "id": "countries-au-m3u", + "path": "countries/au.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/au.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AU", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇺", + "country_name": "Австралия" + }, + { + "id": "countries-at-m3u", + "path": "countries/at.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/at.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AT", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇹", + "country_name": "Австрия" + }, + { + "id": "countries-az-m3u", + "path": "countries/az.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/az.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AZ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇿", + "country_name": "Азербайджан" + }, + { + "id": "countries-bs-m3u", + "path": "countries/bs.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bs.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BS", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇸", + "country_name": "Багамы" + }, + { + "id": "countries-bh-m3u", + "path": "countries/bh.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bh.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BH", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇭", + "country_name": "Бахрейн" + }, + { + "id": "countries-bd-m3u", + "path": "countries/bd.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bd.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BD", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇩", + "country_name": "Бангладеш" + }, + { + "id": "countries-bb-m3u", + "path": "countries/bb.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bb.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BB", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇧", + "country_name": "Барбадос" + }, + { + "id": "countries-by-m3u", + "path": "countries/by.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/by.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BY", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇾", + "country_name": "Беларусь" + }, + { + "id": "countries-be-m3u", + "path": "countries/be.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/be.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇪", + "country_name": "Бельгия" + }, + { + "id": "countries-bz-m3u", + "path": "countries/bz.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bz.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BZ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇿", + "country_name": "Белиз" + }, + { + "id": "countries-bj-m3u", + "path": "countries/bj.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bj.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BJ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇯", + "country_name": "Бенин" + }, + { + "id": "countries-bt-m3u", + "path": "countries/bt.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bt.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BT", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇹", + "country_name": "Бутан" + }, + { + "id": "countries-bo-m3u", + "path": "countries/bo.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bo.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BO", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇴", + "country_name": "Боливия" + }, + { + "id": "countries-bq-m3u", + "path": "countries/bq.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bq.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BQ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇶", + "country_name": "Бонэйр, Синт-Эстатиус и Саба" + }, + { + "id": "countries-ba-m3u", + "path": "countries/ba.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ba.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇦", + "country_name": "Босния и Герцеговина" + }, + { + "id": "countries-br-m3u", + "path": "countries/br.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/br.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇷", + "country_name": "Бразилия" + }, + { + "id": "countries-vg-m3u", + "path": "countries/vg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/vg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "VG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇻🇬", + "country_name": "Виргинские о-ва (Великобритания)" + }, + { + "id": "countries-bn-m3u", + "path": "countries/bn.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bn.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇳", + "country_name": "Бруней" + }, + { + "id": "countries-bg-m3u", + "path": "countries/bg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇬", + "country_name": "Болгария" + }, + { + "id": "countries-bf-m3u", + "path": "countries/bf.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bf.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BF", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇫", + "country_name": "Буркина-Фасо" + }, + { + "id": "countries-bi-m3u", + "path": "countries/bi.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/bi.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "BI", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇧🇮", + "country_name": "Бурунди" + }, + { + "id": "countries-kh-m3u", + "path": "countries/kh.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kh.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "KH", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇰🇭", + "country_name": "Камбоджа" + }, + { + "id": "countries-cm-m3u", + "path": "countries/cm.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cm.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CM", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇲", + "country_name": "Камерун" + }, + { + "id": "countries-ca-m3u", + "path": "countries/ca.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ca.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇦", + "country_name": "Канада" + }, + { + "id": "countries-cv-m3u", + "path": "countries/cv.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cv.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CV", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇻", + "country_name": "Кабо-Верде" + }, + { + "id": "countries-td-m3u", + "path": "countries/td.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/td.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TD", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇩", + "country_name": "Чад" + }, + { + "id": "countries-cl-m3u", + "path": "countries/cl.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cl.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CL", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇱", + "country_name": "Чили" + }, + { + "id": "countries-cn-m3u", + "path": "countries/cn.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cn.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇳", + "country_name": "Китай" + }, + { + "id": "countries-co-m3u", + "path": "countries/co.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/co.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CO", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇴", + "country_name": "Колумбия" + }, + { + "id": "countries-km-m3u", + "path": "countries/km.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/km.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "KM", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇰🇲", + "country_name": "Коморы" + }, + { + "id": "countries-cr-m3u", + "path": "countries/cr.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cr.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇷", + "country_name": "Коста-Рика" + }, + { + "id": "countries-hr-m3u", + "path": "countries/hr.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/hr.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "HR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇭🇷", + "country_name": "Хорватия" + }, + { + "id": "countries-cu-m3u", + "path": "countries/cu.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cu.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CU", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇺", + "country_name": "Куба" + }, + { + "id": "countries-cw-m3u", + "path": "countries/cw.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cw.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CW", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇼", + "country_name": "Кюрасао" + }, + { + "id": "countries-cy-m3u", + "path": "countries/cy.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cy.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CY", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇾", + "country_name": "Кипр" + }, + { + "id": "countries-cz-m3u", + "path": "countries/cz.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cz.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CZ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇿", + "country_name": "Чехия" + }, + { + "id": "countries-cd-m3u", + "path": "countries/cd.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cd.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CD", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇩", + "country_name": "Конго - Киншаса" + }, + { + "id": "countries-dk-m3u", + "path": "countries/dk.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/dk.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "DK", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇩🇰", + "country_name": "Дания" + }, + { + "id": "countries-do-m3u", + "path": "countries/do.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/do.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "DO", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇩🇴", + "country_name": "Доминиканская Республика" + }, + { + "id": "countries-ec-m3u", + "path": "countries/ec.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ec.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "EC", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇪🇨", + "country_name": "Эквадор" + }, + { + "id": "countries-eg-m3u", + "path": "countries/eg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/eg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "EG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇪🇬", + "country_name": "Египет" + }, + { + "id": "countries-sv-m3u", + "path": "countries/sv.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sv.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SV", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇻", + "country_name": "Сальвадор" + }, + { + "id": "countries-gq-m3u", + "path": "countries/gq.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gq.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GQ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇶", + "country_name": "Экваториальная Гвинея" + }, + { + "id": "countries-er-m3u", + "path": "countries/er.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/er.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "ER", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇪🇷", + "country_name": "Эритрея" + }, + { + "id": "countries-ee-m3u", + "path": "countries/ee.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ee.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "EE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇪🇪", + "country_name": "Эстония" + }, + { + "id": "countries-et-m3u", + "path": "countries/et.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/et.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "ET", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇪🇹", + "country_name": "Эфиопия" + }, + { + "id": "countries-fi-m3u", + "path": "countries/fi.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/fi.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "FI", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇫🇮", + "country_name": "Финляндия" + }, + { + "id": "countries-fr-m3u", + "path": "countries/fr.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/fr.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "FR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇫🇷", + "country_name": "Франция" + }, + { + "id": "countries-gf-m3u", + "path": "countries/gf.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gf.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GF", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇫", + "country_name": "Французская Гвиана" + }, + { + "id": "countries-pf-m3u", + "path": "countries/pf.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pf.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PF", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇫", + "country_name": "Французская Полинезия" + }, + { + "id": "countries-gm-m3u", + "path": "countries/gm.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gm.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GM", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇲", + "country_name": "Гамбия" + }, + { + "id": "countries-ge-m3u", + "path": "countries/ge.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ge.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇪", + "country_name": "Грузия" + }, + { + "id": "countries-de-m3u", + "path": "countries/de.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/de.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "DE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇩🇪", + "country_name": "Германия" + }, + { + "id": "countries-gh-m3u", + "path": "countries/gh.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gh.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GH", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇭", + "country_name": "Гана" + }, + { + "id": "countries-gr-m3u", + "path": "countries/gr.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gr.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇷", + "country_name": "Греция" + }, + { + "id": "countries-gp-m3u", + "path": "countries/gp.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gp.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GP", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇵", + "country_name": "Гваделупа" + }, + { + "id": "countries-gu-m3u", + "path": "countries/gu.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gu.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GU", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇺", + "country_name": "Гуам" + }, + { + "id": "countries-gt-m3u", + "path": "countries/gt.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gt.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GT", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇹", + "country_name": "Гватемала" + }, + { + "id": "countries-gg-m3u", + "path": "countries/gg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇬", + "country_name": "Гернси" + }, + { + "id": "countries-gn-m3u", + "path": "countries/gn.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gn.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇳", + "country_name": "Гвинея" + }, + { + "id": "countries-gy-m3u", + "path": "countries/gy.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/gy.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "GY", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇬🇾", + "country_name": "Гайана" + }, + { + "id": "countries-ht-m3u", + "path": "countries/ht.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ht.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "HT", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇭🇹", + "country_name": "Гаити" + }, + { + "id": "countries-hn-m3u", + "path": "countries/hn.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/hn.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "HN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇭🇳", + "country_name": "Гондурас" + }, + { + "id": "countries-hk-m3u", + "path": "countries/hk.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/hk.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "HK", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇭🇰", + "country_name": "Гонконг" + }, + { + "id": "countries-hu-m3u", + "path": "countries/hu.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/hu.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "HU", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇭🇺", + "country_name": "Венгрия" + }, + { + "id": "countries-is-m3u", + "path": "countries/is.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/is.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "IS", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇮🇸", + "country_name": "Исландия" + }, + { + "id": "countries-in-m3u", + "path": "countries/in.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/in.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "IN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇮🇳", + "country_name": "Индия" + }, + { + "id": "countries-id-m3u", + "path": "countries/id.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/id.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "ID", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇮🇩", + "country_name": "Индонезия" + }, + { + "id": "countries-ir-m3u", + "path": "countries/ir.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ir.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "IR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇮🇷", + "country_name": "Иран" + }, + { + "id": "countries-iq-m3u", + "path": "countries/iq.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/iq.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "IQ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇮🇶", + "country_name": "Ирак" + }, + { + "id": "countries-ie-m3u", + "path": "countries/ie.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ie.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "IE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇮🇪", + "country_name": "Ирландия" + }, + { + "id": "countries-il-m3u", + "path": "countries/il.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/il.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "IL", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇮🇱", + "country_name": "Израиль" + }, + { + "id": "countries-it-m3u", + "path": "countries/it.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/it.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "IT", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇮🇹", + "country_name": "Италия" + }, + { + "id": "countries-ci-m3u", + "path": "countries/ci.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ci.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CI", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇮", + "country_name": "Кот-д’Ивуар" + }, + { + "id": "countries-jm-m3u", + "path": "countries/jm.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/jm.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "JM", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇯🇲", + "country_name": "Ямайка" + }, + { + "id": "countries-jp-m3u", + "path": "countries/jp.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/jp.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "JP", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇯🇵", + "country_name": "Япония" + }, + { + "id": "countries-jo-m3u", + "path": "countries/jo.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/jo.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "JO", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇯🇴", + "country_name": "Иордания" + }, + { + "id": "countries-kz-m3u", + "path": "countries/kz.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kz.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "KZ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇰🇿", + "country_name": "Казахстан" + }, + { + "id": "countries-ke-m3u", + "path": "countries/ke.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ke.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "KE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇰🇪", + "country_name": "Кения" + }, + { + "id": "countries-xk-m3u", + "path": "countries/xk.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/xk.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "XK", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇽🇰", + "country_name": "Косово" + }, + { + "id": "countries-kw-m3u", + "path": "countries/kw.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kw.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "KW", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇰🇼", + "country_name": "Кувейт" + }, + { + "id": "countries-kg-m3u", + "path": "countries/kg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "KG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇰🇬", + "country_name": "Киргизия" + }, + { + "id": "countries-la-m3u", + "path": "countries/la.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/la.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "LA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇱🇦", + "country_name": "Лаос" + }, + { + "id": "countries-lv-m3u", + "path": "countries/lv.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lv.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "LV", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇱🇻", + "country_name": "Латвия" + }, + { + "id": "countries-lb-m3u", + "path": "countries/lb.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lb.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "LB", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇱🇧", + "country_name": "Ливан" + }, + { + "id": "countries-ly-m3u", + "path": "countries/ly.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ly.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "LY", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇱🇾", + "country_name": "Ливия" + }, + { + "id": "countries-li-m3u", + "path": "countries/li.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/li.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "LI", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇱🇮", + "country_name": "Лихтенштейн" + }, + { + "id": "countries-lt-m3u", + "path": "countries/lt.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lt.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "LT", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇱🇹", + "country_name": "Литва" + }, + { + "id": "countries-lu-m3u", + "path": "countries/lu.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lu.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "LU", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇱🇺", + "country_name": "Люксембург" + }, + { + "id": "countries-mo-m3u", + "path": "countries/mo.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mo.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MO", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇴", + "country_name": "Макао" + }, + { + "id": "countries-mg-m3u", + "path": "countries/mg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇬", + "country_name": "Мадагаскар" + }, + { + "id": "countries-my-m3u", + "path": "countries/my.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/my.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MY", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇾", + "country_name": "Малайзия" + }, + { + "id": "countries-mv-m3u", + "path": "countries/mv.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mv.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MV", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇻", + "country_name": "Мальдивы" + }, + { + "id": "countries-ml-m3u", + "path": "countries/ml.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ml.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "ML", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇱", + "country_name": "Мали" + }, + { + "id": "countries-mt-m3u", + "path": "countries/mt.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mt.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MT", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇹", + "country_name": "Мальта" + }, + { + "id": "countries-mq-m3u", + "path": "countries/mq.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mq.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MQ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇶", + "country_name": "Мартиника" + }, + { + "id": "countries-mr-m3u", + "path": "countries/mr.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mr.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇷", + "country_name": "Мавритания" + }, + { + "id": "countries-mu-m3u", + "path": "countries/mu.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mu.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MU", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇺", + "country_name": "Маврикий" + }, + { + "id": "countries-mx-m3u", + "path": "countries/mx.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mx.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MX", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇽", + "country_name": "Мексика" + }, + { + "id": "countries-md-m3u", + "path": "countries/md.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/md.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MD", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇩", + "country_name": "Молдова" + }, + { + "id": "countries-mc-m3u", + "path": "countries/mc.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mc.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MC", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇨", + "country_name": "Монако" + }, + { + "id": "countries-mn-m3u", + "path": "countries/mn.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mn.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇳", + "country_name": "Монголия" + }, + { + "id": "countries-me-m3u", + "path": "countries/me.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/me.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "ME", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇪", + "country_name": "Черногория" + }, + { + "id": "countries-ma-m3u", + "path": "countries/ma.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ma.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇦", + "country_name": "Марокко" + }, + { + "id": "countries-mz-m3u", + "path": "countries/mz.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mz.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MZ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇿", + "country_name": "Мозамбик" + }, + { + "id": "countries-mm-m3u", + "path": "countries/mm.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mm.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MM", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇲", + "country_name": "Мьянма (Бирма)" + }, + { + "id": "countries-na-m3u", + "path": "countries/na.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/na.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "NA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇳🇦", + "country_name": "Намибия" + }, + { + "id": "countries-np-m3u", + "path": "countries/np.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/np.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "NP", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇳🇵", + "country_name": "Непал" + }, + { + "id": "countries-nl-m3u", + "path": "countries/nl.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/nl.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "NL", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇳🇱", + "country_name": "Нидерланды" + }, + { + "id": "countries-nc-m3u", + "path": "countries/nc.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/nc.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "NC", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇳🇨", + "country_name": "Новая Каледония" + }, + { + "id": "countries-nz-m3u", + "path": "countries/nz.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/nz.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "NZ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇳🇿", + "country_name": "Новая Зеландия" + }, + { + "id": "countries-ni-m3u", + "path": "countries/ni.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ni.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "NI", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇳🇮", + "country_name": "Никарагуа" + }, + { + "id": "countries-ne-m3u", + "path": "countries/ne.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ne.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "NE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇳🇪", + "country_name": "Нигер" + }, + { + "id": "countries-ng-m3u", + "path": "countries/ng.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ng.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "NG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇳🇬", + "country_name": "Нигерия" + }, + { + "id": "countries-kp-m3u", + "path": "countries/kp.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kp.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "KP", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇰🇵", + "country_name": "КНДР" + }, + { + "id": "countries-mk-m3u", + "path": "countries/mk.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/mk.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "MK", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇲🇰", + "country_name": "Северная Македония" + }, + { + "id": "countries-no-m3u", + "path": "countries/no.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/no.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "NO", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇳🇴", + "country_name": "Норвегия" + }, + { + "id": "countries-om-m3u", + "path": "countries/om.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/om.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "OM", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇴🇲", + "country_name": "Оман" + }, + { + "id": "countries-pk-m3u", + "path": "countries/pk.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pk.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PK", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇰", + "country_name": "Пакистан" + }, + { + "id": "countries-ps-m3u", + "path": "countries/ps.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ps.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PS", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇸", + "country_name": "Палестина" + }, + { + "id": "countries-pa-m3u", + "path": "countries/pa.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pa.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇦", + "country_name": "Панама" + }, + { + "id": "countries-pg-m3u", + "path": "countries/pg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇬", + "country_name": "Папуа — Новая Гвинея" + }, + { + "id": "countries-py-m3u", + "path": "countries/py.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/py.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PY", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇾", + "country_name": "Парагвай" + }, + { + "id": "countries-pe-m3u", + "path": "countries/pe.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pe.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇪", + "country_name": "Перу" + }, + { + "id": "countries-ph-m3u", + "path": "countries/ph.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ph.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PH", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇭", + "country_name": "Филиппины" + }, + { + "id": "countries-pl-m3u", + "path": "countries/pl.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pl.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PL", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇱", + "country_name": "Польша" + }, + { + "id": "countries-pt-m3u", + "path": "countries/pt.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pt.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PT", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇹", + "country_name": "Португалия" + }, + { + "id": "countries-pr-m3u", + "path": "countries/pr.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pr.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "PR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇵🇷", + "country_name": "Пуэрто-Рико" + }, + { + "id": "countries-qa-m3u", + "path": "countries/qa.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/qa.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "QA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇶🇦", + "country_name": "Катар" + }, + { + "id": "countries-cg-m3u", + "path": "countries/cg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/cg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇬", + "country_name": "Конго - Браззавиль" + }, + { + "id": "countries-re-m3u", + "path": "countries/re.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/re.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "RE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇷🇪", + "country_name": "Реюньон" + }, + { + "id": "countries-ro-m3u", + "path": "countries/ro.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ro.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "RO", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇷🇴", + "country_name": "Румыния" + }, + { + "id": "countries-ru-m3u", + "path": "countries/ru.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ru.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "RU", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇷🇺", + "country_name": "Россия" + }, + { + "id": "countries-rw-m3u", + "path": "countries/rw.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/rw.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "RW", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇷🇼", + "country_name": "Руанда" + }, + { + "id": "countries-kn-m3u", + "path": "countries/kn.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kn.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "KN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇰🇳", + "country_name": "Сент-Китс и Невис" + }, + { + "id": "countries-lc-m3u", + "path": "countries/lc.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lc.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "LC", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇱🇨", + "country_name": "Сент-Люсия" + }, + { + "id": "countries-vc-m3u", + "path": "countries/vc.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/vc.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "VC", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇻🇨", + "country_name": "Сент-Винсент и Гренадины" + }, + { + "id": "countries-ws-m3u", + "path": "countries/ws.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ws.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "WS", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇼🇸", + "country_name": "Самоа" + }, + { + "id": "countries-sm-m3u", + "path": "countries/sm.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sm.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SM", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇲", + "country_name": "Сан-Марино" + }, + { + "id": "countries-sa-m3u", + "path": "countries/sa.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sa.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇦", + "country_name": "Саудовская Аравия" + }, + { + "id": "countries-sn-m3u", + "path": "countries/sn.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sn.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇳", + "country_name": "Сенегал" + }, + { + "id": "countries-rs-m3u", + "path": "countries/rs.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/rs.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "RS", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇷🇸", + "country_name": "Сербия" + }, + { + "id": "countries-sl-m3u", + "path": "countries/sl.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sl.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SL", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇱", + "country_name": "Сьерра-Леоне" + }, + { + "id": "countries-sg-m3u", + "path": "countries/sg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇬", + "country_name": "Сингапур" + }, + { + "id": "countries-sx-m3u", + "path": "countries/sx.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sx.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SX", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇽", + "country_name": "Синт-Мартен" + }, + { + "id": "countries-sk-m3u", + "path": "countries/sk.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sk.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SK", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇰", + "country_name": "Словакия" + }, + { + "id": "countries-si-m3u", + "path": "countries/si.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/si.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SI", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇮", + "country_name": "Словения" + }, + { + "id": "countries-so-m3u", + "path": "countries/so.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/so.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SO", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇴", + "country_name": "Сомали" + }, + { + "id": "countries-za-m3u", + "path": "countries/za.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/za.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "ZA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇿🇦", + "country_name": "Южно-Африканская Республика" + }, + { + "id": "countries-kr-m3u", + "path": "countries/kr.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/kr.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "KR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇰🇷", + "country_name": "Республика Корея" + }, + { + "id": "countries-es-m3u", + "path": "countries/es.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/es.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "ES", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇪🇸", + "country_name": "Испания" + }, + { + "id": "countries-lk-m3u", + "path": "countries/lk.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/lk.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "LK", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇱🇰", + "country_name": "Шри-Ланка" + }, + { + "id": "countries-sd-m3u", + "path": "countries/sd.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sd.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SD", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇩", + "country_name": "Судан" + }, + { + "id": "countries-sr-m3u", + "path": "countries/sr.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sr.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇷", + "country_name": "Суринам" + }, + { + "id": "countries-se-m3u", + "path": "countries/se.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/se.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇪", + "country_name": "Швеция" + }, + { + "id": "countries-ch-m3u", + "path": "countries/ch.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ch.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "CH", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇨🇭", + "country_name": "Швейцария" + }, + { + "id": "countries-sy-m3u", + "path": "countries/sy.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/sy.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "SY", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇸🇾", + "country_name": "Сирия" + }, + { + "id": "countries-tw-m3u", + "path": "countries/tw.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tw.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TW", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇼", + "country_name": "Тайвань" + }, + { + "id": "countries-tj-m3u", + "path": "countries/tj.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tj.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TJ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇯", + "country_name": "Таджикистан" + }, + { + "id": "countries-tz-m3u", + "path": "countries/tz.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tz.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TZ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇿", + "country_name": "Танзания" + }, + { + "id": "countries-th-m3u", + "path": "countries/th.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/th.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TH", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇭", + "country_name": "Таиланд" + }, + { + "id": "countries-tg-m3u", + "path": "countries/tg.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tg.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇬", + "country_name": "Того" + }, + { + "id": "countries-tt-m3u", + "path": "countries/tt.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tt.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TT", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇹", + "country_name": "Тринидад и Тобаго" + }, + { + "id": "countries-tn-m3u", + "path": "countries/tn.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tn.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇳", + "country_name": "Тунис" + }, + { + "id": "countries-tr-m3u", + "path": "countries/tr.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tr.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TR", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇷", + "country_name": "Турция" + }, + { + "id": "countries-tm-m3u", + "path": "countries/tm.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/tm.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "TM", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇹🇲", + "country_name": "Туркменистан" + }, + { + "id": "countries-ug-m3u", + "path": "countries/ug.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ug.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "UG", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇺🇬", + "country_name": "Уганда" + }, + { + "id": "countries-ua-m3u", + "path": "countries/ua.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ua.m3u", + "status": "user_log_uploaded", + "group": "country", + "title": "UA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇺🇦", + "country_name": "Украина" + }, + { + "id": "countries-ae-m3u", + "path": "countries/ae.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ae.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "AE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇦🇪", + "country_name": "ОАЭ" + }, + { + "id": "countries-uk-m3u", + "path": "countries/uk.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/uk.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "UK", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇺🇰", + "country_name": "Великобритания" + }, + { + "id": "countries-us-m3u", + "path": "countries/us.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/us.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "US", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇺🇸", + "country_name": "Соединенные Штаты" + }, + { + "id": "countries-uy-m3u", + "path": "countries/uy.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/uy.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "UY", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇺🇾", + "country_name": "Уругвай" + }, + { + "id": "countries-uz-m3u", + "path": "countries/uz.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/uz.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "UZ", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇺🇿", + "country_name": "Узбекистан" + }, + { + "id": "countries-va-m3u", + "path": "countries/va.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/va.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "VA", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇻🇦", + "country_name": "Ватикан" + }, + { + "id": "countries-ve-m3u", + "path": "countries/ve.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ve.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "VE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇻🇪", + "country_name": "Венесуэла" + }, + { + "id": "countries-vn-m3u", + "path": "countries/vn.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/vn.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "VN", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇻🇳", + "country_name": "Вьетнам" + }, + { + "id": "countries-eh-m3u", + "path": "countries/eh.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/eh.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "EH", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇪🇭", + "country_name": "Западная Сахара" + }, + { + "id": "countries-ye-m3u", + "path": "countries/ye.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ye.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "YE", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇾🇪", + "country_name": "Йемен" + }, + { + "id": "countries-zw-m3u", + "path": "countries/zw.m3u", + "url": "https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/zw.m3u", + "status": "publication_unconfirmed", + "group": "country", + "title": "ZW", + "description": "Официальный страновой индекс IPTV-org; воспроизведение не проверено", + "flag": "🇿🇼", + "country_name": "Зимбабве" + } + ] +} From 82999098b7c14081ffadea6ab7bc6a27d8556d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 18:59:08 +0200 Subject: [PATCH 03/10] feat: publish missing country, Pluto and Tizen clean M3U to existing Bunny with one secret prompt --- tools/publish_public_bunny.py | 269 ++++++++++++++++++++++++++++++++++ 1 file changed, 269 insertions(+) create mode 100644 tools/publish_public_bunny.py diff --git a/tools/publish_public_bunny.py b/tools/publish_public_bunny.py new file mode 100644 index 0000000000..7d90928a10 --- /dev/null +++ b/tools/publish_public_bunny.py @@ -0,0 +1,269 @@ +#!/usr/bin/env python3 +"""Publish missing country/Pluto/clean-Lampa M3Us to an EXISTING Bunny zone. + +One hidden Bunny Account API Key prompt, one existing resource identity. +No new zones, stream probing, credential persistence, media proxy or DRM work. +""" +from __future__ import annotations + +import argparse +import getpass +import json +import shutil +import sys +import tempfile +import time +from concurrent.futures import ThreadPoolExecutor, as_completed +from pathlib import Path +from urllib.error import HTTPError, URLError +from urllib.request import Request, urlopen + +import auto_bunny_setup as bunny +import lampa_category_fix as cleaner +import plutotv_bunny as pluto +import sync_bunny_countries as countries + +OUTPUT = Path("dist/public-hub") + + +def existing_api(): + if not bunny.STATE.is_file(): + raise RuntimeError("Missing original .bunny-iptv-state.json: cd ~/iptv-bunny first") + state = bunny.load_state(bunny.STATE) + key = getpass.getpass("Bunny Account API Key (hidden): ") + if not key: + raise RuntimeError("Bunny Account API Key is empty") + api = bunny.BunnyAPI(key) + del key + # Absolutely forbid new paid resource creation. + zone_name, pull_name = state["name"] + "-storage", state["name"] + "-cdn" + if bunny.named(bunny.list_zones(api, "storagezone"), zone_name) is None: + raise RuntimeError("Existing Storage Zone not found; refusing zone creation") + if bunny.named(bunny.list_zones(api, "pullzone"), pull_name) is None: + raise RuntimeError("Existing Pull Zone not found; refusing zone creation") + return api, state, bunny.storage_zone(api, state) + + +def get_existing_pull(api, state, storage): + return bunny.pull_zone(api, state, storage["id"]) + + +def collect_countries(target: Path, workers: int = 8, read_index=None, fetch=None): + """Mirror healthy country sources, record unavailable entries explicitly. + + Unlike the old all-or-nothing importer, one historical 404 does not + prevent publishing the other 187 country playlists. It never claims a + partial mirror is complete and never invents a missing M3U. + """ + read_index = read_index or countries.fetch_index_markdown + fetch = fetch or countries.fetch_m3u + codes = countries.extract_country_codes(read_index()) + target.mkdir(parents=True, exist_ok=True) + folder = target / "countries" + folder.mkdir(exist_ok=True) + available: dict[str, bytes] = {} + missing: dict[str, str] = {} + + def load_one(code): + # Bounded attempts for CDN/transient failures, no fabricated content. + for attempt in range(3): + try: + return fetch(countries.COUNTRY_BASE + code + ".m3u") + except (HTTPError, URLError, TimeoutError, OSError) as exc: + reason = type(exc).__name__ + if attempt >= 2 or (isinstance(exc, HTTPError) and exc.code == 404): + raise RuntimeError(reason) from None + time.sleep(1 + attempt) + raise RuntimeError("UnknownError") + + with ThreadPoolExecutor(max_workers=workers) as pool: + futures = {pool.submit(load_one, code): code for code in codes} + for future in as_completed(futures): + code = futures[future] + try: + data = future.result() + if not data.startswith(b"#EXTM3U"): + raise ValueError("not_m3u") + available[code] = data + except Exception as exc: + missing[code] = type(exc).__name__ if type(exc).__name__ != "RuntimeError" else str(exc) + if len(available) < 100 or "ua" not in available: + raise RuntimeError("Insufficient countries downloaded; aborting country upload safely") + for code, blob in sorted(available.items()): + (folder / (code + ".m3u")).write_bytes(blob) + # Grouped playlist is only a bonus; no fake success when missing. + try: + grouped = fetch(countries.GROUPED_URL) + if grouped.startswith(b"#EXTM3U"): + (target / "index.country.m3u").write_bytes(grouped) + else: + missing["index.country"] = "not_m3u" + except (HTTPError, URLError, TimeoutError, OSError, ValueError) as exc: + missing["index.country"] = type(exc).__name__ + report = { + "expected": len(codes), "published_ready": len(available), + "missing": dict(sorted(missing.items())), + "complete": len(available) == len(codes) and "index.country" not in missing, + "codes": sorted(available), + "note": "HTTP HLS playback for country TV channels not tested" + } + print("COUNTRIES_PREPARED", len(available), "/", len(codes)) + if missing: + print("COUNTRIES_MISSING", json.dumps(report["missing"], ensure_ascii=False)) + return report + + +def prepare_clean(target: Path): + local = bunny.READY if (bunny.READY / "index.m3u").is_file() else bunny.DEST + if not (local / "index.m3u").is_file() or not (local / "adult.m3u").is_file(): + print("CLEAN_SKIPPED: local index.m3u/adult.m3u absent") + return None + stage = target / "clean" + cleaner.build(local, stage) + # We intentionally don't reupload a huge legacy combined catalog + # unless the user requested it. New clean links are the upgrade. + publish = target / "clean-upload" + publish.mkdir(exist_ok=True) + for name in ("index.clean.m3u", "lampa-clean-lite.m3u", "lampa-clean.m3u"): + shutil.copy2(stage / name, publish / name) + return publish + + +def prepare_pluto(target: Path): + stage = target / "pluto" + report = pluto.create(pluto.download(pluto.ALL), pluto.download(pluto.GERMANY), stage) + return stage, report + + +def verify_cdn(host: str, filename: str): + base = f"https://{host}/iptv/{filename}" + req = Request(base + "?catalog_check=" + str(time.time_ns()), + headers={"User-Agent": "IPTV-Bunny-Public-Hub/1.0"}) + try: + with urlopen(req, timeout=18) as response: + return response.status == 200 and response.read(8).startswith(b"#EXTM3U") + except (HTTPError, URLError, TimeoutError, OSError): + return False + + +def self_test(): + import tempfile + codes = ["ua", "us"] + [ + chr(97 + n // 26) + chr(97 + n % 26) for n in range(130) + ] + md = " ".join(countries.COUNTRY_BASE + c + ".m3u" for c in codes) + def mock_fetch(url): + if url.endswith("/mr.m3u"): + raise HTTPError(url, 404, "Not found", None, None) + return b"#EXTM3U\n#EXTINF:-1,Example\nhttps://example.com/live.m3u8\n" + with tempfile.TemporaryDirectory() as tmp: + staged = Path(tmp) / "countries-upload" + r = collect_countries(staged, read_index=lambda: md, fetch=mock_fetch) + assert r["complete"] and r["expected"] == len(r["codes"]) + assert (staged / "countries/ua.m3u").exists() + assert (staged / "index.country.m3u").exists() + # One missing country should not suppress hundreds of healthy files. + md += " " + countries.COUNTRY_BASE + "mr.m3u" + r = collect_countries(staged, read_index=lambda: md, fetch=mock_fetch) + assert not r["complete"] and r["missing"]["mr"] == "HTTPError" + assert r["published_ready"] >= 100 + print("PUBLIC_HUB_OFFLINE_TEST_PASS") + + +def run(args): + if args.self_test: + self_test() + return 0 + jobs = [x for x in ("countries", "pluto", "clean") if not args.only or x in args.only] + if not jobs: + raise RuntimeError("No jobs selected") + + OUTPUT.mkdir(parents=True, exist_ok=True) + with tempfile.TemporaryDirectory(prefix="iptv-public-hub-") as temp: + stages = {} + status = {} + location = Path(temp) + # Source data prepared first. A failure in one optional package does + # not erase existing sources or block the other packages. + for job in jobs: + try: + if job == "countries": + stage = location / "countries-upload" + status["countries"] = collect_countries(stage) + stages["countries"] = stage + elif job == "pluto": + stage, report = prepare_pluto(location) + stages["pluto"] = stage + status["pluto"] = report + elif job == "clean": + stage = prepare_clean(location) + if stage is not None: + stages["clean"] = stage + status["clean"] = {"files": 3} + else: + status["clean"] = {"skipped": "local_index_missing"} + except Exception as exc: + status[job] = {"failed": type(exc).__name__, "detail": str(exc)[:200]} + print("PREPARE_FAILED", job, type(exc).__name__, str(exc)[:200]) + if not stages: + raise RuntimeError("No package prepared; nothing to publish") + if args.dry_run: + print("DRY_RUN: no Bunny API call, no upload.") + print(json.dumps(status, ensure_ascii=False, indent=2)) + return 0 + api, state, storage = existing_api() + pull = get_existing_pull(api, state, storage) + base = "https://" + pull["hostname"] + "/iptv/" + published_files = [] + for name, stage in stages.items(): + print("PUBLISHING", name, "to EXISTING Bunny zone") + try: + # Use existing Storage Zone write password and bounded retries. + bunny.publish(api, state, storage, pull, stage) + paths = [p.relative_to(stage).as_posix() for p in stage.rglob("*") if p.is_file()] + published_files.extend(paths) + status[name]["uploaded"] = len(paths) + except Exception as exc: + status[name]["upload_failed"] = type(exc).__name__ + print("UPLOAD_FAILED", name, type(exc).__name__, str(exc)[:200]) + report = {"playlist_base": base, + "published": sorted(set(published_files)), + "results": status, + "cdn_checks": { + p: verify_cdn(pull["hostname"], p) + for p in ("plutotv-lite.m3u", "plutotv-de.m3u", + "plutotv-erotic.m3u", "lampa-clean-lite.m3u", + "countries/ua.m3u") + if p in published_files + }, + "checked_at_unix": int(time.time()), + "video_playback_checked": False} + OUTPUT.joinpath("publication-report.json").write_text( + json.dumps(report, ensure_ascii=False, indent=2) + "\n") + print("\nPUBLIC_HUB_UPLOAD_SUMMARY") + print("Files published:", len(set(published_files))) + for p in sorted(set(published_files)): + if p.startswith(("plutotv", "lampa-clean", "index.clean")) or p in ("countries/ua.m3u", "countries/us.m3u", "index.country.m3u"): + print(base + p) + print("CDN_CHECKS:", json.dumps(report["cdn_checks"])) + print("LOCAL_REPORT:", OUTPUT / "publication-report.json") + if any(v.get("upload_failed") or v.get("failed") for v in status.values()): + return 2 + return 0 + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--dry-run", action="store_true", help="Prepare M3U locally; never connect to Bunny") + parser.add_argument("--only", choices=("countries", "pluto", "clean"), nargs="+", help="Publish selected packages") + parser.add_argument("--self-test", action="store_true") + args = parser.parse_args() + try: + return run(args) + except (RuntimeError, ValueError, HTTPError, URLError, OSError, EOFError) as exc: + print("ERROR:", type(exc).__name__, str(exc)[:400], file=sys.stderr) + return 1 + + +if __name__ == "__main__": + raise SystemExit(main()) From 2e070180640551557189b26571e9fcc842dc7696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 19:01:07 +0200 Subject: [PATCH 04/10] docs: historical fork changes, PR provenance and evidence boundaries --- docs/FORK_CHANGELOG.md | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 docs/FORK_CHANGELOG.md diff --git a/docs/FORK_CHANGELOG.md b/docs/FORK_CHANGELOG.md new file mode 100644 index 0000000000..13a3965bc1 --- /dev/null +++ b/docs/FORK_CHANGELOG.md @@ -0,0 +1,44 @@ +# IPTV Bunny Public Hub — история изменений + +**Дата оформления витрины:** 2026-11-02 +**Форк:** https://github.com/vbrekher/iptv +**Оригинальный проект:** https://github.com/iptv-org/iptv + +## Девять объединённых PR + +| Pull Request | Что мы изменили | +|---|---| +| [#1 · Personal Bunny Playlists](https://github.com/vbrekher/iptv/pull/1) | Отдельная Python-сборка M3U, исторические 18+ кандидаты, категории, Bunny Storage | +| [#2 · Free HLS Filter](https://github.com/vbrekher/iptv/pull/2) | Анонимная проверка HLS-манифеста и небольшого видеофрагмента | +| [#3 · Bunny One-Click](https://github.com/vbrekher/iptv/pull/3) | Создание Storage Zone и Pull Zone, один скрытый Account API Key, авторазвёртывание | +| [#4 · Storage 401 Repair](https://github.com/vbrekher/iptv/pull/4) | Корректный регион и writable пароль Bunny Storage, retry и продолжение загрузки | +| [#5 · All Countries](https://github.com/vbrekher/iptv/pull/5) | Страновые M3U из официального списка IPTV-org, grouped index, countries-only | +| [#6 · Samsung Tizen Lite](https://github.com/vbrekher/iptv/pull/6) | Облегчённые M3U на 240 и 600 записей | +| [#7 · Clean Groups](https://github.com/vbrekher/iptv/pull/7) | Одна нормальная категория на телеканал, устранение комбинаций Family;Series и др. | +| [#8 · Adulttest](https://github.com/vbrekher/iptv/pull/8) | Исследование 16 источников, фильтрация, логотипы, отдельный тестовый adulttest.m3u | +| [#9 · Pluto TV & qist](https://github.com/vbrekher/iptv/pull/9) | Pluto all/DE/US/GB/lite/erotic FAST, изучение qist/tvbox | + +## Public Playlist Hub + +- [238 прямых ссылок M3U](BUNNY_PLAYLISTS.md): 16 основных и специальных плейлистов, 34 категории, 188 стран с флагами. +- [Машиночитаемый JSON-каталог](../catalog/bunny-playlists.json): URL, описание, тип и статус каждой ссылки. +- [Один запуск публикации в существующий Bunny](PUBLIC_RELEASE.md): один скрытый ввод ключа, без пересоздания зон, без повторной проверки adulttest. +- Новая главная страница GitHub и проверка каталога в CI. + +## Что реально подтверждено + +В предыдущем терминальном отчёте пользователя опубликованы 39 M3U/каталожных файлов: большой index.m3u, adult.m3u, countries/ua.m3u, отдельные категории. CDN index отмечен VERIFIED. В отдельном пользовательском отчёте Adulttest — 682 URL-кандидата, 141 технически доступный HLS, 541 отклонён, adulttest_uploaded=true и cdn_verified=true. + +GitHub CI построил Pluto ALL 3016 записей, Germany 200, Erotic FAST 8, Lite 240, US 433 и GB 183. **Это сборка данных в CI, не доказательство загрузки Pluto на Bunny или воспроизведения каналов на Samsung.** + +Не подтверждены все 188 стран на Bunny, наличие чистых Tizen-плейлистов после фикса категорий, разрешение правообладателей на публичное распространение потоков и реальное качество HD. + +Наблюдение пользователя: многие потоки возвращали корректный HLS, но показывали заставку о платной подписке. Поэтому HTTP 200 / OPEN не приравнивается к доступному бесплатному телевидению. Ошибка CUB относится к отдельному облачному действию Lampa. + +## Техническая архитектура + +Оригинальный IPTV-org остаётся базой. Наши скрипты расположены в папке [tools/](../tools/): personal_bunny_playlists.py, free_hls_filter.py, auto_bunny_setup.py, sync_bunny_countries.py, build_lampa_lite.py, lampa_category_fix.py, adulttest.py, plutotv_bunny.py, publish_public_bunny.py. + +Bunny Storage и CDN хранят/выдают **только M3U и текстовые отчёты**. HLS-видео идёт от третьих сторон. Наличие ссылки не снимает лицензионные, DRM или географические ограничения. + +Исходная лицензия [CC0](../LICENSE) сохраняется. На логотипы, товарные знаки и вещание сторонних каналов могут распространяться отдельные права. From 273b4ba14e8070910e470fe6d264f83ad37c0e84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 19:01:10 +0200 Subject: [PATCH 05/10] docs: one-command publish missing country, Pluto and Samsung M3U to existing Bunny --- docs/PUBLIC_RELEASE.md | 79 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 docs/PUBLIC_RELEASE.md diff --git a/docs/PUBLIC_RELEASE.md b/docs/PUBLIC_RELEASE.md new file mode 100644 index 0000000000..13d0f4027b --- /dev/null +++ b/docs/PUBLIC_RELEASE.md @@ -0,0 +1,79 @@ +# 🚀 Публикация полного IPTV-каталога на Bunny + +**Это инструкция для владельца уже созданных зон, не для создания новых.** + +- Storage Zone: lampa-iptv-875323ab-storage +- Pull Zone: lampa-iptv-875323ab-cdn +- CDN: https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/ + +GitHub README содержит открытые M3U-адреса, но **сами новые файлы не появятся на Bunny до запуска**. Ключ хранится только у владельца. + +## Одна команда для Mac + +Используй ту же папку ~/iptv-bunny, в которой была первая загрузка: + +~~~bash +( + set -euo pipefail + cd "$HOME/iptv-bunny" + for file in \ + personal_bunny_playlists.py \ + free_hls_filter.py \ + sync_bunny_countries.py \ + build_lampa_lite.py \ + lampa_category_fix.py \ + auto_bunny_setup.py \ + plutotv_bunny.py \ + publish_public_bunny.py + do + curl -fsSL --retry 3 \ + "https://raw.githubusercontent.com/vbrekher/iptv/master/tools/$file" \ + -o "$file" + done + python3 publish_public_bunny.py --self-test + python3 publish_public_bunny.py +) +~~~ + +Терминал попросит Bunny Account API Key (hidden). **Не пересылай ключ**. Он не публикуется и не записывается в файл. + +### Что произойдёт + +1. Сбор списка 188 стран из IPTV-org. Если один M3U не доступен, он записывается в отчёт и **не считается загруженным**. Остальные страны продолжают обрабатываться. +2. Генерация шести Pluto TV M3U из публичных каталогов BuddyChewChew. +3. Если на Mac есть ранее сохранённые index.m3u и adult.m3u, создание исправленных Tizen/Category-файлов. +4. Проверка **существующих** Storage/Pull Zone и скрытый ввод одного Account API Key. +5. Загрузка только недостающих типов файлов: countries, Pluto, новые clean-плейлисты. **Не трогает adulttest.m3u, adult.m3u, прежние категории и исходный index.m3u.** +6. Отчёт на Mac: dist/public-hub/publication-report.json с опубликованными именами и результатом CDN_CHECK. + +## Другие режимы + +| Режим | Команда | +|---|---| +| Только подготовка, без Bunny | python3 publish_public_bunny.py --dry-run | +| Только все доступные страны | python3 publish_public_bunny.py --only countries | +| Только Pluto | python3 publish_public_bunny.py --only pluto | +| Только чистые Samsung-плейлисты | python3 publish_public_bunny.py --only clean | +| Локальные тесты | python3 publish_public_bunny.py --self-test | + +## Рекомендуемые ссылки после публикации + +| Название | URL | +|---|---| +| Samsung Clean Lite | https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa-clean-lite.m3u | +| Pluto Lite | https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-lite.m3u | +| Pluto Germany | https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-de.m3u | +| Pluto Erotic FAST | https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-erotic.m3u | +| Украина | https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ua.m3u | +| Все страны | https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.country.m3u | + +Весь каталог с флагами и статусами: [BUNNY_PLAYLISTS.md](BUNNY_PLAYLISTS.md). + +## Диагностика + +- **Bunny 401:** должен использоваться writable пароль Storage Zone, а не Account Key. Встроенный retry не создаёт новые зоны. +- **Pluto не воспроизводится:** HLS выдаёт сторонний jmp2.uk; возможны геоблокировки. Исходный M3U не равен гарантированному видео. +- **Медленное открытие на Samsung:** выбирай плейлисты Lite, а не 3000+ или 11000+ записей. +- **Pay for a subscription:** это кадры внешнего источника, не ошибка CDN. +- **Failed upload to CUB:** отдельная операция IPTV-плагина, не Bunny PUT. +- **Секреты:** не добавляй личные IPTV-подписки, API ключи и токены в публичный GitHub. From 169580ffc5a1732f0e711c1eb6bb0c164ce336e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 19:02:27 +0200 Subject: [PATCH 06/10] docs: replace upstream README with branded Bunny IPTV hub, country flags, categories, Pluto and Tizen quickstart --- README.md | 229 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 150 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 782c58896e..289595ae34 100644 --- a/README.md +++ b/README.md @@ -1,79 +1,150 @@ -# IPTV [![update](https://github.com/iptv-org/iptv/actions/workflows/update.yml/badge.svg)](https://github.com/iptv-org/iptv/actions/workflows/update.yml) - -Collection of publicly available IPTV (Internet Protocol television) channels from all over the world. - -## Table of contents - -- 🚀 [How to use?](#how-to-use) -- 📺 [Playlists](#playlists) -- 🗓 [EPG](#epg) -- 🗄 [Database](#database) -- 👨‍💻 [API](#api) -- 📚 [Resources](#resources) -- 💬 [Discussions](#discussions) -- ❓ [FAQ](#faq) -- 🛠 [Contribution](#contribution) -- ⚖ [Legal](#legal) -- © [License](#license) - -## How to use? - -Simply paste the link to one of the playlists into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_. - -![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png) - -## Playlists - -The main playlist containing all channels available in the repository can be found at: - -``` -https://iptv-org.github.io/iptv/index.m3u -``` - -Links to other playlists can be found in the [PLAYLISTS.md](PLAYLISTS.md) file. - -## EPG - -[Electronic Program Guide](https://en.wikipedia.org/wiki/Electronic_program_guide) for most of the channels can be downloaded using utilities published in the [iptv-org/epg](https://github.com/iptv-org/epg) repository. - -## Database - -All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. - -## API - -The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. - -## Resources - -Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. - -## Discussions - -If you have a question or idea, welcome to the [Discussions](https://github.com/orgs/iptv-org/discussions). - -## FAQ - -The answers to the most popular questions can be found in the [FAQ.md](FAQ.md) file. - -## Contribution - -Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request. - -And thank you to everyone who has already contributed! - -### Backers - - - -### Contributors - - - -## Legal - -No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by opening an [issue](https://github.com/iptv-org/iptv/issues/new?template=6_copyright-claim.yml). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository). - -## License - -[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) +
+ +# 📺 IPTV HUB +### 🌍 Global channels · 📂 Categories · 🪐 Pluto TV · 🔞 Adult · 🐰 Bunny CDN + +**Открытый каталог M3U для Samsung Tizen / Lampa, VLC и других IPTV-плееров** + +[![GitHub CI](https://github.com/vbrekher/iptv/actions/workflows/personal-bunny-playlists.yml/badge.svg)](https://github.com/vbrekher/iptv/actions/workflows/personal-bunny-playlists.yml) +[![License: CC0](https://img.shields.io/badge/License-CC0-5c6bc0.svg)](LICENSE) +[![Fork: IPTV-org](https://img.shields.io/badge/Based%20on-IPTV--org-2962ff.svg)](https://github.com/iptv-org/iptv) +[![Public M3U Directory](https://img.shields.io/badge/Catalog-238%20M3U%20links-2da8a6.svg)](docs/BUNNY_PLAYLISTS.md) + +[**📚 ПОЛНЫЙ КАТАЛОГ**](docs/BUNNY_PLAYLISTS.md) · [**🚀 БЫСТРЫЙ СТАРТ**](#-начните-отсюда) · [**🌍 СТРАНЫ**](#-188-стран-с-флагами) · [**📖 ИЗМЕНЕНИЯ**](docs/FORK_CHANGELOG.md) · [**🛠 ПУБЛИКАЦИЯ**](docs/PUBLIC_RELEASE.md) + +
+ +--- + +> [!IMPORTANT] +> **Это независимый форк [iptv-org/iptv](https://github.com/iptv-org/iptv), а не официальный CDN IPTV-org.** В каталоге приведены прямые ссылки на M3U. Статус URL может быть подтверждён загрузкой, отчётом CDN или пока не подтверждён. Ссылка сама по себе **не гарантирует воспроизведения** канала, отсутствие рекламы/платной заставки или право распространения. + +## ✨ Что здесь особенного + +| 🌍 Каталог | 📺 Samsung / Lampa | 🔞 Adulttest | 🪐 Pluto TV | +|---|---|---|---| +| 188 стран с флагами, 34 категории | Лёгкие варианты на 240/600 записей | Отдельный тестированный HLS-каталог | Общее, региональное и Erotic FAST | +| Прямые ссылки на Bunny CDN | Исправленные группы без случайных комбинаций | Отдельный список, не смешанный с Pluto | Источники и логотипы в M3U | + +**238 описанных URL** = 188 стран + 34 категории + 16 основных/специальных списков. Это количество ссылок в каталоге, **не количество проверенных доступных CDN-объектов или телеканалов**. + +## 🚀 Начните отсюда + +**Для Samsung Tizen / Lampa начните с коротких списков.** Огромные M3U с тысячами записей могут надолго загружать IPTV-плагин. + +| Вариант | Прямая ссылка | Что внутри | Публикация | +|---|---|---|---| +| ⭐ **Lampa Clean Lite** | [lampa-clean-lite.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa-clean-lite.m3u) | До 240 каналов, исправленные категории | ○ Не подтверждена | +| 🪐 **Pluto TV Lite** | [plutotv-lite.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-lite.m3u) | 240 FAST-каналов | ○ Не подтверждена | +| 🇺🇦 **Украина** | [countries/ua.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ua.m3u) | Украинский телекаталог | ☑️ Был загружен | +| 🎭 **Все категории** | [index.category.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.category.m3u) | Большой исторический список | ☑️ Был загружен | +| 🌐 **Общий IPTV** | [index.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.m3u) | Все каналы (большой файл) | ✅ CDN ранее VERIFIED | +| 🔞 **Adulttest** | [adulttest.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/adulttest.m3u) | HLS-кандидаты 18+ | ✅ CDN по отчёту пользователя | + +**Исправленный полный каталог:** [index.clean.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.clean.m3u) · **Общий по странам:** [index.country.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/index.country.m3u) · **Lampa Clean 600:** [lampa-clean.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/lampa-clean.m3u) + +
+📱 Как подключить M3U в Lampa или VLC + +1. Откройте IPTV-плагин Lampa или VLC → **Открыть сетевой поток**. +2. Скопируйте полную HTTPS-ссылку на M3U из таблицы. +3. Добавьте её как прямой источник. Для начала выбирайте **Lite** на 240 записей. +4. Если IPTV-плагин предлагает «upload to CUB», это отдельная облачная функция: для проверки M3U лучше прямой импорт по URL. +5. Если список открылся, но видео показывает заставку «pay for a subscription», это проблема/ограничение внешнего вещателя, а не загрузки плейлиста с Bunny. + +На Samsung Tizen нельзя гарантировать работу каждого внешнего потока: возможны геоблокировки, неподдерживаемые кодеки, CORS и ограничения стороннего сайта. + +
+ +## 🌍 188 стран с флагами + +Плейлисты стран формируются из официального [индекса IPTV-org](https://github.com/iptv-org/iptv/blob/master/PLAYLISTS.md). Украина подтверждена в предыдущем логе загрузки, а фактическая публикация остальных **требует проверки/синхронизации**. + +| | Страна | M3U | | Страна | M3U | +|:---:|---|---|:---:|---|---| +| 🇺🇦 | Украина | [ua.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ua.m3u) | 🇺🇸 | США | [us.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/us.m3u) | +| 🇩🇪 | Германия | [de.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/de.m3u) | 🇳🇱 | Нидерланды | [nl.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/nl.m3u) | +| 🇵🇱 | Польша | [pl.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/pl.m3u) | 🇬🇧 | Великобритания | [uk.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/uk.m3u) | +| 🇫🇷 | Франция | [fr.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/fr.m3u) | 🇪🇸 | Испания | [es.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/es.m3u) | +| 🇮🇹 | Италия | [it.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/it.m3u) | 🇨🇦 | Канада | [ca.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/ca.m3u) | +| 🇧🇷 | Бразилия | [br.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/br.m3u) | 🇯🇵 | Япония | [jp.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/countries/jp.m3u) | + +**[🔎 Открыть все 188 стран с флагами и прямыми ссылками →](docs/BUNNY_PLAYLISTS.md#-по-странам--188-направлений)** + +## 🎭 Каналы по категориям + +Наш форк хранит **34 отдельных тематических файла** из первой сборки. Подписаться на один раздел проще, чем открывать весь 11-тысячный список. + +| Раздел | Прямая ссылка | Раздел | Прямая ссылка | +|---|---|---|---| +| 📰 Новости | [news.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/news.m3u) | ⚽ Спорт | [sports.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/sports.m3u) | +| 🎬 Фильмы | [movies.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/movies.m3u) | 🍿 Сериалы | [series.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/series.m3u) | +| 🎵 Музыка | [music.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/music.m3u) | 🧸 Детские | [kids.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/kids.m3u) | +| 🎓 Образование | [education.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/education.m3u) | 🔬 Наука | [science.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/science.m3u) | +| 🎞️ Документальные | [documentary.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/documentary.m3u) | ✈️ Путешествия | [travel.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/travel.m3u) | +| 🎭 Развлечения | [entertainment.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/entertainment.m3u) | 🌦️ Погода | [weather.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/weather.m3u) | + +**[📂 Открыть все 34 категории →](docs/BUNNY_PLAYLISTS.md#-категории)** + +## 🪐 Pluto TV · бесплатное FAST-телевидение + +Из открытого источника [BuddyChewChew/app-m3u-generator](https://github.com/BuddyChewChew/app-m3u-generator) подготовлены отдельные M3U; некоторые используют сторонние ссылки **jmp2.uk**, поэтому географическая и реальная доступность не гарантированы. Публикация на Bunny ещё **не подтверждена**. + +| Каталог | Содержимое по последнему CI | M3U | +|---|---:|---| +| 🌐 Все регионы | 3 016 записей | [plutotv.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv.m3u) | +| 📺 Lite | 240 записей | [plutotv-lite.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-lite.m3u) | +| 🇩🇪 Германия | 200 | [plutotv-de.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-de.m3u) | +| 🇺🇸 США | 433 | [plutotv-us.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-us.m3u) | +| 🇬🇧 Великобритания | 183 | [plutotv-gb.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-gb.m3u) | +| 🔞 Erotic FAST (DE) | 8 | [plutotv-erotic.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-erotic.m3u) | + +## 🔞 Adult / XXX — отдельно от обычного каталога + +
+18+ · Открыть ссылки и предупреждения + +> Материалы исключительно для совершеннолетних. Старые M3U включают сторонние ссылки с рекламой, камерами или заставками о подписке. Факт ответа HLS **не подтверждает** бесплатный эфир, разрешение HD или права вещателя. + +| Источник | M3U | Статус | +|---|---|---| +| Adulttest · 141 технически открытый HLS по пользовательскому отчёту | [adulttest.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/adulttest.m3u) | ✅ CDN подтверждён отчётом | +| Исторический список · 46 анонимных HLS | [adult.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/adult.m3u) | ☑️ Был загружен | +| Старый категорийный каталог | [categories/xxx.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/categories/xxx.m3u) | ☑️ Был загружен | +| Немецкие Pluto Erotic FAST (не премиальное хардкор-ТВ) | [plutotv-erotic.m3u](https://lampa-iptv-875323ab-cdn.b-cdn.net/iptv/plutotv-erotic.m3u) | ○ Публикация не подтверждена | + +Платные каналы Brazzers, Hustler, Dorcel и Penthouse не превращаются в легальные бесплатные HD-потоки от того, что ссылка попала в GitHub. Личные подписочные IPTV-адреса в этот форк не добавляются. + +
+ +## 🐰 Автоматизация Bunny Storage + CDN + +Наши Python-инструменты используют только стандартную библиотеку, работают на Mac и Linux и **не хранят видео**. Готовая логика: создание зон для первого запуска, восстановление после 401, нормализация категорий, тестирование анонимного HLS, сбор стран и Pluto, публикация M3U. + +Для владельца **уже существующих** Storage и Pull Zone: + +~~~bash +cd "$HOME/iptv-bunny" +python3 publish_public_bunny.py --dry-run # предварительный просмотр +python3 publish_public_bunny.py # публикация отсутствующих файлов +~~~ + +Сначала скачайте актуальные инструменты: [инструкция «одна команда»](docs/PUBLIC_RELEASE.md). Account API Key запрашивается скрыто один раз; новые платные зоны не создаются. + +### Репозиторий: 9 этапов развития + +Изменения с PR [#1](https://github.com/vbrekher/iptv/pull/1) по [#9](https://github.com/vbrekher/iptv/pull/9) оформлены в [полной истории разработки](docs/FORK_CHANGELOG.md), включая скрипты, исправления ошибок, релизные границы и реальные результаты проверок. + +**Документация:** [Каталог M3U](docs/BUNNY_PLAYLISTS.md) · [Развёртывание Bunny](docs/BUNNY_ONE_CLICK.md) · [Adulttest](docs/ADULTTEST.md) · [Pluto и qist](docs/QIST_PLUTOTV.md) · [Обновление публикаций](docs/PUBLIC_RELEASE.md) · [Данные каталога JSON](catalog/bunny-playlists.json) + +--- + +## 🌐 About this fork (English) + +**IPTV Hub** is an independent, public [IPTV-org](https://github.com/iptv-org/iptv) fork featuring curated **M3U directory links**, a Bunny CDN publishing workflow, country playlists with flag emojis, category playlists, Samsung Tizen/Lampa-friendly variants, Pluto TV FAST lists and a separate adult research playlist. + +[Browse all playlist links](docs/BUNNY_PLAYLISTS.md) • [Publish to your existing Bunny zones](docs/PUBLIC_RELEASE.md) • [Fork change history](docs/FORK_CHANGELOG.md). + +**Important:** Public M3U links are *not* guaranteed playable, licensed, geo-unrestricted or free of broadcaster paywalls. The server stores playlist metadata, never movies or livestream video. Some referenced destinations have not yet been deployed to Bunny; publication status is shown in the catalog. + +**Credits & licenses:** based on [iptv-org/iptv](https://github.com/iptv-org/iptv) ([CC0](LICENSE)). Source logos, channel brands, channel data and external video streams belong to their respective owners and may have independent distribution terms. [Contributing](CONTRIBUTING.md) · [Upstream issues](https://github.com/iptv-org/iptv/issues). From 5dde66149a0521a44f7608ff342567519868ca70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 19:03:01 +0200 Subject: [PATCH 07/10] test: enforce 238 public M3U links, flags, no auth tokens, and honest publication statuses --- tools/verify_public_hub.py | 81 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tools/verify_public_hub.py diff --git a/tools/verify_public_hub.py b/tools/verify_public_hub.py new file mode 100644 index 0000000000..7c7d519672 --- /dev/null +++ b/tools/verify_public_hub.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +"""Verify the fork's public M3U catalog, status labels and GitHub docs offline.""" +from __future__ import annotations + +import json +import re +import sys +from pathlib import Path +from urllib.parse import urlsplit + +ROOT = Path(__file__).resolve().parent.parent +MANIFEST = ROOT / "catalog/bunny-playlists.json" +DIRECTORY = ROOT / "docs/BUNNY_PLAYLISTS.md" +README = ROOT / "README.md" +ALLOWED = {"user_report_cdn_verified", "user_log_uploaded", "publication_unconfirmed"} + + +def validate() -> dict: + catalog = json.loads(MANIFEST.read_text(encoding="utf-8")) + assert catalog["schema_version"] == 1 + expected = {"countries": 188, "categories": 34, "featured": 16, "links": 238} + assert catalog["totals"] == expected, (catalog["totals"], expected) + items = catalog["items"] + assert len(items) == expected["links"] + assert len({item["id"] for item in items}) == len(items) + assert len({item["path"] for item in items}) == len(items) + assert len({item["url"] for item in items}) == len(items) + assert {x["status"] for x in items} == ALLOWED + directory = DIRECTORY.read_text(encoding="utf-8") + readme = README.read_text(encoding="utf-8") + assert len(readme) >= 5000 and len(directory) >= 25000 + assert "iptv-org/iptv" in readme and "iptv-org/iptv" in directory + assert "PUBLIC_RELEASE.md" in readme and "FORK_CHANGELOG.md" in readme + assert "adulttest.m3u" in readme and "plutotv-lite.m3u" in readme + assert "118" not in expected # prevent accidentally hardcoding stream results as counts + counts = {"country": 0, "category": 0, "main": 0, "adult": 0, "tizen": 0, "pluto": 0} + for x in items: + assert x["group"] in counts, x + counts[x["group"]] += 1 + url = x["url"] + parts = urlsplit(url) + assert parts.scheme == "https" + assert parts.netloc == "lampa-iptv-875323ab-cdn.b-cdn.net" + assert parts.path == "/iptv/" + x["path"] + assert not parts.username and not parts.password and not parts.query and not parts.fragment + assert re.fullmatch(r"[a-z0-9-]+(?:/[a-z0-9-]+)*\.m3u", x["path"]), x["path"] + assert x["status"] in ALLOWED + assert url in directory, "Missing direct CDN URL in docs: " + x["path"] + if x["group"] == "country": + assert re.fullmatch(r"countries/[a-z]{2}\.m3u", x["path"]) + assert x["flag"] and len(x["flag"]) <= 4 + assert x["country_name"] + if x["group"] == "category": + assert x["path"].startswith("categories/") + assert counts["country"] == expected["countries"], counts + assert counts["category"] == expected["categories"], counts + assert sum(counts[k] for k in ("main", "adult", "tizen", "pluto")) == expected["featured"] + ua = next(x for x in items if x["path"] == "countries/ua.m3u") + assert ua["status"] == "user_log_uploaded" + adulttest = next(x for x in items if x["path"] == "adulttest.m3u") + assert adulttest["status"] == "user_report_cdn_verified" + for path in ("plutotv-lite.m3u", "plutotv.m3u", "index.country.m3u", + "lampa-clean-lite.m3u", "countries/us.m3u"): + assert next(x for x in items if x["path"] == path)["status"] == "publication_unconfirmed" + if re.search(r"(?:api[_-]?key|password|secret)\s*[:=]\s*['\"][A-Za-z0-9_-]{16,}", directory, re.I): + raise AssertionError("Potential credential-like literal in public M3U documentation") + return {"verified_manifest_items": len(items), "groups": counts} + + +def main(): + try: + report = validate() + except (AssertionError, ValueError, OSError, KeyError) as exc: + print("PUBLIC_HUB_CATALOG_FAIL", str(exc), file=sys.stderr) + return 1 + print("PUBLIC_HUB_CATALOG_PASS", json.dumps(report, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) From bcf16491dc1bfcad38b199088111e8fcae8ddf41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 19:03:24 +0200 Subject: [PATCH 08/10] test: allow dotted M3U index filenames in strict public URL validation --- tools/verify_public_hub.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/verify_public_hub.py b/tools/verify_public_hub.py index 7c7d519672..8a8b9b894b 100644 --- a/tools/verify_public_hub.py +++ b/tools/verify_public_hub.py @@ -32,7 +32,6 @@ def validate() -> dict: assert "iptv-org/iptv" in readme and "iptv-org/iptv" in directory assert "PUBLIC_RELEASE.md" in readme and "FORK_CHANGELOG.md" in readme assert "adulttest.m3u" in readme and "plutotv-lite.m3u" in readme - assert "118" not in expected # prevent accidentally hardcoding stream results as counts counts = {"country": 0, "category": 0, "main": 0, "adult": 0, "tizen": 0, "pluto": 0} for x in items: assert x["group"] in counts, x @@ -43,7 +42,7 @@ def validate() -> dict: assert parts.netloc == "lampa-iptv-875323ab-cdn.b-cdn.net" assert parts.path == "/iptv/" + x["path"] assert not parts.username and not parts.password and not parts.query and not parts.fragment - assert re.fullmatch(r"[a-z0-9-]+(?:/[a-z0-9-]+)*\.m3u", x["path"]), x["path"] + assert re.fullmatch(r"[a-z0-9.-]+(?:/[a-z0-9.-]+)*\.m3u", x["path"]), x["path"] assert x["status"] in ALLOWED assert url in directory, "Missing direct CDN URL in docs: " + x["path"] if x["group"] == "country": From 30af54d632ad693bf02a3c8ba22d091ce19b0090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 19:03:29 +0200 Subject: [PATCH 09/10] ci: verify full public playlist hub, status provenance and one-command sync offline --- .github/workflows/personal-bunny-playlists.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/personal-bunny-playlists.yml b/.github/workflows/personal-bunny-playlists.yml index e68b930814..8f5d5bc475 100644 --- a/.github/workflows/personal-bunny-playlists.yml +++ b/.github/workflows/personal-bunny-playlists.yml @@ -11,6 +11,13 @@ on: - 'tools/lampa_category_fix.py' - 'tools/adulttest.py' - 'tools/plutotv_bunny.py' + - 'tools/publish_public_bunny.py' + - 'tools/verify_public_hub.py' + - 'catalog/bunny-playlists.json' + - 'docs/BUNNY_PLAYLISTS.md' + - 'docs/PUBLIC_RELEASE.md' + - 'docs/FORK_CHANGELOG.md' + - 'README.md' - '.github/workflows/personal-bunny-playlists.yml' permissions: contents: read @@ -184,3 +191,10 @@ jobs: "GERMANY", report["upstream_germany_entries"], "EROTIC_FAST", report["erotic_fast_channels_germany"]) PY + + - name: Compile public catalog tools + run: python3 -m py_compile tools/publish_public_bunny.py tools/verify_public_hub.py + - name: Validate 238 public M3U links and evidence status + run: python3 tools/verify_public_hub.py + - name: Offline safe country fallback test (no Bunny, no network) + run: python3 tools/publish_public_bunny.py --self-test From 03289ee1387a53e3a18911a2ed939526c3b3421e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?v=20=E2=82=BF?= Date: Mon, 2 Nov 2026 19:03:55 +0200 Subject: [PATCH 10/10] docs: link the Bunny fork's new public playlist directory from upstream PLAYLISTS entrypoint --- PLAYLISTS.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/PLAYLISTS.md b/PLAYLISTS.md index 602d16f22e..825cbb1508 100644 --- a/PLAYLISTS.md +++ b/PLAYLISTS.md @@ -1,4 +1,13 @@ -## Playlists +## Playlists + +> **This is an independent IPTV-org fork.** For Bunny-hosted M3U links, 34 +> categories, 188 country flags and separate Pluto/Adulttest/Tizen files, see +> **[📚 Bunny Public Playlist Hub](docs/BUNNY_PLAYLISTS.md)** and +> **[the new project homepage](README.md)**. +> The below original IPTV-org directory is kept for upstream compatibility, +> and its NSFW policy applies to the **upstream**, not to the separate opt-in +> research playlists of this fork. + There are several versions of playlists that differ in the way they are grouped. As of January 30th, 2024, we have stopped distributing NSFW channels. For more information, please look at [this issue](https://github.com/iptv-org/iptv/issues/15723).