Conversation
Ctrl+V hands whatever link is on the clipboard to yt-dlp, downloads it into the cache, and opens it for trimming as soon as it lands — the same filmstrip, preview and export as any other file, because by then it is one. Links come down at up to 1080p and prefer h264, which is what exports are re-encoded to anyway and what stays smooth while scrubbing. The finished path comes back from yt-dlp itself, so pasting a link already in the cache reopens it instantly. A downloaded source is a cache entry rather than a file the user keeps, so its export is suggested among their videos instead of beside it. yt-dlp is only needed to open links; nothing else about omacut requires it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016rcJ8LUydunVeEgaT9hHDr
|
Reviewed at What ran. Command construction is clean, which was the main thing worth checking. The URL reaches Four things did come up. 1. Concurrent instances share one marker file, and one set of filenames (medium). 2. A 3. Cancelling a download does not stop yt-dlp's children (low). 4. The 1080p cap is a preference, not a cap (low). Nothing was pushed to the branch: all four are calls about how the feature should behave rather than contained defects, and a partial fix for the first would be worse than the current state. Collisions. #6, by the same author, merges cleanly with this. #3 does too. #4 conflicts in Waiting on the author for the four above, and on the maintainer for the ordering against #4. Where Codex agreed with what had already been concluded — the shell-safety and option-injection analysis, the marker race — its independence is not currently guaranteed, since its read-only sandbox restricts writes rather than reads. Findings 2 and 4, and the filename-collision half of finding 1, are things it raised that this review had not reasoned about, and those stand on their own; each was verified against yt-dlp's source and behaviour before being written down here. |
Trimming something you found online is a two-step dance today: download it yourself, find where it landed, then open it in omacut. This makes it one step.
Ctrl+V hands whatever link is on the clipboard to
yt-dlp, which fetches the video into~/.cache/omacut/downloads. The moment it lands it goes through the existingload()path, so the filmstrip, zoom, preview, trim edges and export all behave exactly as they do for a local file — because by then it is one.Why download rather than stream
Trimming means scrubbing, and scrubbing a remote stream means a dozen network seeks just to build the filmstrip, URLs that expire mid-edit, and the separate video/audio streams
MediaPlayerwon't take. Fetching the file first leaves every existing behaviour untouched and keeps the change small — the new code stops at the point where a file exists, and the app it hands off to is the one that was already there.Choices worth flagging
-Ssort rather than an-ffilter, so an AV1-only source still downloads.~/.cache. A file you opened yourself still exports next to itself, as before.yt-dlpis optional — anoptdependsin the PKGBUILD. Without it everything else works, and pasting a link says exactly what's missing.?overlay. The download reports itself through the existing status line, which now also shows before a video is loaded, since that's when a download happens.omacut <url>works on the command line too, alongsideomacut <file>.Testing
./bin/test— 32 passing. Five new cases cover link detection, the argument list, progress parsing, error extraction and the export-path change; Ctrl+V is added to the existing shortcut test. All of it is pure functions and QML wiring, so no test touches the network.Verified by hand on Omarchy end to end: paste a link, watch the percentage in the status line, video opens with its filmstrip, trim it, export it.