A lightweight Flask application that surfaces curated streaming links powered by The Movie Database (TMDB).
Trinix Free-Streaming pairs a minimal Flask backend with HTML templates to deliver an always up-to-date catalog of movies and television shows. The service queries TMDB for trending, upcoming, and searched titles, verifies that each item can be streamed, and renders the results in a clean, responsive interface.
The project was designed to complement the Trinix Discord bot but also works as a standalone web application you can host for friends or personal use.
Disclaimer Trinix Free-Streaming simply aggregates publicly available links. You are responsible for complying with local laws and the terms of service of the content providers you access through this project.
- Trending dashboards – Display daily trending movies and TV series from TMDB.
- Upcoming releases – Highlight films scheduled to hit theaters soon.
- Search experience – Look up any movie or show using TMDB's multi-search endpoint.
- Link validation – Automatically confirm that each title has a working embed on the configured streaming provider before it is shown to viewers.
- Watch page – Stream the selected title with contextual metadata (synopsis, poster, release information).
- Systemd-friendly deployment – Includes instructions for running the application as a managed Linux service for continuous availability.
Free-Streaming/
├── main.py # Flask entry point served through Waitress
├── Modules/
│ └── Api/
│ └── searchapi.py # TMDB + streaming provider integration
├── templates/ # Jinja2 templates for the UI
├── static/ # Stylesheets, scripts, and assets for the front-end
└── og_trinix.png # Project logo
- Python 3.9+
- pip
- TMDB API key (required for all API calls)
Optional tooling for production deployments:
- systemd (PID 1 service manager on most modern Linux distributions)
-
Clone the repository
git clone https://github.com/osthread/Free-Streaming.git cd Free-Streaming -
Create a virtual environment (recommended)
python3 -m venv .venv source .venv/bin/activate -
Install Python dependencies
pip install flask flask-cors waitress requests
-
Configure your TMDB API key
- Open
Modules/Api/searchapi.pyand replace the placeholder stringAPI-KeywithBearer <your_tmdb_v4_api_key>. - You can alternatively load the key from an environment variable and adjust the code to read it securely.
- Open
-
Start the development server
python main.py
The application runs with Waitress on
http://127.0.0.1:9999/watch/by default.
On Linux servers that use systemd, you can run the application as a managed service:
-
Create a dedicated user (optional but recommended)
sudo useradd --system --home /opt/trinix --shell /usr/sbin/nologin trinix sudo mkdir -p /opt/trinix sudo chown trinix:trinix /opt/trinix
-
Copy the project files
sudo rsync -av --exclude '.venv' ./ /opt/trinix/ -
Create a virtual environment and install dependencies
sudo -u trinix python3 -m venv /opt/trinix/.venv sudo -u trinix /opt/trinix/.venv/bin/pip install flask flask-cors waitress requests
-
Create the systemd service unit Create
/etc/systemd/system/trinix.servicewith the following contents:[Unit] Description=Trinix Free-Streaming service After=network-online.target Wants=network-online.target [Service] Type=simple User=trinix WorkingDirectory=/opt/trinix Environment="PATH=/opt/trinix/.venv/bin" ExecStart=/opt/trinix/.venv/bin/python main.py Restart=on-failure [Install] WantedBy=multi-user.target
-
Enable and start the service
sudo systemctl daemon-reload sudo systemctl enable --now trinix.service sudo systemctl status trinix.service
With this configuration systemd will restart the application automatically if it exits unexpectedly. Use journalctl -u trinix.service to review logs.
- Change the streaming provider – Update the
check_movieandcheck_mediamethods inModules/Api/searchapi.pyto point to a different embed service. - Adjust filtering rules – Modify
required_keysinmodified_resultsif you want to display additional metadata. - Style the UI – Edit files inside the
static/directory or the Jinja templates intemplates/.
Pull requests are welcome. Please open an issue to discuss major changes before submitting a PR, and make sure to test your updates locally.
Distributed under the GPL-3.0 License. See LICENSE for full details.
- Logo by gh0st_artz
- Movie and TV metadata provided by The Movie Database (TMDB)