Before submitting your contribution, please make sure to take a moment and read through the following guidelines:
To request a channel, create an issue and complete all details requested. Understand that our community of volunteers will try to help you, but if a public link cannot be found, there is little we can do. (IMPORTANT: an issue without a valid channel ID or containing a request for more than one channel will be closed immediately)
To report a broadcast that is not working, create an issue with a description of the channel. (IMPORTANT: an issue should contain a report for only one channel, otherwise it will be closed immediately)
If you find any content in the repository that you own and you would like us to remove, please create an issue and provide all necessary information. If the request is granted, the specified content will be removed from the repository within one business day.
If you would like to replace a broken stream or add a new one, please do the following:
- make sure that the link you want to add works by using a program like VLC media player
- check if the channel is working outside your country by using a VPN or use a service like streamtest.in
- find out from which country the channel is being broadcasted. This information can usually be found on lyngsat.com or wikipedia.org
- find the corresponding ISO_3166-2 code for the country
- open the
/streams
folder and find the file that has the same code in its name and open it - if broken, find the broken link in this file and replace it with working one
- if new, at the very end of this file add a link to the channel with a description
- if the broadcast is not available outside of a certain country, add the label
[Geo-blocked]
to the end of the channel name - if the broadcast is not available 24 hours a day, add the label
[Not 24/7]
- commit all changes and send a pull request
- open
.readme/template.md
- make the necessary changes
- commit all changes and send a pull request
- open
.github/CONTRIBUTING.md
- make the necessary changes
- commit all changes and send a pull request
For a stream to be approved, its description must follow this template:
#EXTINF:-1 tvg-id="CHANNEL_ID",CHANNEL_NAME (RESOLUTION) [LABEL]
STREAM_URL
Attribute | Description | Required | Valid values |
---|---|---|---|
CHANNEL_ID |
Channel ID. | Optional | Full list of supported channels could be found on iptv-org.github.io |
CHANNEL_NAME |
Full name of the channel. May contain any characters except: , , ( , ) , [ , ] . It is recommended to use the name listed on lyngsat or wikipedia if possible. |
Required | - |
RESOLUTION |
Maximum stream resolution. | Optional | 2160p , 1080p , 720p , 480p , 360p etc |
LABEL |
Specified in cases where the broadcast for some reason may not be available to some users. | Optional | Geo-blocked or Not 24/7 |
STREAM_URL |
Stream URL. | Required | - |
Example:
#EXTINF:-1 tvg-id="ExampleTV.ua",Example TV (720p) [Not 24/7]
https://example.com/playlist.m3u8
Also, if necessary, you can specify custom HTTP User-Agent and Referrer via the #EXTVLCOPT
tag:
#EXTINF:-1 tvg-id="ExampleTV.us",Example TV
#EXTVLCOPT:http-referrer=http://example.com/
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
http://example.com/stream.m3u8
.github/
ISSUE_TEMPLATE/
: issue templates for the repository.CODE_OF_CONDUCT.md
: rules you shouldn't break if you don't want to get banned.
.readme/
config.json
: config for themarkdown-include
package, which is used to compile everything into oneREADME.md
file.preview.png
: image displayed in theREADME.md
.supported-categories.md
: list of supported categories.supported-regions.md
: list of supported regions.template.md
: template forREADME.md
.
scripts/
: contains all the scripts used in GitHub workflows.streams/
: contains all streams broken down by the country from which they are broadcast.tests/
: contains tests to check the scripts.CONTRIBUTING.md
: file you are currently reading.README.md
: project description generated from the contents of the.readme/
folder.