talks-reducer 0.6.3__tar.gz → 0.7.1__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.
Files changed (44) hide show
  1. {talks_reducer-0.6.3/talks_reducer.egg-info → talks_reducer-0.7.1}/PKG-INFO +14 -5
  2. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/README.md +13 -4
  3. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/__about__.py +1 -1
  4. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/cli.py +9 -3
  5. talks_reducer-0.6.3/talks_reducer/gui.py → talks_reducer-0.7.1/talks_reducer/gui/__init__.py +375 -1192
  6. talks_reducer-0.7.1/talks_reducer/gui/__main__.py +8 -0
  7. talks_reducer-0.7.1/talks_reducer/gui/discovery.py +126 -0
  8. talks_reducer-0.7.1/talks_reducer/gui/layout.py +526 -0
  9. talks_reducer-0.7.1/talks_reducer/gui/preferences.py +113 -0
  10. talks_reducer-0.7.1/talks_reducer/gui/remote.py +356 -0
  11. talks_reducer-0.7.1/talks_reducer/gui/theme.py +269 -0
  12. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/models.py +1 -1
  13. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/pipeline.py +142 -92
  14. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/server.py +52 -4
  15. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/service_client.py +56 -4
  16. {talks_reducer-0.6.3 → talks_reducer-0.7.1/talks_reducer.egg-info}/PKG-INFO +14 -5
  17. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer.egg-info/SOURCES.txt +10 -1
  18. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/tests/test_cli.py +6 -3
  19. talks_reducer-0.7.1/tests/test_gui_preferences.py +69 -0
  20. talks_reducer-0.7.1/tests/test_gui_remote.py +171 -0
  21. talks_reducer-0.7.1/tests/test_gui_theme.py +100 -0
  22. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/tests/test_service_client.py +35 -0
  23. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/LICENSE +0 -0
  24. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/pyproject.toml +0 -0
  25. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/setup.cfg +0 -0
  26. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/__init__.py +0 -0
  27. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/__main__.py +0 -0
  28. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/audio.py +0 -0
  29. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/chunks.py +0 -0
  30. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/discovery.py +0 -0
  31. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/ffmpeg.py +0 -0
  32. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/progress.py +0 -0
  33. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/resources/__init__.py +0 -0
  34. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/server_tray.py +0 -0
  35. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer/version_utils.py +0 -0
  36. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer.egg-info/dependency_links.txt +0 -0
  37. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer.egg-info/entry_points.txt +0 -0
  38. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer.egg-info/requires.txt +0 -0
  39. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/talks_reducer.egg-info/top_level.txt +0 -0
  40. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/tests/test_audio.py +0 -0
  41. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/tests/test_discovery.py +0 -0
  42. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/tests/test_gui_summary_parsing.py +0 -0
  43. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/tests/test_pipeline_service.py +0 -0
  44. {talks_reducer-0.6.3 → talks_reducer-0.7.1}/tests/test_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: talks-reducer
3
- Version: 0.6.3
3
+ Version: 0.7.1
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/gui.py`) 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
+ > **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 the
53
- `python talks_reducer/gui.py` entry point: double-clicking it launches the GUI
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
@@ -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/gui.py`) 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
+ > **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 the
25
- `python talks_reducer/gui.py` entry point: double-clicking it launches the GUI
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
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.6.3"
5
+ __version__ = "0.7.1"
@@ -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,