Snappier Logo

Snappier Server

Cross-platform live stream and video recorder

For the Snappier IPTV App

What is Snappier Server?

Snappier Server is a lightweight yet powerful Python-based service designed to run seamlessly on your machine 24/7. Built exclusively for the Snappier IPTV App, it acts as the brain behind all your media recording and downloading needs.

With the Snappier IPTV App, users can effortlessly schedule live TV recordings, save CatchupTV, and download movies or entire TV series from their IPTV provider. Movies can also be scheduled to download at a specific future date and time. Snappier Server takes care of these requests in the background—quietly, efficiently, and reliably.

By default, all your media is saved to the snappierServer/ folder on your system, but you're free to specify a custom location for folders to organize your recordings and downloads your way. The downloaded content is fully compatible with the Snappier IPTV app and can also be played in any media player that supports the format.

Note: Live TV and CatchupTV recordings are saved in the .ts (MPEG Transport Stream) format. While widely compatible, this format may not work with certain players—such as Infuse.

Once a recording or download begins through the Snappier IPTV App, Snappier itself can be closed. Snappier Server continues the task independently, ensuring everything completes smoothly—even while you're away.

Need help? Join our friendly community on Discord! You’ll find the invite link directly in the Snappier IPTV app.

Notice: Snappier Server is currently a beta feature of the Snappier IPTV App. While it's designed to work for most users, it may not be compatible with all systems or network setups. Installation is the responsibility of the user, and while we may not be able to assist with every individual setup, we’ll always try our best to help in the Discord server if possible. We welcome feedback as we continue to improve it.

All-in-One Version – Simple to run

All-in-One App Downloads

Download the unified app package for your platform. This all-in-one bundle contains everything needed to run the server — only Python 3.13.x and curl are required. Just unzip the file and run the executable inside.

The main file is usually called something like snappierServer_full_linux_aarch64_v077c_beta.py or snappierServer_full_windows_x86_64_v077c_beta.exe

The actual filename will depend on the OS and version number you have downloaded.

macOS

Windows

Linux

Unzip & Run All-In-One Version

Note: Replace snappier_server, snappier_server.py, or snappier_server.exe with the actual filename you downloaded for your system and version.

  1. Unzip the downloaded archive to a folder of your choice.
  2. The server requires Python 3.13.x only. Other Python versions will not work. Most operating systems include Python, but if it’s missing, see the manual installation instructions for your OS below.
    curl is also required for downloading video-on-demand (VOD) content.

  3. Open a terminal or command prompt and navigate into that folder.
  4. Start the server using the appropriate file or method for your platform:
    • Windows (Executable):
      snappier_server.exe --host 0.0.0.0 --port 8000
    • macOS (Tarball):
      chmod +x snappier_server && ./snappier_server --host 0.0.0.0 --port 8000
    • Linux/NAS:
      chmod +x snappier_server && ./snappier_server --host 0.0.0.0 --port 8000

      On NAS devices (Synology, QNAP), SSH into the NAS and run the file inside a shared folder such as /volume1/snappier.

    • Python Script:
      python snappier_server.py --host 0.0.0.0 --port 8000

To see a list of all available command-line options, you can run the server with the -h flag:

python snappier_server.py -h

Find Your Server’s IP Address

After starting the server, you need the host machine’s IP address to connect clients:

Connect the App: In the Snappier IPTV app, go to Settings → Database/System and enter the IP address and port number of the machine running Snappier Server (e.g., 192.168.1.100 and 8000). Do not include http:// or https://.


Manual Scripts Installation

Prefer the easy way? We recommend using the All-in-One version above for the simplest setup. However, if you're comfortable using the command line, you can follow the manual installation steps below.

Prerequisites

The server requires Python 3.13.x only, pip, and curl is required for downloading video-on-demand (VOD) content. Other Python versions will not work. Most operating systems include Python, but if it’s missing, see the installation instructions for your OS below.

Download Script Version

Choose your platform:

macOS

Windows

