Was macht clip-anything?
Zweck
Wandelt eine lange Aufnahme (eine Datei, mehrere Dateien oder einen Ordner, der eine Sitzung darstellt) in die besten N vertikalen Highlight-Clips um, mit dem kostenlosen, lokalen CLI clip-anything. Die Fähigkeit steuert das Tool, zeigt eine Vorschau, bevor es schneidet, und liest den Bericht, damit der Nutzer weiß, warum jeder Moment ausgewählt wurde. Es werden niemals Aufnahmen hochgeladen, gepostet oder versendet; das CLI selbst führt keine Netzwerkaufrufe durch, außer einem optionalen, einmaligen Whisper-Modell-Download, der vorher nachfragt.
Voraussetzungen
uvx(von uv) oderpipxim PATH. Das CLI ist ein Python-Paket;uvx clip-anythingführt es ohne Installation aus.ffmpegundffprobeim PATH. Das CLI beendet sich mit Code 3 und einem Installationshinweis, wenn sie fehlen.- Eine Aufnahme, auf die der Nutzer verweisen kann:
.mp4 .mkv .mov .m4v .ts .m2ts .mts .webm .avi .flvoder ein Ordner mit solchen Dateien.
Anweisungen
Arbeiten Sie vom aktuellen Verzeichnis des Nutzers aus. Verwenden Sie die genauen Pfade, die der Nutzer angegeben hat; setzen Sie sie in Anführungszeichen. Verschieben, umbenennen oder löschen Sie keine Aufnahmen. Installieren Sie nichts, das nicht in den folgenden Schritten als Vorschlag für den Nutzer zum Ausführen ausgegeben wird.
Arbeitsablauf
(Verwenden Sie die Schritte in der Reihenfolge; ein Schritt, der nicht abgeschlossen werden kann, wird gemeldet, nicht übersprungen.)
- Werkzeuge prüfen. Führen Sie
command -v uvx || command -v pipxundcommand -v ffmpeg && command -v ffprobeaus. Fehlen sowohluvxals auchpipx, geben Sie Folgendes aus und stoppen Sie:curl -LsSf https://astral.sh/uv/install.sh | sh(macOS/Linux) oderwinget install astral-sh.uv(Windows). Fehlt ffmpeg, geben Sie Folgendes aus und stoppen sind:brew install ffmpeg/sudo apt install ffmpeg/winget install Gyan.FFmpeg. Verwenden Siepipx run clip-anythingwo immer diese Dateiuvx clip-anythingsagt, wenn nur pipx vorhanden ist. - Eingabe auflösen. Wenn der Nutzer eine Datei oder einen Ordner benannt hat, verwenden Sie diese. Wenn der Nutzer „meine Aufnahme“ ohne Pfad sagt, suchen Sie nach Videodateien im aktuellen Verzeichnis (suchen Sie nach den obigen Erweiterungen, neueste zuerst). Fragen Sie nur nach, wenn es mehrere plausible Eingaben gibt oder keine; andernfalls fahren Sie fort und sagen, welcher Pfad verwendet wurde. Ein Ordner wird unverändert übergeben: das CLI behandelt ihn als eine Sitzung.
- Zuerst immer einen Trockenlauf durchführen. Führen Sie
uvx clip-anything "<input>" --dry-run --json 2>/dev/nullaus (fügen Sie--count Nhinzu, wenn der Nutzer eine Zahl genannt hat). Parsen Sie das JSON von stdout. Zeigen Sie eine kurze Tabelle: Rang,startbisendals mm:ss,duration_s,score,titlefalls vorhanden und die oberste Komponente auscomponents. Wennclipsleer ist, sagen Sie dies deutlich und lesen Siewarnings(einebelow_floor-Warnung bedeutet, dass nichts die Aktionsleiste überschritten hat), bevor Sie--min-score 0oder einen niedrigeren Wert vorschlagen. - Rendern. Sofern der Nutzer nicht nur eine Vorschau angefordert hat, führen Sie
uvx clip-anything "<input>"mit denselben Optionen, ohne--dry-runund--json, aus, sodass die Fortschrittsanzeige erscheint. Fügen Sie--yesnur hinzu, wenn der Nutzer Untertitel wünscht und dem einmaligen Modell-Download zugestimmt hat; andernfalls lassen Sie das CLI fragen. Melden Sie den Ausgabeordner (standardmäßig./clipsoder--out). - Die Auswahl erklären. Lesen Sie
clips/report.json(lesen Sie die Datei oderpython3 -I -cdarüber). Geben Sie für jedenok-Clip eine Zeile aus: den Zeitraum, die Bewertung und welche Signale ihn getragen haben (components: Lautstärke über Grundlinie, Audio-Anfänge, Bewegung, Audio/Bewegungs-Übereinstimmung, Standbild-Strafe, Sprachbonus falls vorhanden). Erwähnen Sielayout, wenn esfacecamist, undcaptions, wenn wahr. Listen Sie jeden Eintrag inwarningsin einfachen Worten auf; das Tool degradiert laut und der Nutzer sollte es hören. - Die Stellschrauben anbieten, eine Zeile pro Stück, nur diejenigen, die zum Gesehenen passen:
--count Nmehr oder weniger Clips (es ist ein Maximum; ruhige Sitzungen liefern weniger)--min-score 0.3senkt die Aktionsleiste;--min-score 0bewertet die Datei gegen sich selbst--min 20 --max 60Clip-Längen-Grenzen in Sekunden--crop centerstatischer zentrierter Zuschnitt anstatt der Bewegung zu folgen--no-captionsniemals Untertitel einbrennen;--facecam offkein Webcam-Overlay--visionlokales Ollama zur Neubewertung und Titelvergabe (experimentell; kommuniziert nur mit127.0.0.1:11434)--forceüberschreibt Clips aus dem letzten Durchlauf;--no-cacheignoriert zwischengespeicherte Analysen Ein erneuter Durchlauf mit anderen Stellschrauben dauert Sekunden, da die Analyse neben dem Video zwischengespeichert ist.
- Offenlegung. Wenn Untertitel oder Titel vorhanden sind, sagen Sie einmal: Untertitel sind maschinelle Transkription (faster-whisper, lokal) und Titel stammen von einem lokalen Vision-Modell; beide können falsch sein und sollten vor dem Posten überprüft werden.
Beispiele
- „Erstelle 5 Kurzfilme aus dem Stream von letzter Nacht, er ist in ~/Videos/obs/“ → Schritt 1, Ordner übergeben,
--count 5Trockenlauf, Tabelle zeigen, rendern, erklären. - „Warum hat es einen Ladebildschirm ausgewählt?“ →
report.jsonöffnen, diecomponentsdieses Clips zeigen (ein hohercard-Wert bedeutet, dass die Standbild-Strafe ausgelöst wurde, aber laute Audio-Anfänge dennoch gewonnen haben),--min-score 0.6oder einen höherenw_cardin einem--configTOML vorschlagen. - „Zeig mir nur, was es schneiden würde, rendere nicht“ → nur Schritte 1 bis 3.
Einschränkungen
- Transkriptionsbasierte Momente (ein Witz ohne Aktion) werden von Natur aus niedrig bewertet; das Tool bewertet Aktion, Sprache ist ein Bonus.
- Die Aktionsleiste wurde an zwei Spielen kalibriert; ein unbekanntes Spiel kann weniger Clips als angefordert zurückliefern. Sagen Sie dies, anstatt unaufgefordert Clips mit
--min-score 0zu erzwingen. - Analysen von 1080p60-Quellen laufen mit etwa 100 s pro Stunde; eine mehrstündige Datei bedeutet eine Wartezeit, keinen Absturz.
- Die Fähigkeit bearbeitet keine Clips, wählt keine Miniaturansichten aus und postet nirgendwo. Das Posten ist der Schritt des Nutzers.
Fehlerbehebung
- Exit 2: Falsche Eingabe (fehlender Pfad, nicht unterstützte Datei, Ordner ohne Videos). Zeigen Sie die Meldung des CLIs.
- Exit 3: ffmpeg oder ffprobe fehlen. Geben Sie die Installationszeile für das Betriebssystem des Nutzers aus Schritt 1 aus.
- Exit 1: Nichts gerendert. Lesen Sie
warningsim Trockenlauf-JSON; normalerweisebelow_floor. - Untertitel werden als Sidecar
.assstatt eingebrannt geschrieben: Der ffmpeg-Build hat kein libass (Standard-Homebrew-Formel). Ein Build vonffmpeg-fullim PATH behebt das; alles andere funktioniert trotzdem. --visionhatte keine Wirkung: Ollama läuft nicht oder hat kein Vision-Modell; der Lauf wird nur aktionsbasiert fortgesetzt und hinterlässt eine Warnung.