various updates and configs

This commit is contained in:
2026-11-01 12:23:15 -07:00
parent da66fd27d2
commit 15b04ddb4a
41 changed files with 568 additions and 432 deletions
@@ -42,7 +42,7 @@ ${scwryptsmodule}() {
-ss ${START_TIME_SECONDS} -t $((${END_TIME_SECONDS} - ${START_TIME_SECONDS}))\
"${OUTPUT_FILENAME}" \
&& echo.success "created clip '${OUTPUT_FILENAME}'" \
|| ERROR "error creating clip '$(basename -- "${OUTPUT_FILENAME}")' (see above)"
|| echo.error "error creating clip '$(basename -- "${OUTPUT_FILENAME}")' (see above)"
}
#####################################################################
@@ -53,7 +53,7 @@ ${scwryptsmodule}.parse() {
# local START_TIME_SECONDS END_TIME_SECONDS optional
local PARSED=0
case $1 in
-i | --input-filename ) PARSED=2; INPUT_FILENAME="$2" ;;
-o | --output-filename ) PARSED=2; OUTPUT_FILENAME="$2" ;;
@@ -84,24 +84,24 @@ ${scwryptsmodule}.parse.validate() {
&& [ "${INPUT_FILENAME}" ] \
&& [ -f "${INPUT_FILENAME}" ] \
&& [ "${OUTPUT_FILENAME}" ] \
|| ERROR "must provide a valid input and output filename\ninput : '${INPUT_FILENAME}\noutput : '${OUTPUT_FILENAME}'" \
|| echo.error "must provide a valid input and output filename\ninput : '${INPUT_FILENAME}\noutput : '${OUTPUT_FILENAME}'" \
|| return
[[ ${OUTPUT_FILENAME} =~ .mp3$ ]] || OUTPUT_FILENAME="${OUTPUT_FILENAME}.mp3"
local VIDEO_LENGTH_SECONDS=$(media.ffmpeg.get-video-length-seconds "${INPUT_FILENAME}")
[ "${VIDEO_LENGTH_SECONDS}" ] && [[ "${VIDEO_LENGTH_SECONDS}" -gt 0 ]] \
|| ERROR "unable to determine video length; is '${INPUT_FILENAME}' a video?" \
|| echo.error "unable to determine video length; is '${INPUT_FILENAME}' a video?" \
|| return
local CLIP_METHOD=start-time-to-end-time
case ${USE_WHOLE_VIDEO} in
true )
[ ! "${START_TIME_SECONDS}" ] \
|| ERROR "conflicting arguments '--start' and '--use-whole-video'"
|| echo.error "conflicting arguments '--start' and '--use-whole-video'"
[ ! "${END_TIME_SECONDS}" ] \
|| ERROR "conflicting arguments '--end' and '--use-whole-video'"
|| echo.error "conflicting arguments '--end' and '--use-whole-video'"
;;
false )
[ ! "${START_TIME_SECONDS}" ] && [ ! "${END_TIME_SECONDS}" ] \
@@ -118,28 +118,28 @@ ${scwryptsmodule}.parse.validate() {
interactive )
START_TIME_SECONDS=$(echo 0 | utils.fzf.user-input "enter start time (0 ≤ t < ${VIDEO_LENGTH_SECONDS})")
[ "${START_TIME_SECONDS}" ] \
|| ERROR 'interactive user abort' \
|| echo.error 'interactive user abort' \
|| return
END_TIME_SECONDS=$(echo ${VIDEO_LENGTH_SECONDS} | utils.fzf.user-input "enter end time (${START_TIME_SECONDS} > t ≥ $VIDEO_LENGTH_SECONDS)")
[ "${END_TIME_SECONDS}" ] \
|| ERROR 'interactive user abort' \
|| echo.error 'interactive user abort' \
|| return
;;
esac
[[ "${START_TIME_SECONDS}" -ge 0 ]] \
|| ERROR "cannot use negative start time (start time = ${START_TIME_SECONDS})"
|| echo.error "cannot use negative start time (start time = ${START_TIME_SECONDS})"
[[ "${END_TIME_SECONDS}" -gt 0 ]] \
|| ERROR "end time must be after the video starts (end time = ${END_TIME_SECONDS})"
|| echo.error "end time must be after the video starts (end time = ${END_TIME_SECONDS})"
[[ "${START_TIME_SECONDS}" -lt "${VIDEO_LENGTH_SECONDS}" ]] \
|| ERROR "start time must be before video ends (start time = ${START_TIME_SECONDS}; video length = ${VIDEO_LENGTH_SECONDS})"
|| echo.error "start time must be before video ends (start time = ${START_TIME_SECONDS}; video length = ${VIDEO_LENGTH_SECONDS})"
[[ "${END_TIME_SECONDS}" -le "${VIDEO_LENGTH_SECONDS}" ]] \
|| ERROR "end time cannot go beyond video end (end time = ${END_TIME_SECONDS}; video length = ${VIDEO_LENGTH_SECONDS})"
|| echo.error "end time cannot go beyond video end (end time = ${END_TIME_SECONDS}; video length = ${VIDEO_LENGTH_SECONDS})"
[[ "${START_TIME_SECONDS}" -lt "${END_TIME_SECONDS}" ]] \
|| ERROR "start time must come before end time (start time = ${START_TIME_SECONDS}; end time = ${END_TIME_SECONDS})"
|| echo.error "start time must come before end time (start time = ${START_TIME_SECONDS}; end time = ${END_TIME_SECONDS})"
}
@@ -8,7 +8,7 @@ ${scwryptsmodule}() {
local FILENAME="$1"
[ "${FILENAME}" ] && [ -f "${FILENAME}" ] \
|| ERROR "invalid or missing file '${FILENAME}'" \
|| echo.error "invalid or missing file '${FILENAME}'" \
|| return 1
ffprobe \