talks-reducer 0.4.1__py3-none-any.whl → 0.5.1__py3-none-any.whl
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/__about__.py +1 -1
- talks_reducer/cli.py +25 -4
- talks_reducer/ffmpeg.py +34 -6
- talks_reducer/gui.py +162 -27
- talks_reducer/models.py +29 -4
- talks_reducer/pipeline.py +83 -9
- talks_reducer/server.py +354 -0
- talks_reducer/service_client.py +102 -0
- talks_reducer-0.5.1.dist-info/METADATA +119 -0
- talks_reducer-0.5.1.dist-info/RECORD +19 -0
- {talks_reducer-0.4.1.dist-info → talks_reducer-0.5.1.dist-info}/entry_points.txt +1 -0
- talks_reducer-0.4.1.dist-info/METADATA +0 -71
- talks_reducer-0.4.1.dist-info/RECORD +0 -17
- {talks_reducer-0.4.1.dist-info → talks_reducer-0.5.1.dist-info}/WHEEL +0 -0
- {talks_reducer-0.4.1.dist-info → talks_reducer-0.5.1.dist-info}/licenses/LICENSE +0 -0
- {talks_reducer-0.4.1.dist-info → talks_reducer-0.5.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,119 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: talks-reducer
|
3
|
+
Version: 0.5.1
|
4
|
+
Summary: CLI for speeding up long-form talks by removing silence
|
5
|
+
Author: Talks Reducer Maintainers
|
6
|
+
License-Expression: MIT
|
7
|
+
Requires-Python: >=3.9
|
8
|
+
Description-Content-Type: text/markdown
|
9
|
+
License-File: LICENSE
|
10
|
+
Requires-Dist: audiotsm>=0.1.2
|
11
|
+
Requires-Dist: scipy>=1.10.0
|
12
|
+
Requires-Dist: numpy>=1.22.0
|
13
|
+
Requires-Dist: tqdm>=4.65.0
|
14
|
+
Requires-Dist: tkinterdnd2>=0.3.0
|
15
|
+
Requires-Dist: Pillow>=9.0.0
|
16
|
+
Requires-Dist: imageio-ffmpeg>=0.4.8
|
17
|
+
Requires-Dist: gradio>=4.0.0
|
18
|
+
Provides-Extra: dev
|
19
|
+
Requires-Dist: build>=1.0.0; extra == "dev"
|
20
|
+
Requires-Dist: twine>=4.0.0; extra == "dev"
|
21
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
22
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
23
|
+
Requires-Dist: isort>=5.12.0; extra == "dev"
|
24
|
+
Requires-Dist: bump-my-version>=0.5.0; extra == "dev"
|
25
|
+
Requires-Dist: pyinstaller>=6.4.0; extra == "dev"
|
26
|
+
Dynamic: license-file
|
27
|
+
|
28
|
+
# Talks Reducer
|
29
|
+
Talks Reducer shortens long-form presentations by removing silent gaps and optionally re-encoding them to smaller files. The
|
30
|
+
project was renamed from **jumpcutter** to emphasize its focus on conference talks and screencasts.
|
31
|
+
|
32
|
+

|
33
|
+
|
34
|
+
## Example
|
35
|
+
- 1h 37m, 571 MB — Original OBS video recording
|
36
|
+
- 1h 19m, 751 MB — Talks Reducer
|
37
|
+
- 1h 19m, 171 MB — Talks Reducer `--small`
|
38
|
+
|
39
|
+
## Changelog
|
40
|
+
|
41
|
+
See [CHANGELOG.md](CHANGELOG.md).
|
42
|
+
|
43
|
+
## Install GUI (Windows, macOS)
|
44
|
+
Go to the [releases page](https://github.com/popstas/talks-reducer/releases) and download the appropriate artifact:
|
45
|
+
|
46
|
+
- **Windows** — `talks-reducer-windows-0.4.0.zip`
|
47
|
+
- **macOS** — `talks-reducer.app.zip`
|
48
|
+
|
49
|
+
> **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.
|
50
|
+
|
51
|
+
When extracted on Windows the bundled `talks-reducer.exe` behaves like the
|
52
|
+
`python talks_reducer/gui.py` entry point: double-clicking it launches the GUI
|
53
|
+
and passing a video file path (for example via *Open with…* or drag-and-drop
|
54
|
+
onto the executable) automatically queues that recording for processing.
|
55
|
+
|
56
|
+
## Install CLI (Linux, Windows, macOS)
|
57
|
+
```
|
58
|
+
pip install talks-reducer
|
59
|
+
```
|
60
|
+
|
61
|
+
**Note:** FFmpeg is now bundled automatically with the package, so you don't need to install it separately. You you need, don't know actually.
|
62
|
+
|
63
|
+
The `--small` preset applies a 720p video scale and 128 kbps audio bitrate, making it useful for sharing talks over constrained
|
64
|
+
connections. Without `--small`, the script aims to preserve original quality while removing silence.
|
65
|
+
|
66
|
+
Example CLI usage:
|
67
|
+
|
68
|
+
```sh
|
69
|
+
talks-reducer --small input.mp4
|
70
|
+
```
|
71
|
+
|
72
|
+
### Speech detection
|
73
|
+
|
74
|
+
Talks Reducer now relies on its built-in volume thresholding to detect speech. Adjust `--silent_threshold` if you need to fine-tune when segments count as silence. Dropping the optional Silero VAD integration keeps the install lightweight and avoids pulling in PyTorch.
|
75
|
+
|
76
|
+
When CUDA-capable hardware is available the pipeline leans on GPU encoders to keep export times low, but it still runs great on
|
77
|
+
CPUs.
|
78
|
+
|
79
|
+
## Simple web server
|
80
|
+
|
81
|
+
Prefer a lightweight browser interface? Launch the Gradio-powered simple mode with:
|
82
|
+
|
83
|
+
```sh
|
84
|
+
talks-reducer server
|
85
|
+
```
|
86
|
+
|
87
|
+
This opens a local web page featuring a drag-and-drop upload zone, a **Small video** checkbox that mirrors the CLI preset, a live
|
88
|
+
progress indicator, and automatic previews of the processed output. Once the job completes you can inspect the resulting compression
|
89
|
+
ratio and download the rendered video directly from the page.
|
90
|
+
|
91
|
+
### Uploading and retrieving a processed video
|
92
|
+
|
93
|
+
1. Open the printed `http://localhost:<port>` address (the default port is `9005`).
|
94
|
+
2. Drag a video onto the **Video file** drop zone or click to browse and select one from disk.
|
95
|
+
3. (Optional) Enable **Small video** before the upload finishes to apply the 720p/128 kbps preset.
|
96
|
+
4. Wait for the progress bar and log to report completion—the interface queues work automatically after the file arrives.
|
97
|
+
5. Watch the processed preview in the **Processed video** player and click **Download processed file** to save the result locally.
|
98
|
+
|
99
|
+
Need to change where the server listens? Run `talks-reducer server --host 0.0.0.0 --port 7860` (or any other port) to bind to a
|
100
|
+
different address.
|
101
|
+
|
102
|
+
### Automating uploads from the command line
|
103
|
+
|
104
|
+
Prefer to script uploads instead of using the browser UI? Start the server and use the bundled helper to submit a job and save
|
105
|
+
the processed video locally:
|
106
|
+
|
107
|
+
```sh
|
108
|
+
python -m talks_reducer.service_client --server http://127.0.0.1:9005/ --input demo.mp4 --output output/demo_processed.mp4
|
109
|
+
```
|
110
|
+
|
111
|
+
The helper wraps the Gradio API exposed by `server.py`, waits for processing to complete, then copies the rendered file to the
|
112
|
+
path you provide. Pass `--small` to mirror the **Small video** checkbox or `--print-log` to stream the server log after the
|
113
|
+
download finishes.
|
114
|
+
|
115
|
+
## Contributing
|
116
|
+
See `CONTRIBUTION.md` for development setup details and guidance on sharing improvements.
|
117
|
+
|
118
|
+
## License
|
119
|
+
Talks Reducer is released under the MIT License. See `LICENSE` for the full text.
|
@@ -0,0 +1,19 @@
|
|
1
|
+
talks_reducer/__about__.py,sha256=cD5R3DXad04Jmf7zP4WEetKCHW_dds5YR5hzpqpbLz4,92
|
2
|
+
talks_reducer/__init__.py,sha256=Kzh1hXaw6Vq3DyTqrnJGOq8pn0P8lvaDcsg1bFUjFKk,208
|
3
|
+
talks_reducer/__main__.py,sha256=azR_vh8HFPLaOnh-L6gUFWsL67I6iHtbeH5rQhsipGY,299
|
4
|
+
talks_reducer/audio.py,sha256=sjHMeY0H9ESG-Gn5BX0wFRBX7sXjWwsgS8u9Vb0bJ88,4396
|
5
|
+
talks_reducer/chunks.py,sha256=IpdZxRFPURSG5wP-OQ_p09CVP8wcKwIFysV29zOTSWI,2959
|
6
|
+
talks_reducer/cli.py,sha256=VOFZni7rl2CTCK3aLUO_iCV6PNva9ylIrmxxwNltQG4,8031
|
7
|
+
talks_reducer/ffmpeg.py,sha256=dsHBOBcr5XCSg0q3xmzLOcibBiEdyrXdEQa-ze5vQsM,12551
|
8
|
+
talks_reducer/gui.py,sha256=1iCzAdImdNg1ezMvGJee5l4hOEkEvrMY6YkwO7pyF5Y,59801
|
9
|
+
talks_reducer/models.py,sha256=6Q_8rmHLyImXp88D4B7ptTbFaH_xXa_yxs8A2dypz2Y,2004
|
10
|
+
talks_reducer/pipeline.py,sha256=JnWa84sMwYncGv7crhGLZu0cW1Xx0eGQyFP-nLp-DHk,12222
|
11
|
+
talks_reducer/progress.py,sha256=Mh43M6VWhjjUv9CI22xfD2EJ_7Aq3PCueqefQ9Bd5-o,4565
|
12
|
+
talks_reducer/server.py,sha256=twnuh4QErwjSfa60NICrNXwraIV5x7h0apEVLyz3KVA,11166
|
13
|
+
talks_reducer/service_client.py,sha256=Hv3hKBUn2n7M5hLUVHamNphUdMt9bCXUrJaJMZHlE0Q,3088
|
14
|
+
talks_reducer-0.5.1.dist-info/licenses/LICENSE,sha256=jN17mHNR3e84awmH3AbpWBcBDBzPxEH0rcOFoj1s7sQ,1124
|
15
|
+
talks_reducer-0.5.1.dist-info/METADATA,sha256=shRuBxoKEvPxZstY2pOu5-vP-45jHkShbE1sC_Am0ig,5218
|
16
|
+
talks_reducer-0.5.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
17
|
+
talks_reducer-0.5.1.dist-info/entry_points.txt,sha256=no-NVP5Z9LrzaJL4-2ltKe9IkLZo8dQ32zilIb1gbZE,149
|
18
|
+
talks_reducer-0.5.1.dist-info/top_level.txt,sha256=pJWGcy__LR9JIEKH3QJyFmk9XrIsiFtqvuMNxFdIzDU,14
|
19
|
+
talks_reducer-0.5.1.dist-info/RECORD,,
|
@@ -1,71 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.4
|
2
|
-
Name: talks-reducer
|
3
|
-
Version: 0.4.1
|
4
|
-
Summary: CLI for speeding up long-form talks by removing silence
|
5
|
-
Author: Talks Reducer Maintainers
|
6
|
-
License-Expression: MIT
|
7
|
-
Requires-Python: >=3.9
|
8
|
-
Description-Content-Type: text/markdown
|
9
|
-
License-File: LICENSE
|
10
|
-
Requires-Dist: audiotsm>=0.1.2
|
11
|
-
Requires-Dist: scipy>=1.10.0
|
12
|
-
Requires-Dist: numpy>=1.22.0
|
13
|
-
Requires-Dist: tqdm>=4.65.0
|
14
|
-
Requires-Dist: tkinterdnd2>=0.3.0
|
15
|
-
Requires-Dist: Pillow>=9.0.0
|
16
|
-
Requires-Dist: imageio-ffmpeg>=0.4.8
|
17
|
-
Provides-Extra: dev
|
18
|
-
Requires-Dist: build>=1.0.0; extra == "dev"
|
19
|
-
Requires-Dist: twine>=4.0.0; extra == "dev"
|
20
|
-
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
21
|
-
Requires-Dist: black>=23.0.0; extra == "dev"
|
22
|
-
Requires-Dist: isort>=5.12.0; extra == "dev"
|
23
|
-
Requires-Dist: bump-my-version>=0.5.0; extra == "dev"
|
24
|
-
Requires-Dist: pyinstaller>=6.4.0; extra == "dev"
|
25
|
-
Dynamic: license-file
|
26
|
-
|
27
|
-
# Talks Reducer
|
28
|
-
Talks Reducer shortens long-form presentations by removing silent gaps and optionally re-encoding them to smaller files. The
|
29
|
-
project was renamed from **jumpcutter** to emphasize its focus on conference talks and screencasts.
|
30
|
-
|
31
|
-

|
32
|
-
|
33
|
-
## Example
|
34
|
-
- 1h 37m, 571 MB — Original OBS video recording
|
35
|
-
- 1h 19m, 751 MB — Talks Reducer
|
36
|
-
- 1h 19m, 171 MB — Talks Reducer `--small`
|
37
|
-
|
38
|
-
## Changelog
|
39
|
-
|
40
|
-
See [CHANGELOG.md](CHANGELOG.md).
|
41
|
-
|
42
|
-
## Install GUI (Windows, macOS)
|
43
|
-
Go to the [releases page](https://github.com/popstas/talks-reducer/releases) and download the appropriate artifact:
|
44
|
-
|
45
|
-
- **Windows** — `talks-reducer-windows-0.4.0.zip`
|
46
|
-
- **macOS** — `talks-reducer.app.zip` (but it doesn't work for me)
|
47
|
-
|
48
|
-
## Install CLI (Linux, Windows, macOS)
|
49
|
-
```
|
50
|
-
pip install talks-reducer
|
51
|
-
```
|
52
|
-
|
53
|
-
**Note:** FFmpeg is now bundled automatically with the package, so you don't need to install it separately. You you need, don't know actually.
|
54
|
-
|
55
|
-
The `--small` preset applies a 720p video scale and 128 kbps audio bitrate, making it useful for sharing talks over constrained
|
56
|
-
connections. Without `--small`, the script aims to preserve original quality while removing silence.
|
57
|
-
|
58
|
-
Example CLI usage:
|
59
|
-
|
60
|
-
```sh
|
61
|
-
talks-reducer --small input.mp4
|
62
|
-
```
|
63
|
-
|
64
|
-
When CUDA-capable hardware is available the pipeline leans on GPU encoders to keep export times low, but it still runs great on
|
65
|
-
CPUs.
|
66
|
-
|
67
|
-
## Contributing
|
68
|
-
See `CONTRIBUTION.md` for development setup details and guidance on sharing improvements.
|
69
|
-
|
70
|
-
## License
|
71
|
-
Talks Reducer is released under the MIT License. See `LICENSE` for the full text.
|
@@ -1,17 +0,0 @@
|
|
1
|
-
talks_reducer/__about__.py,sha256=alr6lZlZdo3EO0f71sv2_kzVDYc2BcevvykHDr0-W8U,92
|
2
|
-
talks_reducer/__init__.py,sha256=Kzh1hXaw6Vq3DyTqrnJGOq8pn0P8lvaDcsg1bFUjFKk,208
|
3
|
-
talks_reducer/__main__.py,sha256=azR_vh8HFPLaOnh-L6gUFWsL67I6iHtbeH5rQhsipGY,299
|
4
|
-
talks_reducer/audio.py,sha256=sjHMeY0H9ESG-Gn5BX0wFRBX7sXjWwsgS8u9Vb0bJ88,4396
|
5
|
-
talks_reducer/chunks.py,sha256=IpdZxRFPURSG5wP-OQ_p09CVP8wcKwIFysV29zOTSWI,2959
|
6
|
-
talks_reducer/cli.py,sha256=OYmahiEo7ivhix4861pN9Kp1DkRvU7WBj6fBE2cVVWU,7377
|
7
|
-
talks_reducer/ffmpeg.py,sha256=CVrxwNcWHrzvxTzoALtx5UdNWXxxfOFYF3FES7lvaO4,11680
|
8
|
-
talks_reducer/gui.py,sha256=xsJj1uO1WX14rNVSrkQf2b4K6BdNDbeZ-A1bB0fsSIM,54463
|
9
|
-
talks_reducer/models.py,sha256=vdQLliiHKUuYtNlZzS796kGK39cbtjkUfYcT95KwwKE,1197
|
10
|
-
talks_reducer/pipeline.py,sha256=nfAX8dooN3-009WqMyYTv4nINNMtVmbWtsmzQeBM9Wg,9415
|
11
|
-
talks_reducer/progress.py,sha256=Mh43M6VWhjjUv9CI22xfD2EJ_7Aq3PCueqefQ9Bd5-o,4565
|
12
|
-
talks_reducer-0.4.1.dist-info/licenses/LICENSE,sha256=jN17mHNR3e84awmH3AbpWBcBDBzPxEH0rcOFoj1s7sQ,1124
|
13
|
-
talks_reducer-0.4.1.dist-info/METADATA,sha256=nATcAfXLYIF61laKzOtKPbJ0of3owOuxxZYSDcBinjs,2449
|
14
|
-
talks_reducer-0.4.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
15
|
-
talks_reducer-0.4.1.dist-info/entry_points.txt,sha256=LCzfSnh_7VXhvl9twoFSAj0C3sG7bayWs2LkxpH7hoI,100
|
16
|
-
talks_reducer-0.4.1.dist-info/top_level.txt,sha256=pJWGcy__LR9JIEKH3QJyFmk9XrIsiFtqvuMNxFdIzDU,14
|
17
|
-
talks_reducer-0.4.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|