Linux

Note: These are source code packages. You will need to install Python, pip, and the necessary dependencies manually. The source code is protected with pyArmor (which is why there are seprate download links) and requires Python 3.13.x only; other Python versions will not work. Please refer to the Windows, macOS, or Linux manual installation sections below to learn how to set up and run the server.

Manual Windows Installation

Note: Replace snappier_server, snappier_server.py, or snappier_server.exe with the actual filename you downloaded for your system and version.

  1. Install Python 3.13.x. Other versions will not work. Windows may include a different version of Python or none at all. If you do not have Python 3.13.x installed, download it from the official website: Ensure you enable Add Python to PATH during installation.
  2. Open PowerShell or Command Prompt and run the Python command to create and activate a virtual environment:
    python -m venv venv
    .\venv\Scripts\activate
                        
  3. Install dependencies:
    pip install fastapi uvicorn apscheduler requests python-dateutil
  4. Run the server using the correct filename:
    python snappier_server.py --host 0.0.0.0 --port 8000

After completing these steps, find your server’s IP address (see the “Find Your Server’s IP Address” section above) and enter it in the Snappier IPTV app under Settings → Database/System.

Note: You will need to run .\venv\Scripts\activate each time you open a new Command Prompt or restart your computer, before running the server again. This ensures the correct environment is active.

Manual macOS Installation

Note: Replace snappier_server, snappier_server.py, or snappier_server.exe with the actual filename you downloaded for your system and version.

  1. First, check if Python 3.13.x is already installed by running:
    python3 --version

    If it returns Python 3.13.x, you can skip the next step.

  2. Install Python via brew or the official installer:
    brew install python
  3. Install dependencies in a virtual environment:
    python3 -m venv venv
    source venv/bin/activate
    pip install fastapi uvicorn apscheduler requests python-dateutil
  4. Run the server:

    python snappier_server.py --host 0.0.0.0 --port 8000

Note: Replace snappier_server, snappier_server.py, or snappier_server.exe with the actual filename you downloaded for your version.

After completing these steps, find your server’s IP address (see the “Find Your Server’s IP Address” section above) and enter it in the Snappier IPTV app under Settings → Database/System.

Note: Each time you open a new terminal window or restart your system, remember to run source venv/bin/activate before starting the server. This activates the virtual environment so the correct Python setup is used.

Manual Linux/NAS Installation

  1. This guide assumes you're using a Debian-based distribution such as Ubuntu.
  2. Install Python 3 and pip via your distribution’s package manager, e.g. Ubuntu or Debian:
    sudo apt update
    sudo apt install python3 python3-venv python3-pip
  3. Create a virtual environment and install dependencies:
    python3 -m venv venv
    source venv/bin/activate
    pip install fastapi uvicorn apscheduler requests python-dateutil
  4. Run the server using the correct filename:
  5. python snappier_server.py --host 0.0.0.0 --port 8000

After completing these steps, find your server’s IP address (see the “Find Your Server’s IP Address” section above) and enter it in the Snappier IPTV app under Settings → Database/System.

Note: Each time you open a new terminal session or reboot your system, make sure to run source venv/bin/activate before launching the server. This ensures the environment is correctly configured.

Manual Docker Installation

If you prefer to use Docker, we recommend following the Docker setup created by RyDizz214. You can find the full instructions and Dockerfile on GitHub:

Snappier Server Docker – View on GitHub

This option provides a containerized environment to run the Snappier Server using Docker, with examples on how to build and run the container.

