Files
2026-03-31 12:57:14 +07:00

50 lines
1.9 KiB
Python
Executable File

import os
import sys
import ffmpeg
def extract_audio_from_videos(input_folder, output_folder):
# Create output folder if it doesn't exist
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# Common video extensions (you can add more if needed)
video_extensions = ('.mp4', '.avi', '.mkv', '.mov', '.wmv', '.flv', '.webm')
# Iterate through all files in the input folder
for filename in os.listdir(input_folder):
if filename.lower().endswith(video_extensions):
video_path = os.path.join(input_folder, filename)
try:
# Create output filename (replace video extension with .m4a for AAC)
output_filename = os.path.splitext(filename)[0] + '.m4a'
output_path = os.path.join(output_folder, output_filename)
# Use ffmpeg to extract audio as AAC
stream = ffmpeg.input(video_path)
stream = ffmpeg.output(stream, output_path, acodec='aac', vn=True, format='ipod')
ffmpeg.run(stream)
print(f"Extracted audio from {filename} to {output_filename}")
except ffmpeg.Error as e:
print(f"Error processing {filename}: {str(e)}")
if __name__ == "__main__":
os.umask(0)
# Check if input folder is provided as command-line argument
if len(sys.argv) != 2:
print("Usage: python3 extract_audio_ffmpeg.py <input_folder>")
sys.exit(1)
# Get input folder from command-line argument
input_folder = sys.argv[1]
# Validate input folder
if not os.path.isdir(input_folder):
print(f"Error: {input_folder} is not a valid directory")
sys.exit(1)
# Set output folder (same level as input folder, named 'audio_output')
output_folder = os.path.join(os.path.dirname(input_folder), ".")
extract_audio_from_videos(input_folder, output_folder)