docs: fix README to match current codebase

Remove fuzzy matching references (feature was removed), correct
test count (54 → 46), clarify that category is only saved to the
database not dataset.json, and add missing G and ?/F1 shortcuts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-14 12:58:53 +02:00
parent 3a2fd3d50b
commit 7b569dd248
+7 -6
View File
@@ -12,7 +12,7 @@ A desktop tool for cutting 8-second clips from video files, designed for buildin
## Overview ## Overview
8-cut lets you scrub through a video, mark a cut point, and export a batch of overlapping 8-second clips with one keypress. It tracks every export in a local SQLite database so you can resume a session or switch between resolution variants of the same source without duplicating work. 8-cut lets you scrub through a video, mark a cut point, and export a batch of overlapping 8-second clips with one keypress. It tracks every export in a local SQLite database so you can resume a session without duplicating work.
All clips are exactly 8 seconds — the standard length for foley sound datasets. All clips are exactly 8 seconds — the standard length for foley sound datasets.
@@ -28,9 +28,8 @@ All clips are exactly 8 seconds — the standard length for foley sound datasets
- **Portrait crop** — crop to 9:16, 4:5, or 1:1 before export; click the video or crop bar to reposition - **Portrait crop** — crop to 9:16, 4:5, or 1:1 before export; click the video or crop bar to reposition
- **Random portrait** — optionally apply a random portrait crop to a subset of each batch - **Random portrait** — optionally apply a random portrait crop to a subset of each batch
- **Resize** — scale short side to a fixed pixel size (e.g. 512) - **Resize** — scale short side to a fixed pixel size (e.g. 512)
- **Sound annotation** — label and category fields saved to `dataset.json` and the clip database - **Sound annotation** — label and category fields saved to the clip database; label also written to `dataset.json`
- **Export history** — timeline markers show previously exported clips; double-click to enter overwrite mode; right-click to delete - **Export history** — timeline markers show previously exported clips; double-click to enter overwrite mode; right-click to delete
- **Fuzzy matching** — detects resolution variants of the same file (`_2160p` vs `_1080p`) and shares markers between them
- **End-frame preview** — floating window shows the last frame of the selection region - **End-frame preview** — floating window shows the last frame of the selection region
- **Playlist** — drag-and-drop or use the Open Files button; right-click to remove items - **Playlist** — drag-and-drop or use the Open Files button; right-click to remove items
- **Playback loop** — plays the exact selection region on loop so you can preview what will be exported - **Playback loop** — plays the exact selection region on loop so you can preview what will be exported
@@ -50,6 +49,8 @@ All clips are exactly 8 seconds — the standard length for foley sound datasets
| `E` | Export | | `E` | Export |
| `M` | Jump to next marker (wraps) | | `M` | Jump to next marker (wraps) |
| `N` | Next file in playlist | | `N` | Next file in playlist |
| `G` | Toggle cursor lock |
| `?` / `F1` | Show keyboard shortcuts |
Shortcuts are suppressed when a text field has focus. Shortcuts are suppressed when a text field has focus.
@@ -113,7 +114,7 @@ output/
Set a **Label** (e.g. "dog barking") and **Category** (Human / Animal / Vehicle / Tool / Music / Nature / Sport / Other) before exporting. These are saved to: Set a **Label** (e.g. "dog barking") and **Category** (Human / Animal / Vehicle / Tool / Music / Nature / Sport / Other) before exporting. These are saved to:
- `dataset.json` in the export folder — one entry per clip with `path` and `label` - `dataset.json` in the export folder — one entry per clip with `path` and `label`
- The SQLite database — for recall when you revisit a marker - The SQLite database — label and category, for recall when you revisit a marker
Labels persist between exports so you can cut many clips of the same class without retyping. Labels persist between exports so you can cut many clips of the same class without retyping.
@@ -125,7 +126,7 @@ Labels persist between exports so you can cut many clips of the same class witho
## Database ## Database
Export history is stored in `~/.8cut.db` (SQLite). The database records filename, start time, output path, label, category, and all encoding settings for every clip. When you open a file, 8-cut fuzzy-matches the filename (stripping resolution tags like `_2160p`, codec tags, etc.) and pre-populates the timeline with existing markers. Export history is stored in `~/.8cut.db` (SQLite). The database records filename, start time, output path, label, category, and all encoding settings for every clip. When you open a file, 8-cut matches the filename and pre-populates the timeline with existing markers.
## Testing ## Testing
@@ -133,7 +134,7 @@ Export history is stored in `~/.8cut.db` (SQLite). The database records filename
pytest tests/ -v pytest tests/ -v
``` ```
54 unit tests covering path builders, ffmpeg command generation, time formatting, database operations, group queries, profile isolation, and annotation handling. 46 unit tests covering path builders, ffmpeg command generation, time formatting, database operations, group queries, profile isolation, and annotation handling.
## License ## License