Utilities video and images.
FFmpeg and Node.js must be installed.
npm install -g mediasnacksmediasnacks <command> <args>-
avifConverts images to AVIF -
pngOptimizes PNG images with oxipng -
sqcropSquare crops images -
base64Encodes image to data URI -
resizeResizes videos or images -
edgespicExtracts first and last frames -
frameseqConverts video to sequence of PNGs -
countframesCounts frames in a video -
ssimComputes similarity of two images -
gif: Video to GIF -
info: Prints video attributes -
tag: Sets color tag for Finder -
detectdupsDetects sequentially duplicate frames in a video -
dropdupsRemoves sequentially duplicate frames in a video -
framediff: Plays a video of adjacent frames diff -
hev1tohvc1: Fixes video thumbnails not rendering in macOS Finder -
moov2frontRearranges .mov and .mp4 metadata for fast-start streaming -
vconcat: Concatenates videos -
vdiff: Plays a video with the difference of two videos -
vsplit: Splits a video into multiple clips from CSV timestamps -
vtrim: Trims video from start to end time -
prores: Converts video to Apple ProRes -
flattendir: Moves unique files to the top dir and deletes empty dirs -
qdirSequentially runs all *.sh files in a folder -
seqcheckFinds missing sequence number -
openrandOpens a random file -
playPlays filtered playlist with mpv -
dlaudio: yt-dlp best audio -
dlvideo: yt-dlp best video -
unemoji: Removes emojis from filenames -
rmcover: Removes cover art
Glob patterns are expanded by Node.js.
mediasnacks avif file[234].png
# Expands to: file2.png, file3.png, file4.pngmediasnacks avif -- file[234].png
# Literal filename: "file[234].png"For example, for dropdups -n2 file.mov
- Open Automator
- Select: Quick Action
- Workflow receives current:
movie filesinFinder.app - Action:
Run Shell Script
export PATH="/opt/homebrew/bin:/opt/homebrew/opt/node@24/bin"
for f in "$@"; do
$HOME/bin/mediasnacks dropdups -n2 "$f"
doneIt will be saved to ~/Library/Services
