├── .github └── FUNDING.yml ├── CHANGELOG.md ├── LICENSE └── 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 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 2025-04-07 4 | 5 | - added **feeds** and **timezones** 6 | - **channels**: removed `broadcast_area` and `languages` fields 7 | - **streams**: added `feed` and `quality` fields, renamed `http_referrer` field to `referrer`, removed `timeshift` field 8 | - **guides**: added `feed` field 9 | 10 | ## 2025-03-05 11 | 12 | - **streams**: `channel` field now returns `null` if no value is specified 13 | - **blocklist**: added `reason` field 14 | 15 | ## 2023-12-03 16 | 17 | - **guides**: `channel` field now returns `null` if no value is specified 18 | 19 | ## 2023-11-17 20 | 21 | - **guides**: added updated list of guides 22 | 23 | ## 2023-10-09 24 | 25 | - **guides**: removed from the list as the data is no longer being updated 26 | 27 | ## 2023-05-04 28 | 29 | - **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) 30 | 31 | ## 2022-10-19 32 | 33 | - **channels**: `native_name` field renamed to `alt_names` 34 | 35 | ## 2022-10-17 36 | 37 | - **channels**: added `owners` field 38 | 39 | ## 2022-06-09 40 | 41 | - **streams**: added `frame_rate` field 42 | 43 | ## 2022-04-21 44 | 45 | - **channels:** added `replaced_by` field 46 | 47 | ## 2022-04-12 48 | 49 | - **channels:** added `launched` and `closed` fields 50 | 51 | ## 2022-03-01 52 | 53 | - **channels:** added `native_name` field 54 | 55 | ## 2022-02-21 56 | 57 | - added **streams.json** 58 | - **channels:** added `website` field 59 | 60 | ## 2022-02-16 61 | 62 | - added **blocklist.json** 63 | 64 | ## 2022-01-29 65 | 66 | - **channels**: added `network` field 67 | 68 | ## 2022-01-25 69 | 70 | - **channels**: added the `subdivision` and `city` field 71 | - **categories**: removed `local` category 72 | -------------------------------------------------------------------------------- /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 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # API 2 | 3 | ## Overview 4 | 5 | - [Channels](#channels) 6 | - [Feeds](#feeds) 7 | - [Streams](#streams) 8 | - [Guides](#guides) 9 | - [Categories](#categories) 10 | - [Languages](#languages) 11 | - [Countries](#countries) 12 | - [Subdivisions](#subdivisions) 13 | - [Regions](#regions) 14 | - [Timezones](#timezones) 15 | - [Blocklist](#blocklist) 16 | 17 | ### Channels 18 | 19 | ``` 20 | https://iptv-org.github.io/api/channels.json 21 | ``` 22 | 23 | ```jsonc 24 | [ 25 | //... 26 | { 27 | "id": "AnhuiTV.cn", 28 | "name": "Anhui TV", 29 | "alt_names": ["安徽卫视"], 30 | "network": "Anhui", 31 | "owners": ["China Central Television"], 32 | "country": "CN", 33 | "subdivision": "CN-AH", 34 | "city": "Hefei", 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 | "logo": "https://example.com/logo.png" 42 | } 43 | //... 44 | ] 45 | ``` 46 | 47 | | Field | Type | Description | 48 | | ----------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | 49 | | id | string | Unique channel ID | 50 | | name | string | Full name of the channel | 51 | | alt_names | array | List of alternative channel names | 52 | | network | string or null | Name of the network operating the channel | 53 | | owners | array | List of channel owners | 54 | | 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)) | 55 | | subdivision | string or null | Code of the subdivision (e.g., provinces or states) from which the broadcast is transmitted ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)) | 56 | | city | string or null | Name of the city from which the broadcast is transmitted | 57 | | categories | array | List of categories to which this channel belongs | 58 | | is_nsfw | boolean | Indicates whether the channel broadcasts adult content | 59 | | launched | string or null | Launch date of the channel (`YYYY-MM-DD`) | 60 | | closed | string or null | Date on which the channel closed (`YYYY-MM-DD`) | 61 | | replaced_by | string or null | The ID of the channel that this channel was replaced by | 62 | | website | string or null | Official website URL | 63 | | logo | string | Logo URL | 64 | 65 | Source of data: https://github.com/iptv-org/database 66 | 67 | ### Feeds 68 | 69 | ``` 70 | https://iptv-org.github.io/api/feeds.json 71 | ``` 72 | 73 | ```jsonc 74 | [ 75 | //... 76 | { 77 | "channel": "BBCOne.uk", 78 | "id": "EastMidlandsHD", 79 | "name": "East Midlands HD", 80 | "is_main": false, 81 | "broadcast_area": ["c/UK"], 82 | "timezones": ["Europe/London"], 83 | "languages": ["eng"], 84 | "format": "1080i" 85 | } 86 | //... 87 | ] 88 | ``` 89 | 90 | | Field | Type | Description | 91 | | -------------- | ------- | -------------------------------------------------------------------------------------------------------------- | 92 | | channel | string | Channel ID | 93 | | id | string | Unique feed ID | 94 | | name | string | Name of the feed | 95 | | is_main | boolean | Indicates if this feed is the main for the channel | 96 | | broadcast_area | array | List of codes describing the broadcasting area (`r/`, `c/`, `s/`) | 97 | | timezones | array | List of timezones in which the feed is broadcast | 98 | | languages | array | List of broadcast languages | 99 | | format | string | Video format of the feed | 100 | 101 | Source of data: https://github.com/iptv-org/database 102 | 103 | ### Streams 104 | 105 | ``` 106 | https://iptv-org.github.io/api/streams.json 107 | ``` 108 | 109 | ```jsonc 110 | [ 111 | //... 112 | { 113 | "channel": "BBCOne.uk", 114 | "feed": "EastMidlandsHD", 115 | "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8", 116 | "referrer": "http://example.com/", 117 | "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", 118 | "quality": "720p" 119 | } 120 | //... 121 | ] 122 | ``` 123 | 124 | | Field | Type | Description | 125 | | ---------- | -------------- | -------------------------------------------------------------------------------------------------------------------- | 126 | | channel | string or null | Channel ID | 127 | | feed | string or null | Feed ID | 128 | | url | string | Stream URL | 129 | | referrer | string or null | The [Referer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) request header for the stream | 130 | | 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 | 131 | | quality | string or null | Maximum stream quality | 132 | 133 | Source of data: https://github.com/iptv-org/iptv 134 | 135 | ### Guides 136 | 137 | ``` 138 | https://iptv-org.github.io/api/guides.json 139 | ``` 140 | 141 | ```jsonc 142 | [ 143 | //... 144 | { 145 | "channel": "BBCOne.uk", 146 | "feed": "EastMidlandsHD", 147 | "site": "sky.co.uk", 148 | "site_id": "bbcone", 149 | "site_name": "BBC One", 150 | "lang": "en" 151 | } 152 | //... 153 | ] 154 | ``` 155 | 156 | | Field | Type | Description | 157 | | --------- | -------------- | --------------------------------------------------------------------------------- | 158 | | channel | string or null | Channel ID | 159 | | feed | string or null | Feed ID | 160 | | site | string | Site domain name | 161 | | site_id | string | Unique channel ID used on the site | 162 | | site_name | string | Channel name used on the site | 163 | | lang | string | Language of the guide ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) code) | 164 | 165 | Source of data: https://github.com/iptv-org/epg 166 | 167 | ### Categories 168 | 169 | ``` 170 | https://iptv-org.github.io/api/categories.json 171 | ``` 172 | 173 | ```jsonc 174 | [ 175 | //... 176 | { 177 | "id": "documentary", 178 | "name": "Documentary" 179 | } 180 | //... 181 | ] 182 | ``` 183 | 184 | | Field | Type | Description | 185 | | ----- | ------ | -------------------- | 186 | | id | string | Category ID | 187 | | name | string | Name of the category | 188 | 189 | Source of data: https://github.com/iptv-org/database 190 | 191 | ### Languages 192 | 193 | ``` 194 | https://iptv-org.github.io/api/languages.json 195 | ``` 196 | 197 | ```jsonc 198 | [ 199 | //... 200 | { 201 | "name": "French", 202 | "code": "fra" 203 | } 204 | //... 205 | ] 206 | ``` 207 | 208 | | Field | Type | Description | 209 | | ----- | ------ | ------------------------------------------------------------------------- | 210 | | name | string | Language name | 211 | | code | string | [ISO 639-3](https://en.wikipedia.org/wiki/ISO_639-3) code of the language | 212 | 213 | Source of data: https://github.com/iptv-org/database 214 | 215 | ### Countries 216 | 217 | ``` 218 | https://iptv-org.github.io/api/countries.json 219 | ``` 220 | 221 | ```jsonc 222 | [ 223 | //... 224 | { 225 | "name": "Canada", 226 | "code": "CA", 227 | "languages": ["eng", "fra"], 228 | "flag": "🇨🇦" 229 | } 230 | //... 231 | ] 232 | ``` 233 | 234 | | Field | Type | Description | 235 | | --------- | ------ | ----------------------------------------------------------------------------------------------------- | 236 | | name | string | Name of the country | 237 | | code | string | [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country | 238 | | languages | array | List of official languages of the country ([ISO 639-3](https://en.wikipedia.org/wiki/ISO_639-3) code) | 239 | | flag | string | Country flag emoji | 240 | 241 | Source of data: https://github.com/iptv-org/database 242 | 243 | ### Subdivisions 244 | 245 | ``` 246 | https://iptv-org.github.io/api/subdivisions.json 247 | ``` 248 | 249 | ```jsonc 250 | [ 251 | //... 252 | { 253 | "country": "CA", 254 | "name": "Ontario", 255 | "code": "CA-ON" 256 | } 257 | //... 258 | ] 259 | ``` 260 | 261 | | Field | Type | Description | 262 | | ------- | ------ | ------------------------------------------------------------------------------------------ | 263 | | country | string | [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code of the country | 264 | | name | string | Subdivision name | 265 | | code | string | [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) code of the subdivision | 266 | 267 | Source of data: https://github.com/iptv-org/database 268 | 269 | ### Regions 270 | 271 | ``` 272 | https://iptv-org.github.io/api/regions.json 273 | ``` 274 | 275 | ```jsonc 276 | [ 277 | //... 278 | { 279 | "code": "MAGHREB", 280 | "name": "Maghreb", 281 | "countries": ["DZ", "LY", "MA", "MR", "TN"] 282 | } 283 | //... 284 | ] 285 | ``` 286 | 287 | | Field | Type | Description | 288 | | --------- | ------ | ------------------------------- | 289 | | code | string | Code of the region | 290 | | name | string | Full name of the region | 291 | | countries | array | List of countries in the region | 292 | 293 | Source of data: https://github.com/iptv-org/database 294 | 295 | ### Timezones 296 | 297 | ``` 298 | https://iptv-org.github.io/api/timezones.json 299 | ``` 300 | 301 | ```jsonc 302 | [ 303 | //... 304 | { 305 | "id": "Europe/London", 306 | "utc_offset": "+00:00", 307 | "countries": ["UK", "GG", "IM", "JE"] 308 | } 309 | //... 310 | ] 311 | ``` 312 | 313 | | Field | Type | Description | 314 | | ---------- | ------ | ------------------------------------------------------------------------- | 315 | | id | string | Timezone ID from [tz database](https://en.wikipedia.org/wiki/Tz_database) | 316 | | utc_offset | string | [UTC offset](https://en.wikipedia.org/wiki/UTC_offset) for this time zone | 317 | | countries | array | List of countries included in this time zone | 318 | 319 | Source of data: https://github.com/iptv-org/database 320 | 321 | ### Blocklist 322 | 323 | ``` 324 | https://iptv-org.github.io/api/blocklist.json 325 | ``` 326 | 327 | ```jsonc 328 | [ 329 | //... 330 | { 331 | "channel": "AnimalPlanetEast.us", 332 | "reason": "dmca", 333 | "ref": "https://github.com/iptv-org/iptv/issues/1831" 334 | } 335 | //... 336 | ] 337 | ``` 338 | 339 | | Field | Type | Description | 340 | | ------- | ------ | ----------------------------------------------- | 341 | | channel | string | Channel ID | 342 | | reason | string | Reason for blocking (`dmca` or `nsfw`) | 343 | | ref | string | Link to removal request or DMCA takedown notice | 344 | 345 | Source of data: https://github.com/iptv-org/database 346 | 347 | ## Contribution 348 | 349 | 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). 350 | --------------------------------------------------------------------------------