<div align="center">
<h1>
<a href="#">
<img alt="USTVGO-IPTV Logo" width="50%" src="https://user-images.githubusercontent.com/20641837/173175835-4161afe3-ae49-48bb-b937-cecb600bc49d.svg"/>
</a>
</h1>
</div>
<div align="center">
<a href="https://github.com/interlark/ustvgo-tvguide/actions/workflows/tvguide.yml"><img alt="TV Guide status" src="https://github.com/interlark/ustvgo-tvguide/actions/workflows/tvguide.yml/badge.svg"/></a>
<a href="https://pypi.org/project/ustvgo-iptv"><img alt="PyPi version" src="https://badgen.net/pypi/v/ustvgo-iptv"/></a>
<a href="https://pypi.org/project/ustvgo-iptv"><img alt="Supported platforms" src="https://badgen.net/badge/platform/Linux,macOS,Windows?list=|"/></a>
</div><br>
**USTVGO-IPTV** is an app that allows you to watch **free IPTV**.
It **extracts stream URLs** from [ustvgo.tv](http://ustvgo.tv) website, **generates master playlist** with available TV channels for IPTV players and **proxies the traffic** between your IPTV players and streaming backends.
> **Note**: See also a [port](https://github.com/interlark/123tv-iptv) of this app for 123TV service
## ✨ Features
- 🔑 Auto auth-key rotation
> As server proxies the traffic it can detect if your auth key is expired and refresh it on the fly.
- 📺 Available [TV Guide](https://github.com/interlark/ustvgo-tvguide)
> [TV Guide](https://github.com/interlark/ustvgo-tvguide) repo generates EPG XML for upcoming programs of all the channels twice an hour.
- [![](https://user-images.githubusercontent.com/20641837/173175879-aed31bd4-b188-4681-89df-5ffc3ea05a82.svg)](https://github.com/interlark/ustvgo-tvguide/tree/master/images/icons/channels)
Two iconsets for IPTV players with light and dark backgrounds
> There are 2 channel iconsets adapted for apps with light and dark UI themes.
- 🗔 Cross-platform GUI
> GUI is available for Windows, Linux and MacOS for people who are not that much into CLI.
## 🚀 Installation
- **CLI**
```bash
pip install ustvgo-iptv
```
- **GUI**
You can download GUI app from [Releases](https://github.com/interlark/ustvgo-iptv/releases/latest) for your OS.
- **Docker**
```bash
docker run -d --name=ustvgo-iptv -p 6363:6363 --restart unless-stopped ghcr.io/interlark/ustvgo-iptv:latest
```
> For dark icons append following argument: `--icons-for-light-bg`
## ⚙️ Usage - CLI
You can run the app without any arguments.
```
ustvgo-iptv
```
<img alt="USTVGO-IPTV CLI screencast" width="666" src="https://user-images.githubusercontent.com/20641837/175779375-9a1a2525-b7ab-4d7f-90e9-b9e585e93902.gif"/>
| Optional argument | Description |
| :--- | :---- |
| --icons-for-light-bg | Switch to dark iconset for players with light UI. |
| --access-logs | Enable access logs for tracking requests activity. |
| --port 6363 | Server port. By default, the port is **6363**. |
| --parallel 10 | Number of parallel parsing requests. Default is **10**. |
| --use-uncompressed-tvguide| By default, master playlist has a link to **compressed** version of TV Guide:<br/>`url-tvg="http://127.0.0.1:6363/tvguide.xml.gz"`<br/>With this argument you can switch it to uncompressed:<br/>`url-tvg="http://127.0.0.1:6363/tvguide.xml"` |
| --password <PASSWORD> | Set password prefix for the URL.<br/>Could be used to prevent public playlists scraping. |
<br />
**Linux** users can install **systemd service** that automatically runs ustvgo-iptv on start-ups ⏰.
```bash
# Install "ustvgo-iptv" service
sudo -E env "PATH=$PATH" ustvgo-iptv install-service
# You can specify any optional arguments you want
sudo -E env "PATH=$PATH" ustvgo-iptv --port 1234 --access-logs install-service
# Uninstall "ustvgo-iptv" service
sudo -E env "PATH=$PATH" ustvgo-iptv uninstall-service
```
## ⚙️ Usage - GUI
<img alt="USTVGO-IPTV GUI screenshot" width="614" src="https://user-images.githubusercontent.com/20641837/211169975-f11a3cdb-9d3a-4e40-9a2d-4442db985d55.png"/>
If you don't like command line stuff, you can run GUI app and click "Start", simple as that.
GUI uses **config file** on following path:
* **Linux**: ~/.config/ustvgo-iptv/settings.cfg
* **Mac**: ~/Library/Application Support/ustvgo-iptv/settings.cfg
* **Windows**: C:\Users\\%USERPROFILE%\AppData\Local\ustvgo-iptv\settings.cfg
## 🔗 URLs
To play and enjoy your free IPTV you need 2 URLs that this app provides:
1) Your generated **master playlist**: 🔗 http://127.0.0.1:6363/ustvgo.m3u8
2) **TV Guide** (content updates twice an hour): 🔗 http://127.0.0.1:6363/tvguide.xml
## ▶️ Players
Here is a **list** of popular IPTV players.
**USTVGO**'s channels have **EIA-608** embedded subtitles. In case if you're not a native speaker and use *TV*, *Cartoons*, *Movies* and *Shows* to learn English and Spanish languages I would recommend you following free open-source cross-platform IPTV players that can handle EIA-608 subtitles:
- **[VLC](https://github.com/videolan/vlc)**
This old beast could play **any subtitles**. Unfortunately it **doesn't support TV Guide**.
- **Play**
```bash
vlc http://127.0.0.1:6363/ustvgo.m3u8
```
- **[MPV](https://github.com/mpv-player/mpv)**
Fast and extensible player. It **supports subtitles**, but not that good as VLC, sometimes you could encounter troubles playing roll-up subtitles. Unfortunately it **doesn't suppport TV Guide**.
- **Play**
```bash
mpv http://127.0.0.1:6363/ustvgo.m3u8
```
- **[Jellyfin Media Player](https://github.com/jellyfin/jellyfin-media-player)**
<img alt="Jellyfin Media Player screenshot" width="49%" src="https://user-images.githubusercontent.com/20641837/173175969-cbfe5adc-1dc8-4e3b-946c-fa4e295d8b8c.jpg"/>
<img alt="Jellyfin Media Player screenshot" width="49%" src="https://user-images.githubusercontent.com/20641837/173175973-8acb076c-e1ac-4d06-96a8-b10a72b2f7d7.jpg"/>
Comfortable, handy, extensible with smooth UI player. **Supports TV Guide**, has **mpv** as a backend.
**Supports subtitles**, but there is no option to enable them via user interface. If you want to enable IPTV subtitles you have to use following "Mute" hack.
- **Enable IPTV subtitles**
I found a quick hack to force play embedded IPTV subtitles, all you need is to create one file:
> Linux: `~/.local/share/jellyfinmediaplayer/scripts/subtitles.lua`
> Linux(Flatpak): `~/.var/app/com.github.iwalton3.jellyfin-media-player/data/jellyfinmediaplayer/scripts/subtitles.lua`
> MacOS: `~/Library/Application Support/Jellyfin Media Player/scripts/subtitles.lua`
> Windows: `%LOCALAPPDATA%\JellyfinMediaPlayer\scripts\subtitles.lua`
And paste following text in there:
```lua
-- File: subtitles.lua
function on_mute_change(name, value)
if value then
local subs_id = mp.get_property("sid")
if subs_id == "1" then
mp.osd_message("Subtitles off")
mp.set_property("sid", "0")
else
mp.osd_message("Subtitles on")
mp.set_property("sid", "1")
end
end
end
mp.observe_property("mute", "bool", on_mute_change)
```
After that every time you mute a video *(🅼 key pressed)*, you toggle subtitles on/off as a side effect.
- **Play**
```
1) Settings -> Dashboard -> Live TV -> Tuner Devices -> Add -> M3U Tuner -> URL -> http://127.0.0.1:6363/ustvgo.m3u8
2) Settings -> Dashboard -> Live TV -> TV Guide Data Providers -> Add -> XMLTV -> URL -> http://127.0.0.1:6363/tvguide.xml
3) Settings -> Dashboard -> Scheduled Tasks -> Live TV -> Refresh Guide -> Task Triggers -> "Every 30 minutes"
```
- **Note**
```
Some versions does not support compressed (*.xml.gz) TV Guides.
```
- **[IPTVnator](https://github.com/4gray/iptvnator)**
<img alt="IPTVnator screenshot" width="666" src="https://user-images.githubusercontent.com/20641837/173176009-a2e86f74-46ef-464a-bbdf-9137f1d48201.jpg"/>
Player built with [Electron](https://github.com/electron/electron) so you can run it even in browser, has light and dark themes.
**Support subtitles and TV Guide.**
- **Play**
```
1) Add via URL -> http://127.0.0.1:6363/ustvgo.m3u8
2) Settings -> EPG Url -> http://127.0.0.1:6363/tvguide.xml.gz
```
## 👍 Support
- [ustvgo.tv](https://ustvgo.tv) is wonderful project which can offer you a free IPTV, please support these guys buying VPN with their [referral link](https://ustvgo.tv/vpn). With VPN you can watch even more of their channels, like extra 25 or so.
- Also I would highly appreciate your support on this project ⠀<a href="https://www.buymeacoffee.com/interlark" target="_blank"><img alt="Buy Me A Coffee" src="https://cdn.buymeacoffee.com/buttons/default-orange.png" width="178" height="41"></a>
Raw data
{
"_id": null,
"home_page": "https://github.com/interlark/ustvgo-iptv",
"name": "ustvgo-iptv",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7.4",
"maintainer_email": "",
"keywords": "ustvgo,iptv,m3u8,playlist,tvguide,english",
"author": "Andy Trofimov",
"author_email": "interlark@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/00/c7/a399274442e3a985d3c9db08d036be508ef832b53424dbf4acf8371c5268/ustvgo-iptv-0.1.12.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n <h1>\n <a href=\"#\">\n <img alt=\"USTVGO-IPTV Logo\" width=\"50%\" src=\"https://user-images.githubusercontent.com/20641837/173175835-4161afe3-ae49-48bb-b937-cecb600bc49d.svg\"/>\n </a>\n </h1>\n</div>\n\n<div align=\"center\">\n <a href=\"https://github.com/interlark/ustvgo-tvguide/actions/workflows/tvguide.yml\"><img alt=\"TV Guide status\" src=\"https://github.com/interlark/ustvgo-tvguide/actions/workflows/tvguide.yml/badge.svg\"/></a>\n <a href=\"https://pypi.org/project/ustvgo-iptv\"><img alt=\"PyPi version\" src=\"https://badgen.net/pypi/v/ustvgo-iptv\"/></a>\n <a href=\"https://pypi.org/project/ustvgo-iptv\"><img alt=\"Supported platforms\" src=\"https://badgen.net/badge/platform/Linux,macOS,Windows?list=|\"/></a>\n</div><br>\n\n**USTVGO-IPTV** is an app that allows you to watch **free IPTV**.\n\nIt **extracts stream URLs** from [ustvgo.tv](http://ustvgo.tv) website, **generates master playlist** with available TV channels for IPTV players and **proxies the traffic** between your IPTV players and streaming backends.\n\n> **Note**: See also a [port](https://github.com/interlark/123tv-iptv) of this app for 123TV service\n\n## \u2728 Features\n- \ud83d\udd11 Auto auth-key rotation\n > As server proxies the traffic it can detect if your auth key is expired and refresh it on the fly.\n- \ud83d\udcfa Available [TV Guide](https://github.com/interlark/ustvgo-tvguide)\n > [TV Guide](https://github.com/interlark/ustvgo-tvguide) repo generates EPG XML for upcoming programs of all the channels twice an hour.\n- [![](https://user-images.githubusercontent.com/20641837/173175879-aed31bd4-b188-4681-89df-5ffc3ea05a82.svg)](https://github.com/interlark/ustvgo-tvguide/tree/master/images/icons/channels)\nTwo iconsets for IPTV players with light and dark backgrounds\n > There are 2 channel iconsets adapted for apps with light and dark UI themes.\n- \ud83d\uddd4 Cross-platform GUI\n > GUI is available for Windows, Linux and MacOS for people who are not that much into CLI.\n\n\n## \ud83d\ude80 Installation\n- **CLI**\n ```bash\n pip install ustvgo-iptv\n ```\n- **GUI**\n\n You can download GUI app from [Releases](https://github.com/interlark/ustvgo-iptv/releases/latest) for your OS.\n- **Docker**\n ```bash\n docker run -d --name=ustvgo-iptv -p 6363:6363 --restart unless-stopped ghcr.io/interlark/ustvgo-iptv:latest\n ```\n > For dark icons append following argument: `--icons-for-light-bg`\n\n## \u2699\ufe0f Usage - CLI\n\n You can run the app without any arguments.\n ```\n ustvgo-iptv\n ```\n\n <img alt=\"USTVGO-IPTV CLI screencast\" width=\"666\" src=\"https://user-images.githubusercontent.com/20641837/175779375-9a1a2525-b7ab-4d7f-90e9-b9e585e93902.gif\"/>\n\n\n| Optional argument | Description |\n| :--- | :---- |\n| --icons-for-light-bg | Switch to dark iconset for players with light UI. |\n| --access-logs | Enable access logs for tracking requests activity. |\n| --port 6363 | Server port. By default, the port is **6363**. |\n| --parallel 10 | Number of parallel parsing requests. Default is **10**. |\n| --use-uncompressed-tvguide| By default, master playlist has a link to **compressed** version of TV Guide:<br/>`url-tvg=\"http://127.0.0.1:6363/tvguide.xml.gz\"`<br/>With this argument you can switch it to uncompressed:<br/>`url-tvg=\"http://127.0.0.1:6363/tvguide.xml\"` |\n| --password <PASSWORD> | Set password prefix for the URL.<br/>Could be used to prevent public playlists scraping. |\n\n<br />\n\n**Linux** users can install **systemd service** that automatically runs ustvgo-iptv on start-ups \u23f0.\n\n```bash\n# Install \"ustvgo-iptv\" service\nsudo -E env \"PATH=$PATH\" ustvgo-iptv install-service\n\n# You can specify any optional arguments you want\nsudo -E env \"PATH=$PATH\" ustvgo-iptv --port 1234 --access-logs install-service\n\n# Uninstall \"ustvgo-iptv\" service\nsudo -E env \"PATH=$PATH\" ustvgo-iptv uninstall-service\n```\n\n## \u2699\ufe0f Usage - GUI\n\n <img alt=\"USTVGO-IPTV GUI screenshot\" width=\"614\" src=\"https://user-images.githubusercontent.com/20641837/211169975-f11a3cdb-9d3a-4e40-9a2d-4442db985d55.png\"/>\n\n If you don't like command line stuff, you can run GUI app and click \"Start\", simple as that.\n \n GUI uses **config file** on following path:\n\n * **Linux**: ~/.config/ustvgo-iptv/settings.cfg\n * **Mac**: ~/Library/Application Support/ustvgo-iptv/settings.cfg\n * **Windows**: C:\\Users\\\\%USERPROFILE%\\AppData\\Local\\ustvgo-iptv\\settings.cfg\n\n## \ud83d\udd17 URLs\nTo play and enjoy your free IPTV you need 2 URLs that this app provides:\n1) Your generated **master playlist**: \ud83d\udd17 http://127.0.0.1:6363/ustvgo.m3u8\n2) **TV Guide** (content updates twice an hour): \ud83d\udd17 http://127.0.0.1:6363/tvguide.xml\n\n## \u25b6\ufe0f Players\n Here is a **list** of popular IPTV players.\n \n **USTVGO**'s channels have **EIA-608** embedded subtitles. In case if you're not a native speaker and use *TV*, *Cartoons*, *Movies* and *Shows* to learn English and Spanish languages I would recommend you following free open-source cross-platform IPTV players that can handle EIA-608 subtitles:\n - **[VLC](https://github.com/videolan/vlc)**\n \n This old beast could play **any subtitles**. Unfortunately it **doesn't support TV Guide**.\n \n - **Play**\n ```bash\n vlc http://127.0.0.1:6363/ustvgo.m3u8\n ```\n - **[MPV](https://github.com/mpv-player/mpv)**\n \n Fast and extensible player. It **supports subtitles**, but not that good as VLC, sometimes you could encounter troubles playing roll-up subtitles. Unfortunately it **doesn't suppport TV Guide**.\n \n - **Play**\n ```bash\n mpv http://127.0.0.1:6363/ustvgo.m3u8\n ```\n - **[Jellyfin Media Player](https://github.com/jellyfin/jellyfin-media-player)**\n \n <img alt=\"Jellyfin Media Player screenshot\" width=\"49%\" src=\"https://user-images.githubusercontent.com/20641837/173175969-cbfe5adc-1dc8-4e3b-946c-fa4e295d8b8c.jpg\"/>\n <img alt=\"Jellyfin Media Player screenshot\" width=\"49%\" src=\"https://user-images.githubusercontent.com/20641837/173175973-8acb076c-e1ac-4d06-96a8-b10a72b2f7d7.jpg\"/>\n\n Comfortable, handy, extensible with smooth UI player. **Supports TV Guide**, has **mpv** as a backend.\n \n **Supports subtitles**, but there is no option to enable them via user interface. If you want to enable IPTV subtitles you have to use following \"Mute\" hack.\n \n - **Enable IPTV subtitles**\n \n I found a quick hack to force play embedded IPTV subtitles, all you need is to create one file:\n \n > Linux: `~/.local/share/jellyfinmediaplayer/scripts/subtitles.lua`\n \n > Linux(Flatpak): `~/.var/app/com.github.iwalton3.jellyfin-media-player/data/jellyfinmediaplayer/scripts/subtitles.lua`\n \n > MacOS: `~/Library/Application Support/Jellyfin Media Player/scripts/subtitles.lua`\n \n > Windows: `%LOCALAPPDATA%\\JellyfinMediaPlayer\\scripts\\subtitles.lua`\n \n And paste following text in there:\n \n ```lua\n -- File: subtitles.lua\n function on_mute_change(name, value)\n if value then\n local subs_id = mp.get_property(\"sid\")\n if subs_id == \"1\" then\n mp.osd_message(\"Subtitles off\")\n mp.set_property(\"sid\", \"0\")\n else\n mp.osd_message(\"Subtitles on\")\n mp.set_property(\"sid\", \"1\")\n end\n end\n end\n\n mp.observe_property(\"mute\", \"bool\", on_mute_change)\n ```\n After that every time you mute a video *(\ud83c\udd7c key pressed)*, you toggle subtitles on/off as a side effect.\n \n - **Play**\n ```\n 1) Settings -> Dashboard -> Live TV -> Tuner Devices -> Add -> M3U Tuner -> URL -> http://127.0.0.1:6363/ustvgo.m3u8\n 2) Settings -> Dashboard -> Live TV -> TV Guide Data Providers -> Add -> XMLTV -> URL -> http://127.0.0.1:6363/tvguide.xml\n 3) Settings -> Dashboard -> Scheduled Tasks -> Live TV -> Refresh Guide -> Task Triggers -> \"Every 30 minutes\"\n ```\n - **Note**\n ```\n Some versions does not support compressed (*.xml.gz) TV Guides.\n ```\n \n - **[IPTVnator](https://github.com/4gray/iptvnator)**\n \n <img alt=\"IPTVnator screenshot\" width=\"666\" src=\"https://user-images.githubusercontent.com/20641837/173176009-a2e86f74-46ef-464a-bbdf-9137f1d48201.jpg\"/>\n\n Player built with [Electron](https://github.com/electron/electron) so you can run it even in browser, has light and dark themes.\n \n **Support subtitles and TV Guide.**\n \n - **Play**\n ```\n 1) Add via URL -> http://127.0.0.1:6363/ustvgo.m3u8\n 2) Settings -> EPG Url -> http://127.0.0.1:6363/tvguide.xml.gz\n ```\n\n## \ud83d\udc4d Support\n- [ustvgo.tv](https://ustvgo.tv) is wonderful project which can offer you a free IPTV, please support these guys buying VPN with their [referral link](https://ustvgo.tv/vpn). With VPN you can watch even more of their channels, like extra 25 or so.\n\n- Also I would highly appreciate your support on this project \u2800<a href=\"https://www.buymeacoffee.com/interlark\" target=\"_blank\"><img alt=\"Buy Me A Coffee\" src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" width=\"178\" height=\"41\"></a>\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "USTVGO Free IPTV",
"version": "0.1.12",
"split_keywords": [
"ustvgo",
"iptv",
"m3u8",
"playlist",
"tvguide",
"english"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5f590abdcc42ca58afea4938596fc198ffc4cf74c905fba05e504d82c9a9344f",
"md5": "8df295d1ee1611ee2b8369277bb4ffa0",
"sha256": "75fb3ff00c5d7f38079faafa6fb0d076ba85bd86f815b24ee9ee89822b4530f7"
},
"downloads": -1,
"filename": "ustvgo_iptv-0.1.12-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8df295d1ee1611ee2b8369277bb4ffa0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7.4",
"size": 14734,
"upload_time": "2023-01-07T21:34:15",
"upload_time_iso_8601": "2023-01-07T21:34:15.655976Z",
"url": "https://files.pythonhosted.org/packages/5f/59/0abdcc42ca58afea4938596fc198ffc4cf74c905fba05e504d82c9a9344f/ustvgo_iptv-0.1.12-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "00c7a399274442e3a985d3c9db08d036be508ef832b53424dbf4acf8371c5268",
"md5": "9c7adf97c3e9873fcb291fb2ca38ebb1",
"sha256": "a239b49a37f1d9d4ac48f1849a9bf47a2e714310aba4d57f6bdece7711611c38"
},
"downloads": -1,
"filename": "ustvgo-iptv-0.1.12.tar.gz",
"has_sig": false,
"md5_digest": "9c7adf97c3e9873fcb291fb2ca38ebb1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7.4",
"size": 18218,
"upload_time": "2023-01-07T21:34:17",
"upload_time_iso_8601": "2023-01-07T21:34:17.272333Z",
"url": "https://files.pythonhosted.org/packages/00/c7/a399274442e3a985d3c9db08d036be508ef832b53424dbf4acf8371c5268/ustvgo-iptv-0.1.12.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-07 21:34:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "interlark",
"github_project": "ustvgo-iptv",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ustvgo-iptv"
}