Skip to content

Instantly share code, notes, and snippets.

@gtindo
Created June 28, 2020 22:57
Show Gist options
  • Save gtindo/ddcadabd928dc88657440251644b882a to your computer and use it in GitHub Desktop.
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.
"""
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