# 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)}" # Gradio 인터페이스 설정 iface = gr.Interface( fn=mp4_to_mp3_converter, inputs=gr.File(label="비디오 파일 업로드"), outputs=[gr.Markdown(), gr.File(label="다운로드 MP3")], # 상태 메시지와 다운로드 가능한 파일 출력 title="MP4에서 MP3로 변환기", description="비디오 파일을 업로드하여 MP3 형식으로 변환합니다. 업로드 시간은 콘솔에 표시됩니다.", allow_flagging=False, ) if __name__ == "__main__": iface.launch()