Add yt-dlp "Download Video" Chromium extension

Download the current page's video with yt-dlp via Alt+Shift+D or a click
on the toolbar icon. A native-messaging host runs the download, shows live
progress on the Quickshell OSD, and posts a clickable "Download complete"
toast that opens the file in mpv.

- Extension: pinned key for a stable id, green download-video icon,
  keyboard command + toolbar action (reads the active tab URL).
- Native host (omarchy-chromium-ytdlp-host): verifies the URL with
  yt-dlp --simulate (else "No video found"), streams progress to the OSD
  (time-throttled to ~4/s), saves to ~/Videos, opens mpv on click.
- Installer (omarchy-install-chromium-ytdlp) writes the native-messaging
  manifest into installed Chromium/Chrome/Brave/Edge profiles; wired into
  browser install and chromium refresh, with a migration for existing users.
- omarchy-osd: add -d/--duration so the OSD can persist during a download.
- Add yt-dlp to base packages, load the extension via --load-extension,
  and document the Alt+Shift+D binding.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
David Heinemeier Hansson
2026-06-04 11:15:28 +02:00
co-authored by Claude Opus 4.8
parent 1d6467c91c
commit e5290b0a12
15 changed files with 328 additions and 4 deletions
+25
View File
@@ -0,0 +1,25 @@
echo "Add yt-dlp download extension (Alt+Shift+D) to Chromium-based browsers"
YTDLP_EXT="$OMARCHY_PATH/default/chromium/extensions/yt-dlp"
add_ytdlp_extension() {
local file=$1
[[ -f $file ]] || return 0
grep -q "extensions/yt-dlp" "$file" && return 0
if grep -q "^--load-extension=" "$file"; then
sed -i --follow-symlinks "s|^--load-extension=\(.*\)$|--load-extension=\1,$YTDLP_EXT|" "$file"
else
echo "--load-extension=$YTDLP_EXT" >>"$file"
fi
}
for conf in chromium chrome google-chrome brave brave-beta brave-nightly brave-origin-beta microsoft-edge-stable; do
add_ytdlp_extension "$HOME/.config/$conf-flags.conf"
done
omarchy-pkg-add yt-dlp
# Register the native messaging host that runs yt-dlp for the extension.
omarchy-install-chromium-ytdlp || true