mirror of https://github.com/Free-TV/IPTV
Compare commits
9 Commits
070a9f673a
...
d9e966f264
| Author | SHA1 | Date |
|---|---|---|
|
|
d9e966f264 | |
|
|
6ec6fb7c0f | |
|
|
9269fbb122 | |
|
|
5280f362ca | |
|
|
50ee8e8861 | |
|
|
02c84cb055 | |
|
|
ea332da787 | |
|
|
4462172b34 | |
|
|
cbe79bfd87 |
73
README.md
73
README.md
|
|
@ -1,7 +1,19 @@
|
|||
Free TV
|
||||
=======
|
||||
IPTV Playlist Project
|
||||
======
|
||||
|
||||
This is an M3U playlist for free TV channels around the World.
|
||||
Welcome to the IPTV project! This repository offers a curated collection of free TV playlists for IPTV players, providing access to various channels from around the world.
|
||||
|
||||
Table of Contents
|
||||
======
|
||||
|
||||
1. Introduction
|
||||
2. Philosophy
|
||||
3. Installation & Usage
|
||||
4. Feed Sources
|
||||
5. Format
|
||||
7. Contributing
|
||||
8. Pull Requests
|
||||
9. License
|
||||
|
||||
Either free locally (over the air):
|
||||
|
||||
|
|
@ -95,6 +107,10 @@ Or free on the Internet:
|
|||
|
||||
To use it point your IPTV player to https://raw.githubusercontent.com/Free-TV/IPTV/master/playlist.m3u8.
|
||||
|
||||
Introduction
|
||||
======
|
||||
This project provides a collection of free IPTV playlists, allowing users to stream live TV channels thorugh compatible IPTV players. The playlists are community-driven, regularly updated, and intended for users looking for a wide range of channels.Channels are free-to-air or sourced from free online platforms, ensuring that users only access legal content.
|
||||
|
||||
Philosophy
|
||||
==========
|
||||
|
||||
|
|
@ -124,19 +140,38 @@ This is a playlist for everybody.
|
|||
- No channels dedicated to any particular political party
|
||||
- No channels made for a country and funded by a different country
|
||||
|
||||
Installation and Usage
|
||||
======
|
||||
|
||||
**To use playlists**
|
||||
|
||||
1. Download or clone this repository
|
||||
2. Use any IPTV player (e.g. VLC, Kodi, IPTV Smarters) to load the '.m3u' file or copy the URL into your player.
|
||||
|
||||
**Reccomended Players:**
|
||||
|
||||
- VLC Media Player
|
||||
- Kodi
|
||||
- IPTV Smarters
|
||||
|
||||
**How to Use:**
|
||||
|
||||
1. Open your IPTV player.
|
||||
Import the playlist file or URL.
|
||||
Start streaming live TV channels!
|
||||
|
||||
Feed sources
|
||||
============
|
||||
|
||||
It can be quite hard to find up to date URLs, here's a list of sources:
|
||||
Finding up-to-date URLs can be difficult. Here are some useful sources:
|
||||
|
||||
- https://github.com/iptv-org/iptv/tree/master/streams
|
||||
- Youtube: As long as the channel is live and its URL doesn't change (check the age of the stream, the number of viewers..)
|
||||
- Dailymotion: Same criteria as for youtube
|
||||
- Live streams from platforms like YouTube and Dailymotion, ensuring the stream is active and stable.
|
||||
|
||||
Format
|
||||
======
|
||||
|
||||
The m3u8 playlist is generated by `make_playlist.py`, using the `.md` files located in `lists`.
|
||||
The m3u8 playlist is generated by `make_playlist.py`, using the `.md` files in the `lists` directory.
|
||||
|
||||
Each .md file represesnts a group. The `<h1>` line is used as the group title.
|
||||
|
||||
|
|
@ -153,7 +188,16 @@ Issues
|
|||
|
||||
Only create issues for bugs and feature requests.
|
||||
|
||||
Do not create issues to add/edit or to remove channels. If you want to add/edit/remove channels, create a pull request directly.
|
||||
Do not create issues for adding, editing, or removing channels. For these, please submit a pull request.
|
||||
|
||||
Contributing
|
||||
======
|
||||
|
||||
**Contributions are welcome! To contribute:**
|
||||
|
||||
1. Fork the repository.
|
||||
2. Create a new branch for your changes.
|
||||
3. Submit a pull request with your updates.
|
||||
|
||||
Pull Requests
|
||||
=============
|
||||
|
|
@ -175,10 +219,15 @@ To add a new channel, make a Pull Request.
|
|||
|
||||
**Removing a Channel**
|
||||
|
||||
To remove a channel, make a Pull Request.
|
||||
- To remove a channel, make a Pull Request.
|
||||
|
||||
In your Pull Request you need to provide information to show that the channel is only available via a private paid subscription.
|
||||
- In your Pull Request you need to provide information to show that the channel is only available via a private paid subscription.
|
||||
|
||||
Note: Public taxes (whether national or regional, whether called TV License or not) do not constitute a private paid subscription.
|
||||
- Note: Public taxes (whether national or regional, whether called TV License or not) do not constitute a private paid subscription.
|
||||
|
||||
If a stream is broken, simply move the channel to the invalid category and replace `[>]` with `[x]` in the url column.
|
||||
- If a stream is broken, simply move the channel to the invalid category and replace `[>]` with `[x]` in the url column.
|
||||
|
||||
License
|
||||
======
|
||||
|
||||
This project currently does not have a license. Please clarify the licensing terms before using or contributing.
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
|:---:|:--------------:|:-----:|:----:|:------:|
|
||||
| 1 | BHT 1 | [>](https://bhrtstream.bhtelecom.ba/bhrtportal_hd.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/9/93/Logo_of_BHT_1_%282003-2012%29.png" /> | BHT1.ba |
|
||||
| 2 | Federalna televizija (FTV) Ⓢ | [>](http://94.250.2.6:7374/play/a02s/index.m3u8) | <img height="20" src="https://i.imgur.com/Jpvs4u3.png" /> | FederalnaTV.ba |
|
||||
| 3 | Televizija Republike Srpske (RTRS) Ⓢ | [>](https://parh.rtrs.tv/tv/live/playlist.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/RTRS_Logo.svg/640px-RTRS_Logo.svg.png" /> | RTRSTV.ba |
|
||||
| 3 | Televizija Republike Srpske (RTRS) | [>](https://parh.rtrs.tv/tv/live/playlist.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/RTRS_Logo.svg/640px-RTRS_Logo.svg.png" /> | RTRSTV.ba |
|
||||
| 3 | RTRS PLUS Ⓢ | [>](https://pluslive.rtrs.tv/plus/plus/playlist.m3u8) | <img height="20" src="https://i.imgur.com/k06WvYl.png"/> | RTRSplus.ba |
|
||||
| 4 | N1 Bosna i Hercegovina | [>](https://best-str.umn.cdn.united.cloud/stream?channel=n1bos&p=n1Sh4redSecre7iNf0&sp=n1info&stream=sp1400&u=n1info) | <img height="20" src="https://i.imgur.com/72oMSWz.png"/> | N1BosniaHerzegovina.ba |
|
||||
| 5 | RTV HB Ⓢ | [>](https://prd-hometv-live-open.spectar.tv/ERO_1_083/playlist.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/en/6/60/Logo_of_TV_Herceg-Bosne.png"/> | RTVHB.ba |
|
||||
| 6 | RTV BN | [>](https://rtvbn.tv:8080/live/index.m3u8) | <img height="20" src="https://i.imgur.com/DUBvfWb.png"/> | BNTV.ba |
|
||||
| 6 | RTV BN Ⓢ | [>](https://stream.rtvbn.tv:8080/live/index.m3u8) | <img height="20" src="https://i.imgur.com/DUBvfWb.png"/> | BNTV.ba |
|
||||
| 7 | RTV Glas Drine | [>](http://glasdrine.cutuk.net:8081/433ssdsw/GlasDrineSD/playlist.m3u8) | <img height="20" src="https://i.imgur.com/9NgxOdb.png"/> | RTVGlasDrine.ba |
|
||||
| 8 | Sevdah Ⓢ | [>](https://restreamer2.tnt.ba/hls/stream.m3u8) | <img height="20" src="https://i.imgur.com/V6W3yEp.png"/> | SevdahTV.ba |
|
||||
| 9 | TNT Kids | [>](https://restreamer1.tnt.ba/hls/tntkids.m3u8) | <img height="20" src="https://i.imgur.com/irTDbpn.png"/> | TNTKidsTV.ba |
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
| # | Channel | Link | Logo | EPG id |
|
||||
|:---:|:--------------:|:-----:|:----:|:------:|
|
||||
| 1 | TVCG 1 | [>](http://cdn3.bcdn.rs:1935/cg1/smil:cg1.smil/playlist.m3u8) | <img height="20" src="https://i.imgur.com/QORHrXu.png"/> | TVCG1.me |
|
||||
| 2 | TVCG 2 | [>](http://cdn3.bcdn.rs:1935/cg2/smil:cg2.smil/playlist.m3u8) | <img height="20" src="https://i.imgur.com/WECmUKH.png"/> | TVCG2.me |
|
||||
| 3 | TVCG 3 | [>](https://parlament.rtcg.me:1936/pr/smil:parlament.smil/playlist.m3u8) | <img height="20" src="https://i.imgur.com/XC7zVog.png"/> | Parlamentarnikanal.me |
|
||||
| 99 | TVCG MNE | [>](http://cdn3.bcdn.rs:1935/cgsat/smil:cgsat.smil/playlist.m3u8) | <img height="20" src="https://i.imgur.com/pf8VEwf.png"/> | TVCGMNE.me |
|
||||
| 1 | TVCG 1 Ⓖ | [>](https://rtcg-live-open-geo.morescreens.com/RTCG_1_001/playlist.m3u8) | <img height="20" src="https://i.imgur.com/QORHrXu.png"/> | TVCG1.me |
|
||||
| 2 | TVCG 2 Ⓖ | [>](https://rtcg-live-open-geo.morescreens.com/RTCG_1_002/playlist.m3u8) | <img height="20" src="https://i.imgur.com/WECmUKH.png"/> | TVCG2.me |
|
||||
| 3 | TVCG 3 Ⓖ | [>](https://rtcg-live-open-geo.morescreens.com/RTCG_1_003/playlist.m3u8) | <img height="20" src="https://i.imgur.com/XC7zVog.png"/> | TVCG3.me |
|
||||
| 99 | TVCG MNE | [>](https://rtcg-live-open.morescreens.com/RTCG_1_004/playlist.m3u8) | <img height="20" src="https://i.imgur.com/pf8VEwf.png"/> | TVCGMNE.me |
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@
|
|||
| 5 | RTP Madeira Ⓢ | [>](https://streaming-live.rtp.pt/liverepeater/smil:rtpmadeira.smil/playlist.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/en/a/ac/RTP_Madeira_2016.png"/> | RTPMadeira.pt |
|
||||
| 6 | RTP3 | [>](https://streaming-live.rtp.pt/livetvhlsDVR/rtpnHDdvr.smil/playlist.m3u8?DVR=) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Rtp3.png"/> | RTP3.pt |
|
||||
| 7 | RTP Memória | [x]() | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/7/79/RtpMemoria_positivo_horiz_RGB.png"/> | RTPMemoria.pt |
|
||||
| 8 | RTP África | [>](https://streaming-live.rtp.pt/liverepeater/smil:rtpafrica.smil/playlist.m3u8) | <img height="20" src="https://i.imgur.com/ISFNy17.png"/> | RTPAfrica.pt |
|
||||
| 9 | RTP Mundo | [>](https://streaming-live.rtp.pt/liverepeater/smil:rtpi.smil/playlist.m3u8) | <img height="20" src="https://i.imgur.com/mJ3gyqx.png"/> | RTPInternacional.pt |
|
||||
| 1 | Porto Canal Ⓢ | [>](https://streamer-a01.videos.sapo.pt/live/portocanal/playlist.m3u8) | <img height="20" src="https://i.imgur.com/wsyvP2H.png"/> | PortoCanal.pt |
|
||||
| 2 | ADtv Ⓢ | [>](https://playout172.livextend.cloud/liveiframe/_definst_/ngrp:liveartvabr_abr/playlist.m3u8) | <img height="20" src="https://i.imgur.com/FvlcU3z.png"/> |
|
||||
| 3 | CNN Portugal | [>](https://sktv-forwarders.7m.pl/get.php?x=CNN_Portugal) | <img height="20" src="https://i.imgur.com/NYH39xs.png"/> | CNNPortugal.pt |
|
||||
| 2 | ADtv Ⓢ | [>](https://playout172.livextend.cloud/liveiframe/_definst_/ngrp:liveartvabr_abr/playlist.m3u8) | <img height="20" src="https://i.imgur.com/FvlcU3z.png"/> | |
|
||||
| 3 | CNN Portugal | [>](https://sktv-forwarders.7m.pl/get.php?x=CNN_Portugal) | <img height="20" src="https://i.imgur.com/NYH39xs.png"/> | CNNPortugal.pt |
|
||||
| 4 | Euronews em Português Ⓨ| [>](https://www.youtube.com/euronewspt/live) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Euronews_2022.svg/640px-Euronews_2022.svg.png"/> | EuronewsPortuguese.fr |
|
||||
|
|
|
|||
|
|
@ -2,15 +2,18 @@
|
|||
|
||||
| # | Channel | Link | Logo | EPG id |
|
||||
|:---:|:--------------:|:-----:|:----:|:------:|
|
||||
| 1 | RTS 1 | [>](https://webtvstream.bhtelecom.ba/rts1.m3u8) | <img height="20" src="https://i.imgur.com/S1pKHSR.png"/> | RTS1.rs |
|
||||
| 2 | RTS 2 | [>](https://webtvstream.bhtelecom.ba/rts2.m3u8) | <img height="20" src="https://i.imgur.com/jltAf5h.png"/> | RTS2.rs |
|
||||
| 3 | RTS 3 | [x]() | <img height="20" src="https://i.imgur.com/gxuGB4J.png"/> | RTS3.rs |
|
||||
| 0 | RTS Svet | [x]() | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/8/8a/Rts-svet.png"/> | RTSSvet.rs |
|
||||
| 0 | Euronews Serbia | [>](https://d1ei8ofhgfmkac.cloudfront.net/app-19518-1306/ngrp:QoZfNjsg_all/playlist.m3u8) | <img height="20" src="https://i.imgur.com/b24QKcq.png"/> | EuroNewsSerbia.rs |
|
||||
| 1 | RTS 1 | [>](https://webtvstream.bhtelecom.ba/rts1.m3u8) | <img height="20" src="https://i.imgur.com/S1pKHSR.png"/> | RTS1.rs |
|
||||
| 2 | RTS 2 | [>](https://webtvstream.bhtelecom.ba/rts2.m3u8) | <img height="20" src="https://i.imgur.com/jltAf5h.png"/> | RTS2.rs |
|
||||
| 3 | RTS 3 | [x]() | <img height="20" src="https://i.imgur.com/gxuGB4J.png"/> | RTS3.rs |
|
||||
| 4 | Red TV | [>](https://edge8.pink.rs/redtv/chunklist_w1213385221.m3u8) | <img height="20" src="https://i.imgur.com/cpN7NrL.png"/> | RedTV.rs |
|
||||
| 5 | Kurir TV | [>](https://static.am.mediaoutcast.com/storage/nQJnjJkO/nQJnjJkO/stream/O68x4o8g/720p/720p.m3u8) | <img height="20" src="https://i.imgur.com/HBPnUD5.png"/> | KurirTV.rs |
|
||||
| 6 | Informer TV | [>](https://edge-rs-03.maksnet.tv/informertv-secure/web/playlist.m3u8) | <img height="20" src="https://i.imgur.com/9wdEHRf.png"/> | InformerTV.rs |
|
||||
| 0 | RTS Svet | [x]() | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/8/8a/Rts-svet.png"/> | RTSSvet.rs |
|
||||
| 0 | Euronews Serbia | [x](https://d1ei8ofhgfmkac.cloudfront.net/app-19518-1306/ngrp:QoZfNjsg_all/playlist.m3u8) | <img height="20" src="https://i.imgur.com/b24QKcq.png"/> | EuroNewsSerbia.rs |
|
||||
|
||||
<h3>Vojvodina</h3>
|
||||
|
||||
| # | Channel | Link | Logo | EPG id |
|
||||
|:---:|:--------------:|:-----:|:----:|:------:|
|
||||
| 1 | RTV 1 | [>](rtsp://212.200.255.151/rtv1) | <img height="20" src="https://i.imgur.com/CG44YT3.png"/> | RTV1.rs |
|
||||
| 2 | RTV 2 | [>](rtsp://212.200.255.151/rtv2) | <img height="20" src="https://i.imgur.com/skpr66t.png"/> | RTV2.rs |
|
||||
| 1 | RTV 1 | [>](rtmp://212.200.230.50:1935/RTV/rtv1) | <img height="20" src="https://i.imgur.com/CG44YT3.png"/> | RTV1.rs |
|
||||
| 2 | RTV 2 | [>](rtmp://212.200.230.50:1935/RTV/rtv2) | <img height="20" src="https://i.imgur.com/skpr66t.png"/> | RTV2.rs |
|
||||
|
|
|
|||
|
|
@ -103,6 +103,9 @@ class Channel:
|
|||
self.url = self.url[self.url.find("(")+1:self.url.rfind(")")]
|
||||
self.logo = parts[4].strip()
|
||||
self.logo = self.logo[self.logo.find('src="')+5:self.logo.rfind('"')]
|
||||
|
||||
self.chno = self.number if self.number and self.number != "0" else None
|
||||
|
||||
if len(parts) > 6:
|
||||
self.epg = parts[5].strip()
|
||||
else:
|
||||
|
|
@ -110,10 +113,11 @@ class Channel:
|
|||
|
||||
def to_m3u_line(self):
|
||||
country = f' tvg-country="{self.country_code}"' if self.country_code else ""
|
||||
chno = f' tvg-chno="{self.chno}"' if self.chno else ""
|
||||
if self.epg is None:
|
||||
return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}"{country} group-title="{self.group}",{self.name}\n{self.url}')
|
||||
return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}"{chno}{country} group-title="{self.group}",{self.name}\n{self.url}')
|
||||
else:
|
||||
return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}" tvg-id="{self.epg}"{country} group-title="{self.group}",{self.name}\n{self.url}')
|
||||
return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}" tvg-id="{self.epg}"{chno}{country} group-title="{self.group}",{self.name}\n{self.url}')
|
||||
|
||||
|
||||
def main():
|
||||
|
|
|
|||
2726
playlist.m3u8
2726
playlist.m3u8
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue