123TV Free IPTV
Project description
123TV-IPTV is an app that allows you to watch free IPTV.
It extracts stream URLs from 123tv.live website, generates master playlist with available TV channels for IPTV players and proxies the traffic between your IPTV players and streaming backends.
Note: This is a port of ustvgo-iptv 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
TV Guide repo generates EPG XML for upcoming programs of all the channels once an hour.
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
pip install 123tv-iptv
-
GUI
You can download GUI app from Releases for your OS.
-
Docker
docker run -d --name=123tv-iptv -p 6464:6464 --restart unless-stopped ghcr.io/interlark/123tv-iptv:latest
For dark icons append following argument:
--icons-for-light-bg
⚙️ Usage - CLI
You can run the app without any arguments.
123tv-iptv
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 6464 | Server port. By default, the port is 6464. |
--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:url-tvg="http://127.0.0.1:6464/tvguide.xml.gz" With this argument you can switch it to uncompressed: url-tvg="http://127.0.0.1:6464/tvguide.xml" |
--keep-all-channels | Do not filter out not working channels. |
Linux users can install systemd service that automatically runs 123tv-iptv on start-ups ⏰.
# Install "123tv-iptv" service
sudo -E env "PATH=$PATH" 123tv-iptv install-service
# You can specify any optional arguments you want
sudo -E env "PATH=$PATH" 123tv-iptv --port 1234 --access-logs install-service
# Uninstall "123tv-iptv" service
sudo -E env "PATH=$PATH" 123tv-iptv uninstall-service
⚙️ Usage - GUI
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/123tv-iptv/settings.cfg
- Mac: ~/Library/Application Support/123tv-iptv/settings.cfg
- Windows: C:\Users\%USERPROFILE%\AppData\Local\123tv-iptv\settings.cfg
🔗 URLs
To play and enjoy your free IPTV you need 2 URLs that this app provides:
- Your generated master playlist: 🔗 http://127.0.0.1:6464/123tv.m3u8
- TV Guide (content updates once an hour): 🔗 http://127.0.0.1:6464/tvguide.xml
▶️ Players
Here is a list of popular IPTV players.
123TV'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:
-
This old beast could play any subtitles. Unfortunately it doesn't support TV Guide.
- Play
vlc http://127.0.0.1:6464/123tv.m3u8
- Play
-
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
mpv http://127.0.0.1:6464/123tv.m3u8
- Play
-
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:
-- 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:6464/123tv.m3u8 2) Settings -> Dashboard -> Live TV -> TV Guide Data Providers -> Add -> XMLTV -> URL -> http://127.0.0.1:6464/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.
-
-
Player built with 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:6464/123tv.m3u8 2) Settings -> EPG Url -> http://127.0.0.1:6464/tvguide.xml.gz
- Play
👍 Support
-
123tv.live is wonderful project which can offer you a free IPTV, please support these guys buying VPN with their referral link.
-
Also I would highly appreciate your support on this project ⠀
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for 123tv_iptv-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67ffe2b4790b8342da60351a8d0c866eb9fc47ba20c64212de4489ee8d51dd28 |
|
MD5 | b7fc2850fd2ef04d8a14efd6ccebe732 |
|
BLAKE2b-256 | 63654a844c134a0e57701f2fda58bbc272cd2187556001258279304a20c0ff6b |