39 lines
998 B
Bash
Executable File
39 lines
998 B
Bash
Executable File
#!/bin/zsh
|
|
|
|
use ffmpeg/get-audio-clip-from-video --group media
|
|
use youtube/get-download-path --group media
|
|
|
|
#####################################################################
|
|
|
|
|
|
#####################################################################
|
|
|
|
MAIN() {
|
|
local DOWNLOAD_PATH="$(media.youtube.get-download-path)"
|
|
|
|
local INPUT_FILENAME="$(
|
|
cd -- "${DOWNLOAD_PATH}"
|
|
find . -type f -name \*.mp4 \
|
|
| sed 's|^./||' \
|
|
| utils.fzf 'select a video' \
|
|
| sed 's/\.mp4$//' \
|
|
)"
|
|
[ "${INPUT_FILENAME}" ] || ABORT
|
|
|
|
local OUTPUT_FILENAME="$(\
|
|
basename -- "${INPUT_FILENAME}" \
|
|
| sed 's/\.[^.]*$//' \
|
|
| utils.fzf.user-input 'what should I call this clip? (.mp3)' \
|
|
| sed 's/\(\.mp3\)*$//' \
|
|
)"
|
|
[ "${OUTPUT_FILENAME}" ] || ABORT
|
|
|
|
INPUT_FILENAME="${DOWNLOAD_PATH}/${INPUT_FILENAME}.mp4"
|
|
OUTPUT_FILENAME="${DOWNLOAD_PATH}/${OUTPUT_FILENAME}.mp3"
|
|
|
|
media.ffmpeg.get-audio-clip-from-video \
|
|
--input-filename "${INPUT_FILENAME}" \
|
|
--output-filename "${OUTPUT_FILENAME}" \
|
|
;
|
|
}
|