Welcome to Sportyfin’s documentation!
Stream sports events straight from your Jellyfin server. Sportyfin allows users to scrape for live streamed events and watch straight from Jellyfin. Sportyfin also generates meta-data that is used in Jellyfin to provide a great viewing experience.
Currently, Sportyfin supports NBA, NHL, NFL, and English football livestreams, but we plan to support other leagues in the future.
Check out Usage for further information.
Note
This project is under active development.
Contents
Usage
Installation
Pip
To install Sportyfin with pip, follow the steps bellow:
pip install sportyfin --no-binary=sportyfin
Docker
To install Sportyfin with Docker, follow the steps bellow:
git clone https://github.com/axelmierczuk/sportyfin.git
cd sportyfin
docker build --tag sportyfin .
docker run -v <Path Where You Want Output>:/sportyfin/output sportyfin
# For example: docker run -v ~/Desktop:/sportyfin/output sportyfin
Or you may pull the container with the following:
docker pull sportyfin/sportyfin:latest
docker run -v <Path Where You Want Output>:/sportyfin/output sportyfin/sportyfin:latest
Finding Streams
Run Sportyfin using python3 -m sportyfin
, followed by the arguments
(please see arguments).
Below are some example uses:
# Run Sportyfin on all leagues supported.
python3 -m sportyfin -a
# Run Sportyfin on NBA and NFL
python3 -m sportyfin -nba -nfl
# Run Sportyfin on all leagues supported and in silent mode.
python3 -m sportyfin -a -vv
# Run Sportyfin on English football leagues, in verbose more, with the output to Desktop.
python3 -m sportyfin -ef -v -o "~/Desktop"
# Run Sportyfin on all leagues supported, and refresh every 60 minutes.
python3 -m sportyfin -a -t 60
Once you have run the program, make sure to link to the .m3u’s in the Jellyfin dashboard:
Dashboard > Live TV > Tuner Devices (+) > Tuner Type (M3U Tuner) > File or URL (enter path)


Additionally, make sure to change the “Refresh Guide” setting under:
Dashboard > Scheduled Tasks > Live TV > Refresh Guide > Task Triggers


Once the path has been defined, you can check out your streams under:
Home > Live TV > Channels (at the top)

Arguments
-d
- Run the program one time through, and exit. This can be used in combination with cron jobs to provide optimal performance.-a
- Find streams for all leagues supported by Sportyfin.-nba
- Find streams for NBA matches.-nhl
- Find streams for NHL matches.-nfl
- Find streams for NFL matches.-ef
- Find streams for English football matches (Premier League, EFL, FA Cup…).-v
- Enables verbose mode.-vv
- Enables silent mode (no output).-s
- Enables Sportyfin to scrape for streams using Selenium. Please see Requirements associated with this.-t
- Specify how often to scrape in minutes (default 30 mins).-o
- Specify the output directory. Sportyfin will create anoutput
folder there and store meta-data, m3u/xml files.
Requirements
Please review the requirements, especially when running Sportyfin with Selenium scraping enabled.
python3
There are numerous guides online on how to set up
python3
with your machine.
pip
There are numerous guides online on how to set up
pip
with your machine.
Google Chrome version 97.x
Selenium needs to have an instance of Google Chrome version 97.x installed. This only applies if you chose to scrape with Selenium.
Selenium Usage with Sportyfin
Using Selenium with Sportyfin can provide better stream results. Selenium is used to look at network traffic on streaming sites in order to find links that may have not been discovered otherwise. Bellow are some things to note about using Selenium with Sportyfin:
Speed
Using Selenium will greatly reduce the speed at which Sportyfin is able to find streaming links. This is because Sportyfin accesses the streaming site for 1 second in order to gather network traffic. Therefore, using Selenium can greatly reduce speeds if, for example, Sportyfin finds 100 streaming sites.