finds.dev← search

// the find

bytelang/kplayer-go

★ 775 · Go · Apache-2.0 · updated Jun 2024

A live streaming tool more suitable for non-graphical servers

KPlayer is a headless RTMP streaming tool that loops local video files to platforms like Twitch or YouTube without needing a desktop or GPU. It wraps a C++ encoding core (libkplayer) with a Go CLI, adds a JSON-RPC control API, and handles multi-output streaming and cache pre-generation to reduce CPU load on low-spec servers. The target user is someone running an unattended 24/7 stream from a cheap VPS.

The pre-generated encode cache is genuinely useful — transcode once on a fast machine, copy the cache to a weak server, and stream without re-encoding. Multi-output to parallel RTMP destinations is handled natively rather than needing multiple ffmpeg processes. The WASM plugin sandbox is a thoughtful design choice: plugins can add overlays and watermarks without being able to read arbitrary files or phone home. The JSON-RPC API for dynamic playlist control means you don't have to restart the process to swap in a new video.

Last commit was June 2024 and the core C++ library (libkplayer) is a git submodule pointing to a separate repo — if that goes dark, you're stuck. The README is almost entirely in Chinese with no English translation, which limits who can actually troubleshoot it. The tool requires downloading a prebuilt binary via a curl-pipe-to-bash install script from a third-party CDN (get.kplayer.net), which is a supply chain risk most sysadmins should not accept without scrutiny. At 775 stars it has a real user base, but the issue tracker and docs site will likely be the first things to go quiet if the maintainer moves on.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →