Skip to content

Repository files navigation

IPTV Channels Plox

A curated, community-driven IPTV channel directory. Primarily focused on Spanish-language news channels, but also includes music, sports, kids, outdoor cameras, and other categories.

Channel requirements:

  • Must be publicly accessible (no premium/paid channels)
  • Must have an official website link
  • Must use HTTPS (for GitHub Pages compatibility)

JSON channel data is updated manually, then the M3U playlist is generated automatically via GitHub Actions.

Project Structure

countries/        # Per-country channels (Manually edited)
  cl.json         # Channels from Chile
  us.json         # Channels from United States
  mx.json         # Channels from Mexico
  ...             # One file per country (~43 countries)
channels.json     # Compiled from countries/*.json (auto-generated, do not edit)
channels.m3u      # Combined M3U playlist (auto-generated, do not edit)
m3u-playlists/    # Per-country M3U playlists (auto-generated, do not edit)
  cl.m3u          # Chile channels only
  us.m3u          # US channels only
  ...

JSON Format

Structure

{
  "version": "2.0.0",
  "generated": "2026-06-02T12:00:00.000Z",
  "total": 529,
  "channels": [
    {
      "id": "generic-channel",
      "name": "Generic Channel Name",
      "logo": "https://...jpg/webp/svg",
      "signals": [
        { "type": "m3u8", "url": "https://...m3u8" },
        { "type": "iframe", "url": "https://..." }
      ],
      "youtube": "UC...",
      "last_youtube_livestreams": ["VIDEO_ID"],
      "last_checked": "2026-06-02T12:00:00.000Z",
      "twitch": "handle-of-generic-channel",
      "website": "https://www...",
      "country": "cl",
      "category": "news"
    }
  ]
}

Fields

Field Type Required Description
id string Yes Unique channel identifier (slug)
name string Yes Display name
logo string | null No Logo URL
signals array Yes Available signals
signals[].type string Yes "m3u8" or "iframe"
signals[].url string Yes Signal URL
youtube string | null No YouTube channel ID
last_youtube_livestreams array | null No Active YouTube livestream video IDs
last_checked string | null No ISO timestamp of last livestream check
twitch string | null No Twitch channel ID
website string | null No Official website URL
country string | null Yes ISO 3166 country code (inherited from parent, nullable for _unknown)
category string Yes Channel category

Valid Categories

animation, auto, business, classic, culture, entertainment, general, kids, legislative, lifestyle, music, news, outdoor, relax, religious, science, sports, weather

Country File Format

Each file in countries/ follows this structure:

{
  "country": "cl",
  "channels": [
    {
      "id": "24-horas",
      "name": "24 horas",
      "logo": "https://...",
      "signals": [{ "type": "m3u8", "url": "https://...m3u8" }],
      "youtube": "UCTXNz3gjAypWp3EhlIATEJQ",
      "last_youtube_livestreams": [],
      "last_checked": "2026-06-02T12:00:00.000Z",
      "twitch": "24horas_tvn",
      "website": "https://www.24horas.cl/envivo/",
      "category": "news"
    }
  ]
}

CDN URLs

channels.json (compiled)

channels.m3u (combined)

Per-country playlists

Why keep channels in this repository?

To prevent entire repositories from dying.

[Original repository (RIP)]

JSON to M3U Online Converter

https://alplox.github.io/json-teles/

Development

Setup

pnpm install

Available Commands

pnpm run build              # Compile countries/*.json → channels.json
pnpm run split              # Split channels.json → countries/*.json (migration)
pnpm run convert            # Generate channels.m3u + m3u-playlists/
pnpm run generate-readme    # Update README.md with channel lists
pnpm run validate           # Validate channels.json against schema
pnpm run validate:country   # Validate all country files
pnpm run lint               # Run ESLint on scripts/
pnpm run lint:fix           # ESLint with auto-fix
pnpm run format             # Run Prettier on scripts/
pnpm run format:check       # Check Prettier formatting
pnpm run test               # Run M3U conversion tests
pnpm run ci                 # Full pipeline: validate + lint + format + test
pnpm run watch              # Watch countries/ for changes, auto-rebuild
pnpm run check-youtube      # Check YouTube livestreams (manual)
pnpm run check-youtube:dry  # Dry run (no file writes)
pnpm run check-youtube:force # Force check (ignore skip threshold)

Tip: Install deno for better yt-dlp YouTube detection.

How to Add a Channel

  1. Edit the country file (e.g., countries/cl.json)
  2. Add the channel to the channels array
  3. Run pnpm run build to compile
  4. Run pnpm run ci to verify
  5. Commit all changes

How to Add a New Country

  1. Create a new file countries/xx.json (where xx is the ISO 3166 country code, see https://flagcdn.com/en/codes.json)
  2. Follow the country file format above
  3. Run pnpm run build to compile

Star History

Star History Chart

Visits Badge

Available Channels

Total channels available. M3U version may contain fewer channels.

(click to expand)

Total: 536 channels from 43 countries

Channels by Country

🌍 Unknown Country

🌍 Emiratos Árabes Unidos

🌍 Argentina

🌍 Australia

🌍 Bangladesh

🌍 Bolivia

🌍 Brasil

🌍 Canadá

🌍 República Centroafricana

🌍 Chile

🌍 China

🌍 Colombia

🌍 Costa Rica

🌍 República Checa

🌍 Alemania

🌍 República Dominicana

🌍 Ecuador

🌍 España

🌍 Francia

🌍 Reino Unido

🌍 Inglaterra

🌍 Honduras

🌍 India

🌍 Irak

🌍 Italia

🌍 Japón

🌍 Corea del Sur

🌍 Líbano

🌍 México

🌍 Nueva Zelanda

🌍 Panamá

🌍 Perú

🌍 Pakistán

🌍 Paraguay

🌍 Catar

🌍 Arabia Saudita

🌍 Singapur

🌍 El Salvador

🌍 Turquía

🌍 Taiwán

🌍 Ucrania

🌍 Estados Unidos

🌍 Hawái

🌍 Venezuela

Channels by Category

📂 Animation

📂 Auto

📂 Business

📂 Classic

📂 Culture

📂 Entertainment

📂 General

📂 Kids

📂 Legislative

📂 Lifestyle

📂 Music

📂 News

📂 Outdoor

📂 Relax

📂 Religious

📂 Science

📂 Sports

📂 Weather

About

A curated, community-driven IPTV channel directory. Primarily focused on Spanish-language news channels, but also includes music, sports, kids, outdoor cameras, and other categories.

Topics

Resources

Stars

24 stars

Watchers

1 watching

Forks

Contributors

Languages