Talks Reducer 
Talks Reducer shortens long-form videos by removing silent gaps and optionally re-encoding them to much smaller files.
Example
- 1h 37m, 571 MB — Original OBS video recording
- 1h 19m, 751 MB — Talks Reducer
- 1h 19m, 171 MB — Talks Reducer
--small
Features
- Speeds up the silence — no montage editing.
- Shrinks the file — typically 8–10× smaller, web-friendly.
- Fast — in-memory audio/video processing, auto GPU encoding (NVENC on
NVIDIA, AMF on AMD and Quick Sync on Intel for HEVC/AV1, VideoToolbox for HEVC on
macOS). Detection results are cached in
settings.json; see Hardware encoding to reset them. - Extract audio — export an audio-only
.mp3instead of video. - Simple mode — one drop zone, minimum settings.
- Named presets — save a settings bundle once, apply it on every surface.
- Remote mode — offload to your fastest machine.
- Watch mode — convert the latest video from a recordings folder.
- OBS integration — convert buttons inside an OBS dock.
- LNK presets — drag a video onto a preset shortcut to convert.
- Mobile app / WebUI — use a remote server from your phone.
- CLI mode — batch files and directories from the terminal.
Install
Windows
Download the installer from the releases page
macOS
brew trust --tap popstas/apps
brew install --cask popstas/apps/talks-reducer
Homebrew 6.0.0+ requires the tap to be trusted before it will load a cask from it. Without
brew trust, the install fails with a "Refusing to load cask from untrusted tap" error. A separatebrew tapis not needed —brew install user/tap/casktaps the repository itself.
pip / pipx / uv (Linux, Windows, macOS)
pip install talks-reducer # install the CLI and GUI
pipx install talks-reducer # or into an isolated environment
uv tool install talks-reducer # or with uv
OBS Processing Dock (Windows)
For OBS Studio recordings, a Custom Browser Dock starts Talks Reducer right after you stop a take — pick resolution, silent speed, and codec, then click a button.
Set it up in OBS:
-
Start the dock server and keep it running while you record — or let the Windows installer add it to autostart:
talks-reducer dock-server
The dock server is a thin HTTP process: it does not load the processing pipeline or the desktop GUI and runs each conversion as a separate
talks-reducerchild, so it idles at a few tens of megabytes. -
In OBS, enable Tools → WebSocket Server Settings → Enable WebSocket server and note the password.
-
In OBS, open Docks → Custom Browser Docks… and add a dock with URL
http://127.0.0.1:17890/. -
In the dock's Settings, enter the OBS WebSocket password and press Enter. When the status turns green, stop a recording and the speed buttons light up.
Full setup, options, and troubleshooting: docs/obs-dock.md.
Command line
talks-reducer input.mp4 # tuned encode at the source resolution
talks-reducer --small input.mp4 # same, scaled down to 720p
talks-reducer --small --480 input.mp4 # scale down to 480p instead (or --1080)
talks-reducer --small --1080 --fps 30 input.mp4 # 1080p at most, capped to 30 fps
talks-reducer --video-codec mp3 talk.mp4 # export audio only, as .mp3
talks-reducer --cut-start 00:00:10 --cut-end 00:01:00 demo.mp4 # keep only 10s–60s
talks-reducer --url http://localhost:9005 demo.mp4 # process on a remote server
talks-reducer --preset "Smallest" demo.mp4 # apply a saved preset
talks-reducer --glue part1.mp4 part2.mp4 # join the parts into one video first
talks-reducer --list-presets # print the saved preset names
Every input can also be a directory, and you can pass as many as you like in one run. Each
one is processed separately unless you add --glue, which concatenates them into a single
video first and names the result after the first part. In the desktop GUI, dropping several
files asks whether to glue them; answering Yes opens a Glue order list sorted by file
name, where you can move parts up or down (buttons, Alt+↑/↓, or drag) before gluing starts.
--small scales to 480p, 720p (default) or 1080p (--480, --720, --1080); --1080 only
downscales sources taller than 1080 px. --fps 30|60|orig (or any positive number) caps the
output frame rate and never raises it. The 1080p and FPS options need an up-to-date server in
remote mode.
Presets are saved bundles of processing settings (resolution, speeds, threshold, codec, fps)
you author once in the desktop GUI's Advanced mode and reuse everywhere — Simple mode, the
Web UI, the OBS dock, and the CLI (--preset). When saving you pick which settings the preset
controls, so a preset can be partial (e.g. codec-only) and applying it leaves your other
settings alone. They live in the shared settings.json, so one list appears on every surface,
and each surface opens on the preset you used last. See
docs/cli.md. A preset's resolution is orig, 1080p, 720p or
480p; fresh installs seed Compress as 1080p 30 fps and Smallest at 30 fps.
→ Full flag reference — codecs, keyframes, silence thresholds, trimming, remote options: docs/cli.md.
360° videos
Equirectangular 360° recordings keep their 360° metadata (Spherical Mapping
and Stereo 3D) through gluing and processing, so players still show them as
a sphere. With a smaller resolution preset the frame is rescaled with FFmpeg's
v360 filter instead of scale, which would drop the metadata. A light blur,
scaled to the downscale ratio, runs first so the smaller frame does not
shimmer: v360 has no anti-aliasing of its own.
Limitations: other projections (cubemap, EAC) keep the metadata only at
original resolution (orig in the GUI, no --small on the CLI); gluing 360°
parts with different resolutions or codecs re-encodes them and drops it. Both
cases are reported in the log.
Remote server
Run Talks Reducer on the machine with the fast GPU and send jobs to it from anywhere on your network — laptops, phones, or other desktops.
talks-reducer server # browser interface in the terminal
talks-reducer server-tray # same server, tucked into the system tray
Open the printed http://localhost:9005 address, drop a video on the page, and download
the result when it finishes. Use --host and --port to bind somewhere else:
talks-reducer server --host 0.0.0.0 --port 7860
Prefer not to touch the terminal? The desktop GUI's Advanced panel has a Run as server in tray checkbox that starts the same tray-managed server (and keeps the setting for next launch).
To send work from another machine, point the CLI or the desktop GUI at the server with
--url http://<server>:9005 (or --host <server>).
→ Server and tray options, the operator view, and scripted uploads: docs/server.md.
Install as an app (PWA)
The web interface is an installable Progressive Web App. Open it in a Chromium-based browser and choose Install app to get a standalone Talks Reducer window with its own icon.
Browsers only offer installation over https:// or http://localhost, so put a TLS proxy
in front of a LAN server if the install prompt does not appear.
This also works from a phone: install the page served by a Talks Reducer server on your network, then upload recordings to it like any other app.
Changelog
See CHANGELOG.md.
Contributing
See CONTRIBUTION.md for development setup details and guidance on sharing improvements.
License
It grew out of gegell/jumpcutter and was renamed from jumpcutter to emphasize its focus on conference talks and screencasts.
Talks Reducer is released under the MIT License. See LICENSE for the full text.
Metadata
Release files for talks-reducer 1.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| talks_reducer-1.7.0.tar.gz | 1.1 MB | Without provenance | Details for talks_reducer-1.7.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| talks_reducer-1.7.0-py3-none-any.whl | Python 3 | none | any | Details for talks_reducer-1.7.0-py3-none-any.whl |
Total release size: 2.0 MB
Release files / talks_reducer-1.7.0.tar.gz
| Download URL | talks_reducer-1.7.0.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cd7419a53294df96aacdcc252233b480425c020ce70fd58767ebba35cea2c3c3
|
|
BLAKE2b-256 checksum How to use checksums |
1d6a85a9e460ef3284338c9cfc3049b90fb585cc6c79c6af2044afed94795832
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.18
|
Release files / talks_reducer-1.7.0-py3-none-any.whl
| Download URL | talks_reducer-1.7.0-py3-none-any.whl |
|---|---|
| Size | 925.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5f6ffe686c9d35a289ef08129632e82e08ae5c0ec508dcbd71556667bad70310
|
|
BLAKE2b-256 checksum How to use checksums |
53918599993df62dcfb634dca8bfeb414a918b8fbd7b8af948da0f0c920963db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.18
|
Security for talks-reducer 1.7.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.