MCPcopy Index your code
hub / github.com/PhunkyBob/iptv_playlist_browser

github.com/PhunkyBob/iptv_playlist_browser @v1.7.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.7.0 ↗ · + Follow
136 symbols 639 edges 19 files 63 documented · 46% updated 2y agov1.7.0 · 2024-04-12★ 905 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

iptv_playlist_browser

This tool allows to browse IPTV playlist in Windows.

This tool does not provide any stream, you have to use your own.
Please remember to use only legal streams.

Run

python iptv_playlist_browser_gui.py

or

python -m iptv_playlist_browser

or try the experimental binary.

In your first run, go to Preferences... menu and set a path for your desired video player.

Usage

Main window

after load

1. Menu bar

Get quick access to the main features of the application (open Xtream Code, open playlist, preferences, ...).

2. Filter

When you have a lot of groups / categories / channels, you can filter them using this text areas.

3. Groups

List of groups. Groups come from the values in Xtream API (if available), from the playlist (if available).
If the groups do not exist, the application will create them artificially according to the parameters.

Select a group to view it's categories.

4. Categories

List of categories. The application will create them artificially according to the parameters.

Select a category to view it's channels.

5. Channels

List of channels. Select a channel to view it's URL. Double-click on a channel to open it with your player.

6. Watch

You can see the URL of the selected channel. Click the Watch button to open it with your player.

7. Catch up

Some stream may have a catch up replay available. If so, check the Catch up chckbox, select a date, a time and duration and click the Watch button.
You can find the current EPG in the combo box to easily choose your desired program.

Preferences

preferences

Video player

Give a path to your favorite video player executable.
Eg. : C:/Program Files (x86)/VideoLAN/VLC/vlc.exe

Additional parameters

(optional) You can provide additional parameters to use with your player.

Eg. : --fullscreen will launch VLC in fullscreen.

Remember latest input

When checked, by default the program will remember your playlist local or remote path, and your Xtream code credentials.

Always try to retreive Xtream Code

When checked, if you load a playlist the program will first give a try to the Xtream Code API.
Xtream Code API allows to have better group naming and to play catch up streams.

Group / category separator

Very often the channels in the playlist are separated by false channels to mark the boundary.
Whith this parameter, you can specify what are the strings used as separator.

Eg. : if your playlist is like

#EXTM3U
#EXTINF:-1,< CHAINES FRANCAISES SD >
http://myserver.com:8000/login/password/1
#EXTINF:-1,--- TNT SD ---
http://myserver.com:8000/login/password/2
#EXTINF:-1,TF1 SD
http://myserver.com:8000/login/password/3
#EXTINF:-1,TF1 +1 SD
http://myserver.com:8000/login/password/4
#EXTINF:-1,FRANCE 2 SD
http://myserver.com:8000/login/password/5
#EXTINF:-1,FRANCE 3 SD
http://myserver.com:8000/login/password/6

and you set

<

as group separator and

--

as category separator, all lines containing < will be considered as "group" and all lines containing -- will be considered as "category".
You'll obtain:

after load

Load playlist from Xtream Code

Give your Xtream Code credentials.

Load playlist from local file

Open a local playlist file (m3u).
A preview of the names inside the file allows you to guess what separators should be used.

Load playlist from remote file

Open a remote playlist file (m3u).

Eg.: http://myserver.com:8000/get.php?username=login&password=password&type=m3u&output=mpegts

Filtrer lists

Type part of desired group, category or channel you want to filter.

Watch a stream

Double-click on an entry in the channel list, or select it then click on the Watch button.

Replay a past stream

If you opened your playlist with Xtream Code and your provider gives this functionality, you can select a time and date for a specific channel. A list gives you the latest EPG availble to help you.

Note that not all providers gives this functionality.

How to install

Prerequisite

Install

Clone repository

git clone https://github.com/PhunkyBob/iptv_playlist_browser.git
cd iptv_playlist_browser

Create virtual environment

With Poetry (recommended) or pip.

poetry shell
poetry install

or

python -m venv venv
venv\Scripts\activate.bat
python -m pip install -U pip
pip install -e .

Compilation

To create Python files from Qt .ui files:

pyside6-uic ui\generate_playlist.ui -o iptv_playlist_browser\generate_playlist_pyside6.py
pyside6-uic ui\local_file.ui -o iptv_playlist_browser\local_file_pyside6.py
pyside6-uic ui\main_ui.ui -o iptv_playlist_browser\main_ui_pyside6.py
pyside6-uic ui\preferences.ui -o iptv_playlist_browser\preferences_pyside6.py
pyside6-uic ui\remote_file.ui -o iptv_playlist_browser\remote_file_pyside6.py
pyside6-uic ui\xtream_code.ui -o iptv_playlist_browser\xtream_code_pyside6.py

To create Windows .exefile:

pyinstaller --noconfirm --onefile --windowed --icon "resources\play-button.ico" --paths "iptv_playlist_browser" "iptv_playlist_browser_gui.py"

Core symbols most depended-on inside this repo

hide_loader
called by 13
iptv_playlist_browser/MainWindow.py
show_loader
called by 12
iptv_playlist_browser/MainWindow.py
setupUi
called by 6
iptv_playlist_browser/local_file_pyside6.py
load_streams
called by 5
iptv_playlist_browser/playlist.py
clean_title
called by 5
iptv_playlist_browser/playlist.py
save_config
called by 5
iptv_playlist_browser/MainWindow.py
load_from_api
called by 4
iptv_playlist_browser/playlist.py
get_api_infos
called by 3
iptv_playlist_browser/playlist.py

Shape

Method 104
Function 19
Class 13

Languages

Python100%

Modules by API surface

iptv_playlist_browser/MainWindow.py47 symbols
tests/test_playlist.py17 symbols
iptv_playlist_browser/playlist.py17 symbols
iptv_playlist_browser/OpenLocalFile.py9 symbols
iptv_playlist_browser/OpenPreferences.py7 symbols
iptv_playlist_browser/GeneratePlaylist.py7 symbols
iptv_playlist_browser/OpenXtream.py6 symbols
iptv_playlist_browser/OpenRemoteFile.py6 symbols
iptv_playlist_browser/xtream_code_pyside6.py3 symbols
iptv_playlist_browser/remote_file_pyside6.py3 symbols
iptv_playlist_browser/preferences_pyside6.py3 symbols
iptv_playlist_browser/main_ui_pyside6.py3 symbols

For agents

$ claude mcp add iptv_playlist_browser \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page