Highlights ✨
- Renamed to Jive Encoder. The binary is now
jive-encoder(wasjivedrop) and the Go module path isgithub.com/linuxmatters/jive-encoder. Update any scripts or installs that call the old name.
New
- Output path extension is checked.
--output-pathmust end with the extension for the chosen format (.mp3,.m4a,.opus). A mismatch fails before encoding starts, instead of writing a mislabelled file. - JPEG and GIF cover input. Cover art now accepts JPEG and GIF sources, in addition to PNG.
- Clean output when piped. Output detects the terminal and drops colour codes when redirected to a file or pipe, so logs stay readable. Warnings now go to stderr.
Fixed
- Frontmatter is preserved on write-back. Updating
podcast_durationandpodcast_bytesnow edits the YAML mapping in place, so nested text and formattingcstay intact. - Partial files are removed on failure. A failed encode no longer leaves a truncated output file behind.
- Filter-graph stability. Guarded endpoint allocation and fixed an allocator mismatch in the FFmpeg filter setup.
Maintenance
- Updated
ffmpeg-statigoto v8.1.2.0 (FFmpeg 8.1). - Bumped Charm libraries (bubbletea, bubbles, lipgloss), nixpkgs, and
golang.org/x/image. - Wide test and peer-review hardening across the encoder, CLI, UI, and artwork packages; CI now builds and tests with
CGO_ENABLED=1.
Changes since 0.4.1
- test: address peer-review findings in encoder, CLI, UI and artwork (18efeaf)
- test: address peer-review findings in encoder and CLI (c0e0bec)
- chore: update gif (a2a6d10)
- chore: rebrand from disco ball to clamp emoji (9eca477)
- test: address peer-review findings across all modules (948fbd1)
- build(deps): bump nixpkgs from
e73de5bto6517942(60b2810) - deps(deps): bump the gomod group with 3 updates (d424237)
- fix(encoder): preserve frontmatter while updating stats (a92b498)
- chore: update ffmpeg-statigo to v8.1.2.0 (cda0c54)
- chore: drop harper dictionary (88a75d0)
- test(jive-encoder): use real fixtures in validation tests (1804b7c)
- fix(encoder): require output path extension to match format (b4621ef)
- fix: guard filter endpoint allocation (7629a2a)
- refactor(encoder): split encoder setup responsibilities (5993540)
- refactor: simplify shared helpers and docs (1392cd3)
- docs: polish comments across codebase (fe05a00)
- refactor: apply peer review findings across codebase (44e8843)
- chore(rename): rebrand project and binary to Jive Encoder (6ce91d6)
- chore(go): don't pin point release (c7824e9)
- chore: update ffmpeg-statigo to v8.1.1.3 (c9e1bc6)
- build(deps): bump the github-actions group across 1 directory with 2 updates (35bf4ca)
- build(deps): bump nixpkgs from
567a49dtoe73de5b(753a92d) - build(deps): bump nixpkgs from
9ae611ato567a49d(9e04230) - deps(deps): bump golang.org/x/image in the gomod group (0339d05)
Installation
Download the appropriate binary for your platform below, make it executable, and move it to your PATH:
# Linux (amd64)
chmod +x jive-encoder-linux-amd64
sudo mv jive-encoder-linux-amd64 /usr/local/bin/jive-encoder
# macOS (Apple Silicon)
chmod +x jive-encoder-darwin-arm64
sudo mv jive-encoder-darwin-arm64 /usr/local/bin/jive-encoderChecksums
SHA256 checksums are provided below for verification.