Manual Raspberry Pi Installation & Linux Versions with no premade 3.13.x packages

  1. The default Raspberry Pi OS doesn't include the correct version of Python. You need to install Python 3.13.x, and there are no packages available for this.
  2. Download, unpack, compile, and install Python 3.13.3 from source:
    1. Install build dependencies:
      sudo apt update
      sudo apt install -y build-essential \
        zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev \
        libssl-dev libreadline-dev libffi-dev libsqlite3-dev \
        wget
    2. Download the source archive:
      wget https://www.python.org/ftp/python/3.13.3/Python-3.13.3.tgz
    3. Extract and enter the directory:
      tar -xzvf Python-3.13.3.tgz
      cd Python-3.13.3/
    4. Configure the build:
      ./configure --enable-optimizations --with-ensurepip=install --enable-shared
    5. Compile using all cores:
      make -j "$(nproc)"
    6. Install alongside system Python:
      sudo make altinstall
    7. Verify the installation:
      /usr/local/bin/python3.13 --version
    8. (Optional) Create a symlink:
      sudo ln -s /usr/local/bin/python3.13 /usr/bin/python3.13
    9. Clean up source files:
      cd ..
      rm -rf Python-3.13.3/ Python-3.13.3.tgz
  3. Create a virtual environment and install dependencies:
    python3.13 -m venv venv
    source venv/bin/activate
    pip install fastapi uvicorn apscheduler requests python-dateutil
  4. Execute the server with Python 3.13.x:
    python3.13 snappier_server.py --host 0.0.0.0 --port 8000
  5. If you see this error: /usr/local/bin/python3.13: error while loading shared libraries: libpython3.13.so.1.0: cannot open shared object file: No such file or directory
    It means your system cannot find the Python shared library.

    First, locate where the libpython3.13.so.1.0 file was installed. This is usually in /usr/local/lib, but you can confirm with:
    sudo find /usr/local -name "libpython3.13.so.1.0"
    If it exists, make note of the directory it’s found in — typically this will be /usr/local/lib.

    To fix this, run:
    echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/python3.13.conf
    sudo ldconfig
    Alternatively, you can set the environment variable:
    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    This should allow Python to locate the missing shared object file.

After completing these steps, find your server’s IP address (see the “Find Your Server’s IP Address” section above) and enter it in the Snappier IPTV app under Settings → Database/System.

Usage

Once Snappier Server is installed or unpacked on your system, you can start the server using the following command, depending on your setup:

./snappier_server --host 0.0.0.0 --port 8000

This command starts the server, listening on all network interfaces at port 8000. You can replace 0.0.0.0 with a specific IP address if needed, and change the port to a different number if 8000 is in use.

For example, to bind only to your local machine:

./snappier_server --host 127.0.0.1 --port 9000

Example with custom folders:

./snappier_server --host 0.0.0.0 --port 8000 --recordingsFolder /recordings/live --moviesFolder /recordings/movies --tvSeriesFolder /recordings/series

Remux Live TV after recording:

./snappier_server --host 127.0.0.1 --port 9000 --enable-remux

Server will automatically remux (convert) Live TV .ts files into .mkv format after recording. This produces smaller files that are more compatible with a wider range of media players.

To see a list of all available command-line options, you can run the server with the -h flag:

python snappier_server.py -h

Note: Replace snappier_server, snappier_server.py, or snappier_server.exe with the actual filename you downloaded for your system and version.

Note: Make sure any firewalls or routers allow traffic on the selected port if you want to access the server from another device.

Tip: If you're running the server over SSH and want it to continue running after you disconnect, consider using a tool like screen. screen allows you to start a terminal session that stays alive even if your SSH connection drops or you log out. To use it:

  1. Install it if needed (e.g., sudo apt install screen on Ubuntu). Note: screen is already included on macOS by default.
  2. Start a new screen session with screen.
  3. Run your server as normal inside the screen.
  4. Detach from the screen session anytime with Ctrl+A then D.
  5. Reattach later with screen -r.

This is especially useful for remote server installations where you don’t want your processes to stop if you lose your SSH connection.

Disclaimer

The Snappier Server code is provided as is with no warranty. Use at your own risk. Modification or use with applications other than Snappier IPTV is not permitted.

Running and configuring the server is entirely your responsibility; we take no responsibility for its operation or for ensuring it works in your environment.

For support with Snappier Server, join our Discord server; the invite address is available within the Snappier IPTV app.