Skip to content

v3.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Oct 02:12
92dd5c7
converted.mp4

Migrate from 2.x - 3.x

You will need to delete your existing database. The app will warn you. If you are using a Docker volume, destroy the volume and create a new empty volume to attach.

Highlights

  • Export audio-only clips as MP3, M4A/AAC, Ogg/Opus, FLAC, or WAV. Your chosen video and audio formats are remembered, and exports support cancellation and retry. Processing stays in your browser.
  • Use Cliparr Convert's audio templates to convert audio files or extract a video's soundtrack with one click to select the output format.
  • Read clearer export summaries with labeled audio properties, easier-to-scan subtitle details, and shorter connection and export messages.
  • Create, edit, and delete your own subtitles on local videos or provider media, even without a source subtitle track. Start blank or import dialogue, preview text as you type, and undo or redo subtitle changes. Authored text appears in previews, frame grabs, and video exports.
  • See Plex and Jellyfin playback sessions update automatically when playback starts, pauses, or stops. Disconnected servers keep their last known sessions visible with a connection status, reconnect automatically, and offer Retry connection.
  • Preserve source details, artwork, credits, and millisecond clip timing across supported video and audio containers. Exports also include validated IMDb, TMDB, and TVDB IDs and critic/audience ratings when the provider supplies them. Local-file exports receive clip timing even without provider metadata.
  • Embed dialogue from imported subtitles and custom captions as transcript metadata in video and audio exports, even with subtitle burn-in disabled. Transcripts use captions overlapping the selected clip range; long transcripts are truncated. GIF exports do not include this metadata. See Export metadata for details.
  • Add provider IDs to movie filenames with the optional {provider_ids} template token, using Plex or Jellyfin naming conventions.
  • Smaller editor downloads and lower server overhead during streaming playback and live dashboard updates.
  • Plex playback, audio-track selection, and subtitle imports are more reliable. Server connections have stronger address validation, media sources are limited to the signed-in provider account, and dependencies are updated to address known security advisories.

Breaking changes and upgrade notes

Export existing drafts before upgrading. Saved clip ranges and subtitle edits from earlier versions cannot be restored after upgrading. When you reopen provider media, Cliparr may import the preferred supported subtitle track again; local videos start without subtitles. Your original media, downloaded clips, and subtitle style preferences are preserved.

Remembered logins now last 30 days instead of a year. Newly saved logins and automatically renewed logins use the shorter lifetime. If your remembered login expires, reconnect the provider. Existing saved logins keep their original expiry until renewed.

Regular Jellyfin accounts require Jellyfin 10.11 or newer for live session updates. Upgrade an older Jellyfin server or connect an administrator account. Plex session discovery still requires a server administrator account.

Localhost media-server connections need explicit opt-in. For Plex, set CLIPARR_ALLOW_LOOPBACK_PLEX_URLS=true; for Jellyfin, set CLIPARR_ALLOW_LOOPBACK_JELLYFIN_URLS=true. Enable these only if every signed-in user is trusted. Private LAN servers continue to work without these flags. See Configuration.

Jellyfin development URLs are no longer automatically rewritten. Configure an address reachable from the Cliparr server. Docker development setups can use http://jellyfin:8096 directly; localhost connections require the explicit opt-in above. See the source upgrade notes below if you used the removed development override.

Jellyfin redirects to a different localhost address or port are now rejected. Set the Jellyfin server URL to its final address directly, even when loopback access is enabled.

Media sources are tied to the signed-in Plex or Jellyfin account. If a previously visible server is missing, sign in with the account that added it.

Reverse proxies must support persistent notification connections. Allow WebSockets between Cliparr and Jellyfin, and unbuffered server-sent events between Plex and Cliparr and between Cliparr and the browser. Review reverse-proxy configuration if updates are delayed or connections repeatedly drop.

Some Plex subtitle tracks may no longer be available for import. Use SRT/SubRip or WebVTT when available. Other text formats require Plex to convert them for Cliparr. Some embedded text tracks become available after you select them during playback in Plex. See Subtitle burn-in.

Tools that read embedded Cliparr metadata may need an update. The metadata format has changed in 3.0. See Export metadata for the fields included in your clips and the source upgrade notes below for integration changes.

