dotfiles/skhd/scripts/record_audio_line

42 lines
1.5 KiB
Plaintext
Raw Normal View History

2023-12-23 20:13:47 -07:00
#!/bin/bash
# Record a few seconds of system audio, and save. Intended to seamlessly record
# audio for anki cards, while watching anime. MacOS only
#
# May require changing capture device. Find available options with:
# $ ffmpeg -f avfoundation -list_devices true -i ""
# Change the number in the ffmpeg argument to desired device. BlackHole-2ch is
# recommended for recording macos system audio. Make sure vlc's output device
# is an aggregate of BlackHole-2ch and the speakers
#
# External dependencies: ffmepg, BlackHole-2ch
if [[ $(uname) != 'Darwin' ]]; then
printf 'This is meant for MacOS\nAborting...\n'
exit 1
fi
recording_name="$(date +'%m_%d_%Y-%H_%M_%S' | awk '{printf("%s%s", $0, ".mp3")}')"
mkdir -p ~/Desktop/anki_recordings
ffmpeg \
-f avfoundation \
-i ":2" -filter:a "atempo=0.95" \
-t "${1:-6}" \
~/"Desktop/anki_recordings/${recording_name}"
unset recording_name
# Further reference ====
# Rec audio with ffmpeg
# https://apple.stackexchange.com/questions/326388/terminal-command-to-record-audio-through-macbook-microphone
#
# With vlc? Wouldn't require BlackHole-2ch this way
# https://forum.videolan.org/viewtopic.php?t=87923
#
# Trim on the fly? Save a unix timestamp in a file, then have ffmpeg trim the
# recording based on the time in the file. Use a second hotkey to edit the
# file's time with the current timestamp. Default should be +10s from start
# https://unix.stackexchange.com/questions/182602/trim-audio-file-using-start-and-stop-times
# ex: set syntax=bash:ff=unix: