talks-reducer 0.6.1__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {talks_reducer-0.6.1/talks_reducer.egg-info → talks_reducer-0.7.0}/PKG-INFO +23 -13
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/README.md +22 -12
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/__about__.py +1 -1
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/cli.py +9 -3
- talks_reducer-0.6.1/talks_reducer/gui.py → talks_reducer-0.7.0/talks_reducer/gui/__init__.py +384 -1216
- talks_reducer-0.7.0/talks_reducer/gui/__main__.py +8 -0
- talks_reducer-0.7.0/talks_reducer/gui/discovery.py +126 -0
- talks_reducer-0.7.0/talks_reducer/gui/layout.py +526 -0
- talks_reducer-0.7.0/talks_reducer/gui/preferences.py +113 -0
- talks_reducer-0.7.0/talks_reducer/gui/remote.py +356 -0
- talks_reducer-0.7.0/talks_reducer/gui/theme.py +269 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/models.py +1 -1
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/pipeline.py +142 -92
- talks_reducer-0.7.0/talks_reducer/resources/__init__.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/server.py +60 -6
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/server_tray.py +4 -6
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/service_client.py +56 -4
- {talks_reducer-0.6.1 → talks_reducer-0.7.0/talks_reducer.egg-info}/PKG-INFO +23 -13
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer.egg-info/SOURCES.txt +11 -1
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/tests/test_cli.py +6 -3
- talks_reducer-0.7.0/tests/test_gui_preferences.py +69 -0
- talks_reducer-0.7.0/tests/test_gui_remote.py +171 -0
- talks_reducer-0.7.0/tests/test_gui_theme.py +100 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/tests/test_service_client.py +35 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/LICENSE +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/pyproject.toml +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/setup.cfg +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/__init__.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/__main__.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/audio.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/chunks.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/discovery.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/ffmpeg.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/progress.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer/version_utils.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer.egg-info/dependency_links.txt +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer.egg-info/entry_points.txt +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer.egg-info/requires.txt +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/talks_reducer.egg-info/top_level.txt +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/tests/test_audio.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/tests/test_discovery.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/tests/test_gui_summary_parsing.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/tests/test_pipeline_service.py +0 -0
- {talks_reducer-0.6.1 → talks_reducer-0.7.0}/tests/test_server.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: talks-reducer
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.7.0
|
4
4
|
Summary: CLI for speeding up long-form talks by removing silence
|
5
5
|
Author: Talks Reducer Maintainers
|
6
6
|
License-Expression: MIT
|
@@ -26,7 +26,8 @@ Requires-Dist: bump-my-version>=0.5.0; extra == "dev"
|
|
26
26
|
Requires-Dist: pyinstaller>=6.4.0; extra == "dev"
|
27
27
|
Dynamic: license-file
|
28
28
|
|
29
|
-
# Talks Reducer
|
29
|
+
# Talks Reducer
|
30
|
+
|
30
31
|
Talks Reducer shortens long-form presentations by removing silent gaps and optionally re-encoding them to smaller files. The
|
31
32
|
project was renamed from **jumpcutter** to emphasize its focus on conference talks and screencasts.
|
32
33
|
|
@@ -47,10 +48,10 @@ Go to the [releases page](https://github.com/popstas/talks-reducer/releases) and
|
|
47
48
|
- **Windows** — `talks-reducer-windows-0.4.0.zip`
|
48
49
|
- **macOS** — `talks-reducer.app.zip`
|
49
50
|
|
50
|
-
> **Troubleshooting:** If launching the bundle (or running `python talks_reducer
|
51
|
+
> **Troubleshooting:** If launching the bundle (or running `python -m talks_reducer.gui`) prints `macOS 26 (2600) or later required, have instead 16 (1600)!`, make sure you're using a Python build that ships a modern Tk. The stock [python.org 3.13.5 installer](https://www.python.org/downloads/release/python-3135/) includes Tk 8.6 and has been verified to work.
|
51
52
|
|
52
|
-
When extracted on Windows the bundled `talks-reducer.exe` behaves like
|
53
|
-
`python talks_reducer
|
53
|
+
When extracted on Windows the bundled `talks-reducer.exe` behaves like running
|
54
|
+
`python -m talks_reducer.gui`: double-clicking it launches the GUI
|
54
55
|
and passing a video file path (for example via *Open with…* or drag-and-drop
|
55
56
|
onto the executable) automatically queues that recording for processing.
|
56
57
|
|
@@ -80,6 +81,10 @@ talks-reducer --url http://localhost:9005 demo.mp4
|
|
80
81
|
talks-reducer --host 192.168.1.42 demo.mp4
|
81
82
|
```
|
82
83
|
|
84
|
+
Remote jobs respect the same timing controls as the local CLI. Provide
|
85
|
+
`--silent-threshold`, `--sounded-speed`, or `--silent-speed` to tweak how the
|
86
|
+
server trims and accelerates segments without falling back to local mode.
|
87
|
+
|
83
88
|
Want to see progress as the remote server works? Add `--server-stream` so the
|
84
89
|
CLI prints live progress bars and log lines while you wait for the download.
|
85
90
|
|
@@ -98,6 +103,10 @@ Prefer a lightweight browser interface? Launch the Gradio-powered simple mode wi
|
|
98
103
|
talks-reducer server
|
99
104
|
```
|
100
105
|
|
106
|
+
The browser UI mirrors the CLI timing controls with sliders for the silent
|
107
|
+
threshold and playback speeds, so you can tune exports without leaving the
|
108
|
+
remote workflow.
|
109
|
+
|
101
110
|
Want the server to live in your system tray instead of a terminal window? Use:
|
102
111
|
|
103
112
|
```sh
|
@@ -116,14 +125,15 @@ running Talks Reducer version and includes an **Open GUI**
|
|
116
125
|
item (also triggered by double-clicking the icon) that launches the desktop
|
117
126
|
Talks Reducer interface alongside an **Open WebUI** entry that opens the Gradio
|
118
127
|
page in your browser. Close the GUI window to return to the tray without
|
119
|
-
stopping the server.
|
120
|
-
server
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
128
|
+
stopping the server. Launch the tray explicitly whenever you need it—either run
|
129
|
+
`talks-reducer server-tray` directly or start the GUI with
|
130
|
+
`python -m talks_reducer.gui --server` to boot the tray-managed server instead
|
131
|
+
of the desktop window. The GUI now runs standalone and no longer spawns the tray
|
132
|
+
automatically; the deprecated `--no-tray` flag is ignored for compatibility.
|
133
|
+
The tray command itself never launches the GUI automatically, so use the menu
|
134
|
+
item (or relaunch the GUI separately) whenever you want to reopen it. The tray
|
135
|
+
no longer opens a browser automatically—pass `--open-browser` if you prefer the
|
136
|
+
web page to launch as soon as the server is ready.
|
127
137
|
|
128
138
|
This opens a local web page featuring a drag-and-drop upload zone, a **Small video** checkbox that mirrors the CLI preset, a live
|
129
139
|
progress indicator, and automatic previews of the processed output. The page header and browser tab title include the current
|
@@ -1,4 +1,5 @@
|
|
1
|
-
# Talks Reducer
|
1
|
+
# Talks Reducer
|
2
|
+
|
2
3
|
Talks Reducer shortens long-form presentations by removing silent gaps and optionally re-encoding them to smaller files. The
|
3
4
|
project was renamed from **jumpcutter** to emphasize its focus on conference talks and screencasts.
|
4
5
|
|
@@ -19,10 +20,10 @@ Go to the [releases page](https://github.com/popstas/talks-reducer/releases) and
|
|
19
20
|
- **Windows** — `talks-reducer-windows-0.4.0.zip`
|
20
21
|
- **macOS** — `talks-reducer.app.zip`
|
21
22
|
|
22
|
-
> **Troubleshooting:** If launching the bundle (or running `python talks_reducer
|
23
|
+
> **Troubleshooting:** If launching the bundle (or running `python -m talks_reducer.gui`) prints `macOS 26 (2600) or later required, have instead 16 (1600)!`, make sure you're using a Python build that ships a modern Tk. The stock [python.org 3.13.5 installer](https://www.python.org/downloads/release/python-3135/) includes Tk 8.6 and has been verified to work.
|
23
24
|
|
24
|
-
When extracted on Windows the bundled `talks-reducer.exe` behaves like
|
25
|
-
`python talks_reducer
|
25
|
+
When extracted on Windows the bundled `talks-reducer.exe` behaves like running
|
26
|
+
`python -m talks_reducer.gui`: double-clicking it launches the GUI
|
26
27
|
and passing a video file path (for example via *Open with…* or drag-and-drop
|
27
28
|
onto the executable) automatically queues that recording for processing.
|
28
29
|
|
@@ -52,6 +53,10 @@ talks-reducer --url http://localhost:9005 demo.mp4
|
|
52
53
|
talks-reducer --host 192.168.1.42 demo.mp4
|
53
54
|
```
|
54
55
|
|
56
|
+
Remote jobs respect the same timing controls as the local CLI. Provide
|
57
|
+
`--silent-threshold`, `--sounded-speed`, or `--silent-speed` to tweak how the
|
58
|
+
server trims and accelerates segments without falling back to local mode.
|
59
|
+
|
55
60
|
Want to see progress as the remote server works? Add `--server-stream` so the
|
56
61
|
CLI prints live progress bars and log lines while you wait for the download.
|
57
62
|
|
@@ -70,6 +75,10 @@ Prefer a lightweight browser interface? Launch the Gradio-powered simple mode wi
|
|
70
75
|
talks-reducer server
|
71
76
|
```
|
72
77
|
|
78
|
+
The browser UI mirrors the CLI timing controls with sliders for the silent
|
79
|
+
threshold and playback speeds, so you can tune exports without leaving the
|
80
|
+
remote workflow.
|
81
|
+
|
73
82
|
Want the server to live in your system tray instead of a terminal window? Use:
|
74
83
|
|
75
84
|
```sh
|
@@ -88,14 +97,15 @@ running Talks Reducer version and includes an **Open GUI**
|
|
88
97
|
item (also triggered by double-clicking the icon) that launches the desktop
|
89
98
|
Talks Reducer interface alongside an **Open WebUI** entry that opens the Gradio
|
90
99
|
page in your browser. Close the GUI window to return to the tray without
|
91
|
-
stopping the server.
|
92
|
-
server
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
100
|
+
stopping the server. Launch the tray explicitly whenever you need it—either run
|
101
|
+
`talks-reducer server-tray` directly or start the GUI with
|
102
|
+
`python -m talks_reducer.gui --server` to boot the tray-managed server instead
|
103
|
+
of the desktop window. The GUI now runs standalone and no longer spawns the tray
|
104
|
+
automatically; the deprecated `--no-tray` flag is ignored for compatibility.
|
105
|
+
The tray command itself never launches the GUI automatically, so use the menu
|
106
|
+
item (or relaunch the GUI separately) whenever you want to reopen it. The tray
|
107
|
+
no longer opens a browser automatically—pass `--open-browser` if you prefer the
|
108
|
+
web page to launch as soon as the server is ready.
|
99
109
|
|
100
110
|
This opens a local web page featuring a drag-and-drop upload zone, a **Small video** checkbox that mirrors the CLI preset, a live
|
101
111
|
progress indicator, and automatic previews of the processed output. The page header and browser tab title include the current
|
@@ -169,11 +169,16 @@ def _process_via_server(
|
|
169
169
|
file=sys.stderr,
|
170
170
|
)
|
171
171
|
|
172
|
+
remote_option_values: Dict[str, float] = {}
|
173
|
+
if parsed_args.silent_threshold is not None:
|
174
|
+
remote_option_values["silent_threshold"] = float(parsed_args.silent_threshold)
|
175
|
+
if parsed_args.silent_speed is not None:
|
176
|
+
remote_option_values["silent_speed"] = float(parsed_args.silent_speed)
|
177
|
+
if parsed_args.sounded_speed is not None:
|
178
|
+
remote_option_values["sounded_speed"] = float(parsed_args.sounded_speed)
|
179
|
+
|
172
180
|
unsupported_options = []
|
173
181
|
for name in (
|
174
|
-
"silent_threshold",
|
175
|
-
"silent_speed",
|
176
|
-
"sounded_speed",
|
177
182
|
"frame_spreadage",
|
178
183
|
"sample_rate",
|
179
184
|
"temp_folder",
|
@@ -231,6 +236,7 @@ def _process_via_server(
|
|
231
236
|
output_path=output_override,
|
232
237
|
server_url=server_url,
|
233
238
|
small=bool(parsed_args.small),
|
239
|
+
**remote_option_values,
|
234
240
|
log_callback=_stream_server_log,
|
235
241
|
stream_updates=stream_updates,
|
236
242
|
progress_callback=_stream_progress if stream_updates else None,
|