Clippiti
Cross-platforms livestream player with clipping and recording.
Clippiti is a PyQt6 desktop app that opens live streams via Streamlink, keeps a rolling local buffer, and lets you take snapshots or save both live and past moments as clips.
Features
- Live stream playback via Streamlink + mpv
- Rolling HLS buffer pipeline (Streamlink API -> ffmpeg)
- Clip export from buffered timeline
- Recording with optional auto-remux to MP4
- Floating controls, keyboard shortcuts, and OSD feedback
- YAML config with runtime-editable settings dialog
- CLI overrides for Streamlink and mpv options
Supported OS: Linux, Windows, macOS
Requirements
- Python 3.12+
- Desktop environment that supports PyQt6 apps
Non-Python dependencies
Clippiti requires these external tools at runtime:
mpv/libmpv(used bypython-mpvfor playback)ffmpeg
streamlink is used as a Python library (a clippiti-player dependency); Clippiti
calls the Streamlink API in-process rather than spawning a streamlink command, so
you do not need a system streamlink package on PATH.
Install them with your OS package manager.
Linux:
# Ubuntu / Debian
sudo apt install mpv libmpv2 ffmpeg
# Fedora
sudo dnf install mpv mpv-libs ffmpeg
# Arch Linux
sudo pacman -S mpv ffmpeg
macOS:
brew install mpv ffmpeg
Windows (PowerShell, using Scoop):
scoop install mpv ffmpeg
Verify they are available in PATH:
mpv --version
ffmpeg -version
Verify Python-installed Streamlink version from the same environment used to run Clippiti:
python -m streamlink --version
Install
From PyPI (recommended):
pip install clippiti-player
or with pipx:
pipx install clippiti-player
Run:
clippiti <url> <quality>
Install from source (development)
git clone <your-repo-url>
cd clippiti
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
Alternative without editable install:
PYTHONPATH=src ./.venv/bin/python -m clippiti <url> <quality>
Command-line options
positional:
url Stream URL to open
quality Desired stream quality; accepts a comma-separated
fallback list, e.g. best, worst, 720p, "720p,best"
optional:
--mpv TEXT Additional mpv options (YAML or key=value)
--config PATH Path to config YAML file
--workdir PATH Path to runtime working directory
--verbose Enable verbose startup logs
Any arguments after a `--` separator are forwarded to Streamlink's own parser.
Run `python -m streamlink --help` to see the available Streamlink options.
Example:
clippiti https://www.twitch.tv/example_channel best --mpv "vf=hflip" -- --retry-max 5 --twitch-disable-ads
Companion App: Lurkiti
If you want a tray app that monitors your favorite livestreams and opens them directly in your player, check out my Lurkiti.
Lurkiti is a lightweight desktop companion for stream monitoring and quick one-click launch into Clippiti or any other Streamlink supported media player.
Configuration
Clippiti stores configuration in YAML.
Resolution order:
--config <path>if provided- User config location (
clippiti.yaml) if it exists <workdir>/config.yamlif it exists- Fallback to
<workdir>/config.yaml(or./clippiti.yamlif no workdir)
User config location (clippiti.yaml) is typically:
- Linux:
~/.config/clippiti.yaml - Windows:
%APPDATA%\clippiti.yaml - macOS:
~/Library/Application Support/clippiti.yaml
Default workdir is:
/tmp/clippiti
Development
Install dev/test deps (already included in requirements.txt):
source .venv/bin/activate
pip install -r requirements.txt
Run tests:
PYTHONPATH=src ./.venv/bin/python -m pytest -q
Documentation
Troubleshooting
- Stream resolution fails:
- Verify URL is online/public
- Verify the
streamlinkpackage resolves the URL (python -m streamlink <url>)
- Playback pipeline does not start:
- Verify
ffmpegis installed and reachable - Use
--verboseto inspect startup logs
- Verify
- mpv/video issues:
- Verify
python-mpvis installed - Try with simpler
--mpvoptions first
- Verify
License
MIT License - see LICENSE if present in this repository.
Acknowledgments
- Streamlink
- ffmpeg
- PyQt6
- python-mpv
Screenshots
Metadata
Release files for clippiti-player 1.0.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| clippiti_player-1.0.10.tar.gz | 2.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clippiti_player-1.0.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.4 MB
Release files / clippiti_player-1.0.10.tar.gz
| Download URL | clippiti_player-1.0.10.tar.gz |
|---|---|
| Size | 2.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
afb4c1e65895f3655973f3d712333597118c635694cba84bd1d10b086a41d67f
|
|
BLAKE2b-256 checksum How to use checksums |
756d0d948c4cf1f04fc0084d3fa43a9e10771f2ecb6d46d904f96c9a0dba8e2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / clippiti_player-1.0.10-py3-none-any.whl
| Download URL | clippiti_player-1.0.10-py3-none-any.whl |
|---|---|
| Size | 185.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8a2a2facc327ce97f8431f338f61b8531f658d0c47eb79a5c16644559806c19
|
|
BLAKE2b-256 checksum How to use checksums |
adfb9e05720bc52c6c523271f650894e28382df1721fc20115f14298954f3b2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log