Update app.py
Browse files
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 |
-
|
106 |
-
|
|
|
|
|
|
|
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 |
-
|
120 |
-
|
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 |
-
|
129 |
-
|
130 |
-
logger.
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
|
|
|
|
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 |
|