summaryrefslogtreecommitdiff
path: root/dotfiles/system/.local/bin/any2flac
blob: c2cc0a721e70052f3ee6a3d8675d71dcf2c13467 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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."