Video_to_Audio / app.py
jpjp9292's picture
Update app.py
d579a03 verified
raw
history blame
4.68 kB
# import os
# import gradio as gr
# from moviepy.editor import VideoFileClip
# from datetime import datetime
# def convert_mp4_to_mp3(video_file_path, output_dir):
# # MP3 λ³€ν™˜ κ³Όμ •
# video = VideoFileClip(video_file_path)
# audio = video.audio
# output_path = os.path.join(output_dir, os.path.splitext(os.path.basename(video_file_path))[0] + ".mp3")
# audio.write_audiofile(output_path)
# audio.close()
# video.close()
# return output_path
# def mp4_to_mp3_converter(video_file):
# # μ—…λ‘œλ“œ μ‹œκ°„ ν‘œμ‹œ
# upload_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# print(f"File uploaded at: {upload_time}")
# # λΉ„λ””μ˜€ 파일이 없을 λ•Œ 처리
# if video_file is None:
# return "Error: No video file was uploaded."
# # μ €μž₯ 경둜 μ„€μ •
# modeltarget = "mp4_to_mp3_conversion"
# save_path = os.path.join("/home/user/app", modeltarget)
# os.makedirs(save_path, exist_ok=True)
# # MP3 λ³€ν™˜ ν›„ 파일 경둜 λ°˜ν™˜
# try:
# mp3_file_path = convert_mp4_to_mp3(video_file.name, save_path)
# return mp3_file_path # λ‹€μš΄λ‘œλ“œλ₯Ό μœ„ν•œ 파일 경둜 λ°˜ν™˜
# except Exception as e:
# return f"Error occurred during conversion: {str(e)}"
# # Gradio μΈν„°νŽ˜μ΄μŠ€ μ„€μ •
# iface = gr.Interface(
# fn=mp4_to_mp3_converter,
# inputs=gr.File(label="Input Video"),
# outputs=gr.File(label="Download MP3"), # λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•œ 파일 좜λ ₯
# title="MP4 to MP3 Converter",
# description="Upload a video file to convert it to MP3 format. Upload time will be displayed in the console."
# )
# if __name__ == "__main__":
# iface.launch()
import os
import gradio as gr
from moviepy.editor import VideoFileClip
from datetime import datetime
import time
def convert_mp4_to_mp3(video_file_path, output_dir):
# MP3 λ³€ν™˜ κ³Όμ •
video = VideoFileClip(video_file_path)
audio = video.audio
output_path = os.path.join(output_dir, os.path.splitext(os.path.basename(video_file_path))[0] + ".mp3")
audio.write_audiofile(output_path)
audio.close()
video.close()
return output_path
# def mp4_to_mp3_converter(video_file):
# # μ—…λ‘œλ“œ μ‹œκ°„ ν‘œμ‹œ
# upload_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# print(f"File uploaded at: {upload_time}")
# # λΉ„λ””μ˜€ 파일이 없을 λ•Œ 처리
# if video_file is None:
# return "Error: No video file was uploaded."
# # μ €μž₯ 경둜 μ„€μ •
# modeltarget = "mp4_to_mp3_conversion"
# save_path = os.path.join("/home/user/app", modeltarget)
# os.makedirs(save_path, exist_ok=True)
# # μ‚¬μš©μžμ—κ²Œ μ—…λ‘œλ“œ 쀑 λ©”μ‹œμ§€ λ°˜ν™˜
# upload_message = "μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‹€μš΄λ°›μ•„μ„œ ν™•μΈν•΄μ£Όμ„Έμš”."
# # MP3 λ³€ν™˜ ν›„ 파일 경둜 λ°˜ν™˜
# try:
# time.sleep(1) # μž μ‹œ λŒ€κΈ°
# mp3_file_path = convert_mp4_to_mp3(video_file.name, save_path)
# return upload_message, mp3_file_path # λ‹€μš΄λ‘œλ“œλ₯Ό μœ„ν•œ 파일 경둜 λ°˜ν™˜
# except Exception as e:
# return f"Error occurred during conversion: {str(e)}"
def mp4_to_mp3_converter(video_file):
# λΉ„λ””μ˜€ 파일이 없을 λ•Œ 처리
if video_file is None:
return "Error: No video file was uploaded."
# 파일 ν™•μž₯자 체크
allowed_extensions = ['mp4', 'webm', 'avi', 'mov', 'mkv']
file_extension = os.path.splitext(video_file.name)[1][1:].lower()
if file_extension not in allowed_extensions:
return f"Error: Unsupported file format. Please upload a file with one of the following extensions: {', '.join(allowed_extensions)}"
# μ €μž₯ 경둜 μ„€μ •
modeltarget = "mp4_to_mp3_conversion"
save_path = os.path.join("/home/user/app", modeltarget)
os.makedirs(save_path, exist_ok=True)
# MP3 λ³€ν™˜ ν›„ 파일 경둜 λ°˜ν™˜
try:
mp3_file_path = convert_mp4_to_mp3(video_file.name, save_path)
return mp3_file_path # λ‹€μš΄λ‘œλ“œλ₯Ό μœ„ν•œ 파일 경둜 λ°˜ν™˜
except Exception as e:
return f"Error occurred during conversion: {str(e)}"
# Gradio μΈν„°νŽ˜μ΄μŠ€ μ„€μ •
iface = gr.Interface(
fn=mp4_to_mp3_converter,
inputs=gr.File(label="λΉ„λ””μ˜€ 파일 μ—…λ‘œλ“œ"),
outputs=[gr.Markdown(), gr.File(label="λ‹€μš΄λ‘œλ“œ MP3")], # μƒνƒœ λ©”μ‹œμ§€μ™€ λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•œ 파일 좜λ ₯
title="λΉ„λ””μ˜€μ—μ„œ μŒμ„± 파일둜 λ³€ν™˜κΈ°",
description="λΉ„λ””μ˜€ νŒŒμΌμ„ μ—…λ‘œλ“œν•˜μ—¬ MP3 ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. μ—…λ‘œλ“œ μ‹œκ°„μ€ μ½˜μ†”μ— ν‘œμ‹œλ©λ‹ˆλ‹€.",
allow_flagging=False,
)
if __name__ == "__main__":
iface.launch()