home · contact · privacy
Add script to convert video files to mp3s. master
authorChristian Heller <c.heller@plomlompom.de>
Sun, 7 Sep 2025 23:26:32 +0000 (01:26 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Sun, 7 Sep 2025 23:26:32 +0000 (01:26 +0200)
to_mp3s.sh [new file with mode: 0755]

diff --git a/to_mp3s.sh b/to_mp3s.sh
new file mode 100755 (executable)
index 0000000..77c81d7
--- /dev/null
@@ -0,0 +1,34 @@
+#!/usr/bin/env dash
+set -eu
+
+INPUTS_DIR="${HOME}/ytplom_downloads"
+# INPUTS_DIR="${HOME}/yt_small"
+OUTPUTS_DIR="${HOME}/mp3s"
+TEMP_DIR=$(mktemp -d)
+mkdir -p "${OUTPUTS_DIR}"
+
+cd "${INPUTS_DIR}"
+FILENAMES_SOURCE=$(ls -1)
+OLD_IFS="${IFS}"
+IFS=$(printf '\n\r')
+for FILENAME_SOURCE in ${FILENAMES_SOURCE}; do
+
+    FILENAME_TARGET="${FILENAME_SOURCE%\.*}.mp3"
+    PATH_TARGET="${OUTPUTS_DIR}/${FILENAME_TARGET}"
+
+    if [ -f "${PATH_TARGET}" ]; then
+        continue
+    fi
+
+    PATH_TEMP="${TEMP_DIR}/${FILENAME_TARGET}"
+    ffmpeg -loglevel warning -i "${FILENAME_SOURCE}" "${PATH_TEMP}"
+    mv "${PATH_TEMP}" "${PATH_TARGET}"
+       
+    SOURCE_LEN=$(ls -1 "${INPUTS_DIR}" | wc -l)
+    TARGET_LEN=$(ls -1 "${OUTPUTS_DIR}" | wc -l)
+    echo "PROCESSED ${TARGET_LEN}/${SOURCE_LEN}"
+
+done
+IFS="${OLD_IFS}"
+
+rmdir "${TEMP_DIR}"