├── .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 |
--------------------------------------------------------------------------------