👉 Support this work via GitHub Sponsors
Take screenshots or videos of macOS windows from the command line (also includes OCR).
See Recording and screenshotting windows: the lazy way.
Note: This gif was captured with macosrec
$ macosrec USAGE: record-command [--version] [--list] [--hidden] [--screenshot <app name or window id>] [--record <app name or window id>] [--ocr] [--clipboard] [--mov] [--gif] [--save] [--abort] [--output <optional output file path>] OPTIONS: --version Show version. -l, --list List recordable windows. --hidden Also include hidden windows when listing. -x, --screenshot <app name or window id> Take a screenshot. -r, --record <app name or window id> Start recording. -c, --ocr Select and recognize text in screen region. -b, --clipboard Save --ocr text to clipboard. -m, --mov Record as mov. -g, --gif Record as gif. -s, --save Save active recording. -a, --abort Abort active recording. -o, --output <optional output file path> -h, --help Show help information.
brew tap xenodium/macosrec brew install macosrec
Before taking a screenshot, identify the window number using --list
.
$ macosrec --list 21902 Emacs 22024 Dock - Desktop Picture - Stone.png 22035 Firefox - Planet Emacslife
Use --screenshot
+ window number to take a screenshot.
~ $ macosrec --screenshot 21902 ~/Desktop/2023-04-14-08:21:45-Emacs.png
Before taking a video, identify the window number using --list
.
$ macosrec --list 21902 Emacs 22024 Dock - Desktop Picture - Stone.png 22035 Firefox - Planet Emacslife
Use --record
+ window number to start recording a video (gif).
Note: you can also use application name and it will use the first window it finds belonging to it.
To end recording, send a SIGINT signal (Ctrl+C from terminal). Alternatively, running macosrec --save
from another session would also end the recording.
~ $ macosrec --record 21902 --gif Saving... ~/Desktop/2023-04-14-08:21:45-Emacs.gif
Note: you can also use application name and it will use the first window it finds belonging to it.
~ $ macosrec --record emacs --mov Saving... ~/Desktop/2023-04-14-08:21:45-Emacs.mov
The gifs can get pretty large fairly quickly depending on the lenght of the recording. Consider using something like gifsicle to reduce size. For example:
gifsicle -O3 large.gif --lossy=80 -o smaller.gif
The --ocr
flag defaults to selecting a screen region (unless --input
) is given.
$ macosrec --ocr Hello this text was recognized
Use the --input
flag:
$ macosrec --ocr --input /path/to/image.png Hello this text was recognized
Use the --clipboard
flat:
$ macosrec --ocr --input /path/to/image.png --clipboard Hello this text was recognized
Recognizing text with in speech --speech-to-text
is only supported via --input
audio file (i.e. .mp3).
$ macosrec --speech-to-text --locale "en-GB" --input path/to/audio.mp3 Hello this text was recognized
I built this util to record demos I post at xenodium.com. Does the job so far, but can likely take improvements, specially around image handling efficiency. PRs totally welcome.
Resizing windows while recording (not supported)While a video will be recorded if you resize the window during the recording session, it’s unlikely to produce a file with the expected outcome. This feature is currently unsupported and out of scope. Having said that, if anyone’s keen to implement it, a PR is totally welcome.
👉 Support this work via GitHub Sponsors
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4