Mix down to stereo is enabled by default for video and audio exports. Surround audio is converted to stereo; mono stays mono. The result can sound quieter than exports from earlier versions. Disable Mix down to stereo to keep supported surround channels with AAC or FLAC. MP3, WAV, and Opus exports currently require mono or stereo.

Building from source requires Node.js 24.16+ and the pnpm version pinned in the root packageManager field. Install pnpm through npm using the development setup instructions. Corepack cannot launch pnpm 12. Docker users receive the required runtime in the image.

If you build Cliparr from source or maintain an integration, review the 3.0 source upgrade notes.

Audio export limitations

If a FLAC export fails because of the selected clip boundaries, choose WAV or adjust the start or end time. If a standalone FLAC file has an ending Cliparr cannot read, shorten the selection to end before that point; changing the output format will not recover the missing audio.

Exports remain in browser memory. Large audio exports show memory guidance, and WAV has a 4 GiB file-size limit. See export settings for browser codec, channel, and bit-depth support.

What's Changed

  • feat(www): add Markdown negotiation and LLM discovery by @KyleTryon in #200
  • fix(www): suppress viewport transition aborts by @KyleTryon in #201
  • chore(dev): fall back to a Blender mirror for the Sintel seed by @weckere in #202
  • feat(frontend): add subtitle authoring without source tracks by @KyleTryon in #203
  • docs(cliparr): replace stale release planning guidance by @KyleTryon in #205
  • security(cliparr): patch vulnerable dependencies by @KyleTryon in #206
  • refactor(cliparr)!: enforce generated Plex contracts by @KyleTryon in #207
  • feat(cliparr)!: update playback sessions automatically by @KyleTryon in #204
  • feat(frontend)!: add audio-only export with shared export controls by @KyleTryon in #209
  • fix(frontend): simplify media details and UI notes by @KyleTryon in #210
  • feat(www): add audio conversion presets by @KyleTryon in #212
  • fix(www): prevent converter hydration failures in development by @KyleTryon in #213
  • perf(frontend): defer optional media codec loading by @KyleTryon in #214
  • perf(server): reuse pinned DNS agents by @KyleTryon in #215
  • perf(server): reduce media proxy request work by @KyleTryon in #216
  • security(server): close authenticated SSRF and authorization gaps by @KyleTryon in #217
  • security(server)!: align Jellyfin loopback and DNS validation by @KyleTryon in #218
  • test(server): standardize provider fixtures by @KyleTryon in #220
  • perf(server): batch live metadata and share cached DNS by @KyleTryon in #219
  • security(server)!: harden session and token lifecycle by @KyleTryon in #221
  • security(server)!: remove CLIPARR_DEV_JELLYFIN_URL dev bypass by @KyleTryon in #222
  • fix(www): restore approved hero assets by @KyleTryon in #223
  • ci(cliparr): skip unneeded Docker builds and cache writes by @KyleTryon in #224
  • chore(cliparr)!: update dependencies and Docker tooling by @KyleTryon in #225
  • chore(cliparr): prepare 3.0 release by @KyleTryon in #211
  • chore(cliparr): disable dependency dashboard by @KyleTryon in #229
  • refactor(frontend): unify shared UI primitives and styles by @KyleTryon in #230
  • fix(cliparr): update npm dependencies by @renovate[bot] in #227
  • feat(cliparr): enrich exports with external IDs, ratings, and transcripts by @KyleTryon in #231
  • chore(frontend): update canvas-timeline to 0.5.0 by @KyleTryon in #232
  • chore(cliparr): prepare v3 release by @KyleTryon in #233
  • feat(www): add reusable audio player with synced transcripts by @KyleTryon in #235
  • fix(www): restore Twilight Zone mobile preview by @KyleTryon in #236
  • fix(frontend): clarify subtitle panel by @KyleTryon in #238

New Contributors

Full Changelog: v2.0.2...v3.0.0

Docker image

Published to ghcr.io/techsquidtv/cliparr.

docker pull ghcr.io/techsquidtv/cliparr:3.0.0

Tags:

  • ghcr.io/techsquidtv/cliparr:3.0.0
  • ghcr.io/techsquidtv/cliparr:3.0
  • ghcr.io/techsquidtv/cliparr:latest
  • ghcr.io/techsquidtv/cliparr:sha-92dd5c7

Digest: sha256:f9ca175137ccc46dd6425893bffc3db339231f2507a06161a40ad01eb65cec69