bluenevus commited on
Commit
1e94ca7
·
verified ·
1 Parent(s): e72ac8d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -19
app.py CHANGED
@@ -100,10 +100,13 @@ def process_media(file_path, is_url=False):
100
  if is_url:
101
  logger.info(f"Processing URL: {file_path}")
102
  try:
103
- response = requests.get(file_path)
104
  response.raise_for_status()
105
- temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.mp4')
106
- temp_file.write(response.content)
 
 
 
107
  temp_file.close()
108
  logger.info(f"URL content downloaded: {temp_file.name}")
109
  except Exception as e:
@@ -116,24 +119,22 @@ def process_media(file_path, is_url=False):
116
  temp_file.close()
117
  logger.info(f"Uploaded file saved: {temp_file.name}")
118
 
119
- file_extension = os.path.splitext(temp_file.name)[1].lower()
120
- logger.info(f"Detected file extension: {file_extension}")
121
-
122
- if file_extension in VIDEO_FORMATS:
123
- logger.info("Processing video file")
124
- video = VideoFileClip(temp_file.name)
125
- audio = video.audio
126
  wav_path = temp_file.name + ".wav"
127
  audio.write_audiofile(wav_path)
128
- video.close()
129
- elif file_extension in AUDIO_FORMATS:
130
- logger.info("Processing audio file")
131
- audio = AudioSegment.from_file(temp_file.name, format=file_extension[1:])
132
- wav_path = temp_file.name + ".wav"
133
- audio.export(wav_path, format="wav")
134
- else:
135
- logger.error(f"Unsupported file format: {file_extension}")
136
- return f"Unsupported file format: {file_extension}. Please upload a supported audio or video file.", False
 
 
137
 
138
  logger.info(f"Audio extracted to WAV: {wav_path}")
139
 
 
100
  if is_url:
101
  logger.info(f"Processing URL: {file_path}")
102
  try:
103
+ response = requests.get(file_path, stream=True)
104
  response.raise_for_status()
105
+ content_type = response.headers.get('content-type', '')
106
+ extension = mimetypes.guess_extension(content_type) or ''
107
+ temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=extension)
108
+ for chunk in response.iter_content(chunk_size=8192):
109
+ temp_file.write(chunk)
110
  temp_file.close()
111
  logger.info(f"URL content downloaded: {temp_file.name}")
112
  except Exception as e:
 
119
  temp_file.close()
120
  logger.info(f"Uploaded file saved: {temp_file.name}")
121
 
122
+ # Try to extract audio using moviepy
123
+ try:
124
+ audio = AudioFileClip(temp_file.name)
 
 
 
 
125
  wav_path = temp_file.name + ".wav"
126
  audio.write_audiofile(wav_path)
127
+ audio.close()
128
+ except Exception as e:
129
+ logger.warning(f"Could not process with moviepy: {str(e)}")
130
+ # If moviepy fails, try with pydub
131
+ try:
132
+ audio = AudioSegment.from_file(temp_file.name)
133
+ wav_path = temp_file.name + ".wav"
134
+ audio.export(wav_path, format="wav")
135
+ except Exception as e:
136
+ logger.error(f"Could not process audio: {str(e)}")
137
+ return f"Could not process audio: {str(e)}", False
138
 
139
  logger.info(f"Audio extracted to WAV: {wav_path}")
140