Code generated using Gemini CLI
A desktop utility for browsing IPTV provider content and building a local `.strm` file library for use in media centers like Kodi, Plex, or Jellyfin.
- Easy Setup: A step-by-step setup wizard to configure your IPTV provider details and library folders on the first run.
- Live TV Integration: Seamlessly manage live streams, generate M3U playlists, and integrate EPG (Electronic Program Guide) data.
- Category Management: Easily enable or disable VOD, Series, and Live TV categories to control what content appears in your library.
- Manual & Scheduled Updates: Trigger a library update manually or schedule it to run at a specific time each day, including Live TV data.
- Server Configuration: Update your server details at any time from the main settings window.
- Database Statistics: See a live count of the total and visible movies, series, episodes, and live streams in your database.
- System Tray Integration: The application minimizes to the system tray and can run continuously in the background to perform scheduled updates.
- Modern UI: A clean, dark-themed user interface.
- Live Stream Management: Connects to your IPTV provider to fetch and manage live TV channels. You can enable or disable individual channels and entire live categories.
- EPG (Electronic Program Guide) Integration: Grabs EPG data from your provider and generates a standard
epg.xmlfile, compatible with media centers like Kodi, Plex, or Jellyfin for a rich TV guide experience. - M3U Playlist Generation: Creates an
M3U8playlist (playlist.m3u8) of your enabled live channels, allowing easy access and playback in various media players.
Fynix Library Builder connects to your IPTV provider's API to fetch lists of available movies and TV series. Based on the categories you have enabled, it then generates a local folder structure containing .strm files.
These .strm files are simple text files that contain a direct URL to the media stream. For Live TV, the builder generates an M3U8 playlist (playlist.m3u8) and an epg.xml file.
You can add the generated folders (e.g., /path/to/your/movies, /path/to/your/series, and /path/to/your/live_tv) as library sources in media center software like Kodi. Your media center will scan these files and import the content as if it were stored locally, fetching metadata and artwork automatically.
This allows you to browse your provider's VOD, series, and Live TV library using the rich interface of a full-fledged media center.
For Linux users:
wget -O - https://raw.githubusercontent.com/Boc86/Fynix-Library-Builder/main/install.sh | bashFor Windows users (PowerShell):
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Boc86/Fynix-Library-Builder/main/install.ps1" -OutFile "$env:TEMP\install.ps1"; Start-Process powershell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File \"$env:TEMP\install.ps1\""Manual Installation:
-
Clone the repository:
git clone https://github.com/Boc86/Fynix-Library-Builder.git cd Fynix-Library-Builder -
Create a Python virtual environment:
python3 -m venv .venv source .venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python3 main.py
On the first run, you will be guided by the Setup Wizard, where you can now also specify your Live TV library path.
Update:
- Re-run the instalation script and ignore any errors about the virtual environment not being set up as it already exists.
-
Initial Setup: Follow the wizard to enter your server details and specify where you want your movie, series, and live TV
.strmand playlist files to be saved. -
Main Window:
- Server Configuration: Allows you to view and update your IPTV provider details.
- Library Directory Settings: Configure the paths for your Movie, Series, and Live TV libraries.
- Actions:
Save All Changes: Saves any modifications to the server, category, schedule, and directory settings.Update Library: Manually triggers the creation of.strmfiles, M3U playlist, and EPG data.Clear Cache: Clears all cached metadata.Process Live TVcheckbox: Enable or disable the processing of live streams and EPG data during library updates.
- Auto Update: Enable the checkbox and set a time to have the library update run automatically each day.
- Database Statistics: View counts of your media library.
- Category Panes: Check or uncheck categories to control which ones are included in your library. Remember to click
Save All Changesafter making modifications.
-
Live Channels Tab:
- Live Categories: Select which live TV categories to include in your M3U playlist and EPG.
- Live Channels: For a selected category, enable or disable individual live channels.
Save Live Channel Changes: Saves the visibility settings for live categories and channels.
-
Background Operation:
- Closing the window will minimize the application to the system tray.
- Right-click the tray icon to show the window or quit the application.
- Framework: Python 3 with PySide6 (Qt6) for the graphical user interface.
- Database: SQLite is used to store all metadata related to servers, categories, VOD content, series, live streams (
live_streamstable), and EPG data (epg_datatable). - Configuration:
directories.toml: Stores the paths to your media libraries, including a newlive_tvkey for Live TV content.schedule.json: Stores the settings for the auto-update feature.
- Backend Logic: The core application logic (database interaction, API calls) is separated in
backend.py, allowing for a clean separation from the UI code inmain.py. - Helpers: The
helpers/directory contains various scripts for database setup and content synchronization.
The following have been tested and work, if you use a different system and it works please add to the list
- Arch Base
- Mint / Ubuntu
- Nobara (Fedora)
- Hyprland
- KDE Plasma
- Gnome minimise to system tray may not work but normal minimise to workspace bar does
- XFCE if the app fails to launch ensure libxc-cursor-dev is installed from your package manager
- Untested, needs verification
This project is open-source. Feel free to modify and distribute it as you see fit.
