├── .github └── FUNDING.yml ├── LICENSE ├── CHANGELOG.md └── README.md /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: iptv-org 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 2025-08-30 4 | 5 | - **channels**: removed `subdivision` and `city` fields 6 | 7 | ## 2025-08-20 8 | 9 | - added **cities.json** 10 | - **subdivisions**: added `parent` field 11 | 12 | ## 2025-07-30 13 | 14 | - **channels**: removed `logo` field 15 | - **feeds**: added `alt_names` field 16 | - **streams**: added `title` field 17 | - **categories**: added `description` field 18 | 19 | ## 2025-07-02 20 | 21 | - added **logos.json** 22 | 23 | ## 2025-04-07 24 | 25 | - added **feeds** and **timezones** 26 | - **channels**: removed `broadcast_area` and `languages` fields 27 | - **streams**: added `feed` and `quality` fields, renamed `http_referrer` field to `referrer`, removed `timeshift` field 28 | - **guides**: added `feed` field 29 | 30 | ## 2025-03-05 31 | 32 | - **streams**: `channel` field now returns `null` if no value is specified 33 | - **blocklist**: added `reason` field 34 | 35 | ## 2023-12-03 36 | 37 | - **guides**: `channel` field now returns `null` if no value is specified 38 | 39 | ## 2023-11-17 40 | 41 | - **guides**: added updated list of guides 42 | 43 | ## 2023-10-09 44 | 45 | - **guides**: removed from the list as the data is no longer being updated 46 | 47 | ## 2023-05-04 48 | 49 | - **guides**: the `status`, `width`, `height`, `bitrate`, `frame_rate`, `added_at`, `updated_at` and `checked_at` fields were removed (https://github.com/iptv-org/iptv/pull/12628) 50 | 51 | ## 2022-10-19 52 | 53 | - **channels**: `native_name` field renamed to `alt_names` 54 | 55 | ## 2022-10-17 56 | 57 | - **channels**: added `owners` field 58 | 59 | ## 2022-06-09 60 | 61 | - **streams**: added `frame_rate` field 62 | 63 | ## 2022-04-21 64 | 65 | - **channels:** added `replaced_by` field 66 | 67 | ## 2022-04-12 68 | 69 | - **channels:** added `launched` and `closed` fields 70 | 71 | ## 2022-03-01 72 | 73 | - **channels:** added `native_name` field 74 | 75 | ## 2022-02-21 76 | 77 | - added **streams.json** 78 | - **channels:** added `website` field 79 | 80 | ## 2022-02-16 81 | 82 | - added **blocklist.json** 83 | 84 | ## 2022-01-29 85 | 86 | - **channels**: added `network` field 87 | 88 | ## 2022-01-25 89 | 90 | - **channels**: added the `subdivision` and `city` field 91 | - **categories**: removed `local` category 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # API 2 | 3 | ## Overview 4 | 5 | - [Channels](#channels) 6 | - [Feeds](#feeds) 7 | - [Logos](#logos) 8 | - [Streams](#streams) 9 | - [Guides](#guides) 10 | - [Categories](#categories) 11 | - [Languages](#languages) 12 | - [Countries](#countries) 13 | - [Subdivisions](#subdivisions) 14 | - [Cities](#cities) 15 | - [Regions](#regions) 16 | - [Timezones](#timezones) 17 | - [Blocklist](#blocklist) 18 | 19 | ### Channels 20 | 21 | ``` 22 | https://iptv-org.github.io/api/channels.json 23 | ``` 24 | 25 | ```jsonc 26 | [ 27 | //... 28 | { 29 | "id": "AnhuiTV.cn", 30 | "name": "Anhui TV", 31 | "alt_names": ["安徽卫视"], 32 | "network": "Anhui", 33 | "owners": ["China Central Television"], 34 | "country": "CN", 35 | "categories": ["general"], 36 | "is_nsfw": false, 37 | "launched": "2016-07-28", 38 | "closed": "2020-05-31", 39 | "replaced_by": "CCTV1.cn", 40 | "website": "http://www.ahtv.cn/" 41 | } 42 | //... 43 | ] 44 | ``` 45 | 46 | | Field | Type | Description | 47 | | ----------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------- | 48 | | id | string | Unique channel ID | 49 | | name | string | Full name of the channel | 50 | | alt_names | array | List of alternative channel names | 51 | | network | string or null | Name of the network operating the channel | 52 | | owners | array | List of channel owners | 53 | | country | string | Country code from which the broadcast is transmitted ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) | 54 | | categories | array | List of categories to which this channel belongs | 55 | | is_nsfw | boolean | Indicates whether the channel broadcasts adult content | 56 | | launched | string or null | Launch date of the channel (`YYYY-MM-DD`) | 57 | | closed | string or null | Date on which the channel closed (`YYYY-MM-DD`) | 58 | | replaced_by | string or null | The ID of the channel that this channel was replaced by | 59 | | website | string or null | Official website URL | 60 | 61 | Source of data: https://github.com/iptv-org/database 62 | 63 | ### Feeds 64 | 65 | ``` 66 | https://iptv-org.github.io/api/feeds.json 67 | ``` 68 | 69 | ```jsonc 70 | [ 71 | //... 72 | { 73 | "channel": "France3.fr", 74 | "id": "ParisIledeFrance", 75 | "name": "Paris Ile-de-France", 76 | "alt_names": ["Paris Île-de-France"], 77 | "is_main": false, 78 | "broadcast_area": ["c/FR"], 79 | "timezones": ["Europe/Paris"], 80 | "languages": ["fra"], 81 | "format": "576i" 82 | } 83 | //... 84 | ] 85 | ``` 86 | 87 | | Field | Type | Description | 88 | | -------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- | 89 | | channel | string | Channel ID | 90 | | id | string | Unique feed ID | 91 | | name | string | Name of the feed | 92 | | alt_names | array | List of alternative feed names | 93 | | is_main | boolean | Indicates if this feed is the main for the channel | 94 | | broadcast_area | array | List of codes describing the broadcasting area (`r/`, `c/`, `s/`, `ct/`) | 95 | | timezones | array | List of timezones in which the feed is broadcast | 96 | | languages | array | List of broadcast languages | 97 | | format | string | Video format of the feed | 98 | 99 | Source of data: https://github.com/iptv-org/database 100 | 101 | ### Logos 102 | 103 | ``` 104 | https://iptv-org.github.io/api/logos.json 105 | ``` 106 | 107 | ```jsonc 108 | [ 109 | //... 110 | { 111 | "channel": "France3.fr", 112 | "feed": "ParisIledeFrance", 113 | "tags": ["horizontal", "white"], 114 | "width": 1000, 115 | "height": 468, 116 | "format": "SVG", 117 | "url": "https://example.com/logo.svg" 118 | } 119 | //... 120 | ] 121 | ``` 122 | 123 | | Field | Type | Description | 124 | | ------- | -------------- | -------------------------------------------------------------------------- | 125 | | channel | string | Channel ID | 126 | | feed | string or null | Feed ID | 127 | | tags | array | List of keywords describing this version of the logo | 128 | | width | number | The width of the image in pixels | 129 | | height | number | The height of the image in pixels | 130 | | format | string or null | Image format (one of: `PNG`, `JPEG`, `SVG`, `GIF`, `WebP`, `AVIF`, `APNG`) | 131 | | url | string | Logo URL | 132 | 133 | Source of data: https://github.com/iptv-org/database 134 | 135 | ### Streams 136 | 137 | ``` 138 | https://iptv-org.github.io/api/streams.json 139 | ``` 140 | 141 | ```jsonc 142 | [ 143 | //... 144 | { 145 | "channel": "France3.fr", 146 | "feed": "NordPasdeCalaisHD", 147 | "title": "France 3 Nord Pas-de-Calais HD", 148 | "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8", 149 | "referrer": "http://example.com/", 150 | "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", 151 | "quality": "720p" 152 | } 153 | //... 154 | ] 155 | ``` 156 | 157 | | Field | Type | Description | 158 | | ---------- | -------------- | -------------------------------------------------------------------------------------------------------------------- | 159 | | channel | string or null | Channel ID | 160 | | feed | string or null | Feed ID | 161 | | title | string | Stream title | 162 | | url | string | Stream URL | 163 | | referrer | string or null | The [Referer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) request header for the stream | 164 | | user_agent | string or null | The [User-Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) request header for the stream | 165 | | quality | string or null | Maximum stream quality | 166 | 167 | Source of data: https://github.com/iptv-org/iptv 168 | 169 | ### Guides 170 | 171 | ``` 172 | https://iptv-org.github.io/api/guides.json 173 | ``` 174 | 175 | ```jsonc 176 | [ 177 | //... 178 | { 179 | "channel": "BBCOne.uk", 180 | "feed": "EastMidlandsHD", 181 | "site": "sky.co.uk", 182 | "site_id": "bbcone", 183 | "site_name": "BBC One", 184 | "lang": "en" 185 | } 186 | //... 187 | ] 188 | ``` 189 | 190 | | Field | Type | Description | 191 | | --------- | -------------- | --------------------------------------------------------------------------------- | 192 | | channel | string or null | Channel ID | 193 | | feed | string or null | Feed ID | 194 | | site | string | Site domain name | 195 | | site_id | string | Unique channel ID used on the site | 196 | | site_name | string | Channel name used on the site | 197 | | lang | string | Language of the guide ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) code) | 198 | 199 | Source of data: https://github.com/iptv-org/epg 200 | 201 | ### Categories 202 | 203 | ``` 204 | https://iptv-org.github.io/api/categories.json 205 | ``` 206 | 207 | ```jsonc 208 | [ 209 | //... 210 | { 211 | "id": "documentary", 212 | "name": "Documentary", 213 | "description": "Programming that depicts a person or real-world event" 214 | } 215 | //... 216 | ] 217 | ``` 218 | 219 | | Field | Type | Description | 220 | | ----------- | ------ | --------------------------------- | 221 | | id | string | Category ID | 222 | | name | string | Name of the category | 223 | | description | string | Short description of the category | 224 | 225 | Source of data: https://github.com/iptv-org/database 226 | 227 | ### Languages 228 | 229 | ``` 230 | https://iptv-org.github.io/api/languages.json 231 | ``` 232 | 233 | ```jsonc 234 | [ 235 | //... 236 | { 237 | "name": "French", 238 | "code": "fra" 239 | } 240 | //... 241 | ] 242 | ``` 243 | 244 | | Field | Type | Description | 245 | | ----- | ------ | ------------------------------------------------------------------------- | 246 | | name | string | Language name | 247 | | code | string | [ISO 639-3](https://en.wikipedia.org/wiki/ISO_639-3) code of the language | 248 | 249 | Source of data: https://github.com/iptv-org/database 250 | 251 | ### Countries 252 | 253 | ``` 254 | https://iptv-org.github.io/api/countries.json 255 | ``` 256 | 257 | ```jsonc 258 | [ 259 | //... 260 | { 261 | "name": "Canada", 262 | "code": "CA", 263 | "languages": ["eng", "fra"], 264 | "flag": "🇨🇦" 265 | } 266 | //... 267 | ] 268 | ``` 269 | 270 | | Field | Type | Description | 271 | | --------- | ------ | ----------------------------------------------------------------------------------------------------- | 272 | | name | string | Name of the country | 273 | | code | string | [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country | 274 | | languages | array | List of official languages of the country ([ISO 639-3](https://en.wikipedia.org/wiki/ISO_639-3) code) | 275 | | flag | string | Country flag emoji | 276 | 277 | Source of data: https://github.com/iptv-org/database 278 | 279 | ### Subdivisions 280 | 281 | ``` 282 | https://iptv-org.github.io/api/subdivisions.json 283 | ``` 284 | 285 | ```jsonc 286 | [ 287 | //... 288 | { 289 | "country": "BD", 290 | "name": "Bandarban", 291 | "code": "BD-01", 292 | "parent": "BD-B" 293 | } 294 | //... 295 | ] 296 | ``` 297 | 298 | | Field | Type | Description | 299 | | ------- | -------------- | ------------------------------------------------------------------------------------------ | 300 | | country | string | [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country | 301 | | name | string | Subdivision name | 302 | | code | string | [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code of the subdivision | 303 | | parent | string or null | [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code of the parent subdivision | 304 | 305 | Source of data: https://github.com/iptv-org/database 306 | 307 | ### Cities 308 | 309 | ``` 310 | https://iptv-org.github.io/api/cities.json 311 | ``` 312 | 313 | ```jsonc 314 | [ 315 | //... 316 | { 317 | "country": "CN", 318 | "subdivision": "CN-SD", 319 | "name": "Yantai", 320 | "code": "CNYAT", 321 | "wikidata_id": "Q210493" 322 | } 323 | //... 324 | ] 325 | ``` 326 | 327 | | Field | Type | Description | 328 | | ----------- | -------------- | -------------------------------------------------------------------------------------------------------------------- | 329 | | country | string | [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country where the city is located | 330 | | subdivision | string or null | [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code of the subdivision where the city is located | 331 | | name | string | City name | 332 | | code | string | [UN/LOCODE](https://en.wikipedia.org/wiki/UN/LOCODE) of the city | 333 | | wikidata_id | string | ID of this city in [Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page) | 334 | 335 | Source of data: https://github.com/iptv-org/database 336 | 337 | ### Regions 338 | 339 | ``` 340 | https://iptv-org.github.io/api/regions.json 341 | ``` 342 | 343 | ```jsonc 344 | [ 345 | //... 346 | { 347 | "code": "MAGHREB", 348 | "name": "Maghreb", 349 | "countries": ["DZ", "LY", "MA", "MR", "TN"] 350 | } 351 | //... 352 | ] 353 | ``` 354 | 355 | | Field | Type | Description | 356 | | --------- | ------ | ------------------------------- | 357 | | code | string | Code of the region | 358 | | name | string | Full name of the region | 359 | | countries | array | List of countries in the region | 360 | 361 | Source of data: https://github.com/iptv-org/database 362 | 363 | ### Timezones 364 | 365 | ``` 366 | https://iptv-org.github.io/api/timezones.json 367 | ``` 368 | 369 | ```jsonc 370 | [ 371 | //... 372 | { 373 | "id": "Europe/London", 374 | "utc_offset": "+00:00", 375 | "countries": ["UK", "GG", "IM", "JE"] 376 | } 377 | //... 378 | ] 379 | ``` 380 | 381 | | Field | Type | Description | 382 | | ---------- | ------ | ------------------------------------------------------------------------- | 383 | | id | string | Timezone ID from [tz database](https://en.wikipedia.org/wiki/Tz_database) | 384 | | utc_offset | string | [UTC offset](https://en.wikipedia.org/wiki/UTC_offset) for this time zone | 385 | | countries | array | List of countries included in this time zone | 386 | 387 | Source of data: https://github.com/iptv-org/database 388 | 389 | ### Blocklist 390 | 391 | ``` 392 | https://iptv-org.github.io/api/blocklist.json 393 | ``` 394 | 395 | ```jsonc 396 | [ 397 | //... 398 | { 399 | "channel": "AnimalPlanetEast.us", 400 | "reason": "dmca", 401 | "ref": "https://github.com/iptv-org/iptv/issues/1831" 402 | } 403 | //... 404 | ] 405 | ``` 406 | 407 | | Field | Type | Description | 408 | | ------- | ------ | ----------------------------------------------- | 409 | | channel | string | Channel ID | 410 | | reason | string | Reason for blocking (`dmca` or `nsfw`) | 411 | | ref | string | Link to removal request or DMCA takedown notice | 412 | 413 | Source of data: https://github.com/iptv-org/database 414 | 415 | ## Contribution 416 | 417 | If you find a bug or want to contribute to the code or documentation, you can help by submitting an [issue](https://github.com/iptv-org/api/issues) or a [pull request](https://github.com/iptv-org/api/pulls). 418 | --------------------------------------------------------------------------------