Created
June 28, 2020 22:57
-
-
Save gtindo/ddcadabd928dc88657440251644b882a to your computer and use it in GitHub Desktop.
Small script for converting mp4 files inside a directory to mp3 into an output folder.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Small script for converting all mp4 files inside a folder to mp3 into an output folder | |
Requirement : ffmpeg, python30 | |
Usage : python mp4_to_mp3.py -d <input_directory> -o <ouput_directory> | |
Author: Gtindo.dev | |
Licence: ISC | |
""" | |
import subprocess | |
import os | |
import argparse | |
parser = argparse.ArgumentParser(description="Convert mp4 inside folder to mp3") | |
parser.add_argument('--dir', '-d', help='Input directory') | |
parser.add_argument('--out', '-o', help='Output directory') | |
args = parser.parse_args() | |
def main(directory, output_dir): | |
if directory is None: | |
print("[Error] - Argument directory is required, check help for more details") | |
return | |
try: | |
dirs = os.listdir(directory) | |
os.makedirs(output_dir, 0o777, exist_ok=True) | |
for file in dirs: | |
if not is_mp4(file): | |
continue | |
input_file = os.path.join(directory, file) | |
output_file = os.path.join(output_dir, file_mp3(file)) | |
subprocess.run( | |
[ | |
"ffmpeg", "-i", input_file, "-vn", | |
"-acodec", "libmp3lame", "-ac", | |
"2", "-ab", "160k", "-ar", "48000", | |
output_file]) | |
except FileNotFoundError: | |
print("[Error] - Directory {} does not exists.".format(directory)) | |
def is_mp4(filename): | |
if filename.split(".")[1] == "mp4": | |
return True | |
return False | |
def file_mp3(filename): | |
return filename.split(".")[0] + ".mp3" | |
if __name__ == "__main__": | |
main(args.dir, args.out) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment