Skip to content

Alplox/json-teles

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

npm install

Available Commands

npm run build              # Compile countries/*.json → channels.json
npm run split              # Split channels.json → countries/*.json (migration)
npm run convert            # Generate channels.m3u + m3u-playlists/
npm run generate-readme    # Update README.md with channel lists
npm run validate           # Validate channels.json against schema
npm run validate:country   # Validate all country files
npm run lint               # Run ESLint on scripts/
npm run lint:fix           # ESLint with auto-fix
npm run format             # Run Prettier on scripts/
npm run format:check       # Check Prettier formatting
npm run test               # Run M3U conversion tests
npm run ci                 # Full pipeline: validate + lint + format + test
npm run watch              # Watch countries/ for changes, auto-rebuild
npm run check-youtube      # Check YouTube livestreams (manual)
npm run check-youtube:dry  # Dry run (no file writes)
npm 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 npm run build to compile
  4. Run npm 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 npm 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: 522 channels from 42 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

🌍 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

License

Stars

Watchers

Forks

Contributors