About this project

Cliparr is a streamlined media clipper for personal media servers. It lets you quickly create and download clips from media currently playing on a connected Plex or Jellyfin server, or from a local video file or direct media URL opened in the browser. Main capabilities: - Instant session discovery: automatically loads currently playing media from connected Plex and Jellyfin providers. - Local videos: open a local file or direct media URL before or after connecting a provider. Local files are read in the browser and are not uploaded to the server. - Timeline editor: drag the media block to select a clip, trim either edge, and zoom into subtitle timing across the full video. - Browser transcoding: export settings are powered by Mediabunny; GIFs are encoded with gifenc. - Metadata: video exports can include season, episode and timing metadata from the source. - Subtitle burn-in: burn in supported subtitles with customizable styling and local font support in Chromium. Deployment and configuration: - Quick start with Docker from the GitHub Container Registry, exposing port 7171 and mounting a data volume. - A Docker Compose example is provided for persistent setups. - A stable APP_KEY of at least 32 characters is required to encrypt provider credentials at rest; changing it requires re-authenticating media servers. - The editor uses browser WebCodecs, so a secure context (HTTPS via reverse proxy, or localhost/127.0.0.1) is required. - Configuration variables cover port, SQLite data directory, log level, log format, rotating log files and an option to allow loopback Jellyfin URLs. - When behind a reverse proxy, preserve the Host header and pass X-Forwarded-Proto. Cliparr trusts loopback, link-local and private-LAN proxy ranges. - There is no full app-level user or permission system; restrict access via a trusted network or an authenticated reverse proxy. Development: - Clone the repository, copy .env.example to .env and set APP_KEY, install with pnpm, and run pnpm dev. - An optional Docker dev stack seeds Plex and Jellyfin with Sintel, a Blender open movie with embedded subtitle tracks. - Contribution guidance is in .github/CONTRIBUTING.md. License: MIT.