summaryrefslogtreecommitdiff
path: root/dotfiles
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-06-01 22:16:06 -0500
committerCraig Jennings <c@cjennings.net>2025-06-01 22:16:06 -0500
commit36c0519be1be72fb9ec151d4bb200e529724b3e4 (patch)
treeb039346bef3d531aa491e56e91a7112c9ace6d60 /dotfiles
parentd29dfe04d1f6504c258623d2d8151e7a612e2892 (diff)
adding any2flac convenience utility
Diffstat (limited to 'dotfiles')
-rwxr-xr-xdotfiles/system/.local/bin/any2flac44
1 files changed, 44 insertions, 0 deletions
diff --git a/dotfiles/system/.local/bin/any2flac b/dotfiles/system/.local/bin/any2flac
new file mode 100755
index 0000000..c2cc0a7
--- /dev/null
+++ b/dotfiles/system/.local/bin/any2flac
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+# Craig Jennings <c@cjennings.net>
+
+
+function print_help {
+ echo "Converts an audio or video to flac audio and removes all metadata tags."
+ echo "This script requires ffmpeg and metaflac."; echo ""
+ echo "Usage: any2flac [filename]"
+ echo "Parameter: filename - name of the file to convert."
+}
+
+# Check for help argument
+if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
+ print_help
+ exit 0
+fi
+
+# Check if filename is passed
+if [ $# -eq 0 ]; then
+ echo "Must name an audio file to convert. Exiting."
+ exit 1
+fi
+
+# Check for the existence of ffmpeg
+if ! command -v ffmpeg &> /dev/null; then
+ echo "ffmpeg could not be found. Please install it first."
+ exit 1
+fi
+
+# Check for the existence of metaflac
+if ! command -v metaflac &> /dev/null; then
+ echo "metaflac could not be found. Please install it first."
+ exit 1
+fi
+
+echo "Converting to flac format. This may take a while..."
+# convert to flac
+ffmpeg -i "$1" -vn -c:a flac "${1%.*}.flac"
+
+echo "Removing all tags."
+# remove all tags
+metaflac --remove-all-tags "${1%.*}.flac"
+
+echo ""; echo "Done."