diff --git a/scripts/AudioConverter/README.md b/scripts/AudioConverter/README.md new file mode 100644 index 0000000..59702ac --- /dev/null +++ b/scripts/AudioConverter/README.md @@ -0,0 +1,28 @@ +# Audio Converter + +CLI tool to convert an audio file from one extension to another (e.g. mp3 to wav) + +## Requirements +- [FFmpeg](https://ffmpeg.org/) + +## Usage + +### Convert all audio files in a specific directory +```bash +python3 audio-converter.py -p -e +``` + +e.g. +```bash +python3 audio-converter.py -p /home/username/Music -e .wav +``` + +### Convert specific audio file +```bash +python3 audio-converter.py -p -e +``` + +e.g. +```bash +python3 audio-converter.py -p /home/username/Music/test.mp3 -e .wav +``` diff --git a/scripts/AudioConverter/audio-converter.py b/scripts/AudioConverter/audio-converter.py new file mode 100644 index 0000000..28f936f --- /dev/null +++ b/scripts/AudioConverter/audio-converter.py @@ -0,0 +1,51 @@ +import subprocess +import os +import argparse + + +parser = argparse.ArgumentParser( + description='A program to convert audio to another audio format' +) +parser.add_argument( + '-p', + '--path', + type=str, + help=''' +The full path of file to convert OR +the full path of folder that contains all files to convert' + ''', + required=True +) +parser.add_argument( + '-e', + '--extension', + type=str, + help='The type of extension to convert the audio', + default='.mp3', + required=False +) + + +def convert(file, extension): + file_name, _ = file.split('.') + output_name = file_name + extension + subprocess.run(['ffmpeg', '-i', file, output_name]) + + +def convert_all(path, extension): + for _, _, files in os.walk(path): + for file in files: + convert(file, extension) + + +if __name__ == "__main__": + args = parser.parse_args() + path = args.path + extension = args.extension + + os.chdir(os.path.dirname(path)) + + if (os.path.isdir(path)): + convert_all(path=path, extension=extension) + else: + convert(file=path, extension=extension)