ScribbleBot / utils /file_utils.py
Marek4321's picture
Update utils/file_utils.py
f200b2e verified
Raw
History Blame Contribute Delete
1.32 kB
import os
from pydub import AudioSegment
import tempfile
def validate_and_process_file(file_path):
"""
Waliduje plik i dzieli go na mniejsze części, jeśli przekracza 25 MB.
"""
max_size_mb = 25
file_size_mb = os.path.getsize(file_path) / (1024 * 1024)
if file_size_mb > max_size_mb:
# Podziel plik na części
audio = AudioSegment.from_file(file_path)
chunk_length_ms = 10 * 60 * 1000 # 10 minut w milisekundach
chunks = [audio[i:i + chunk_length_ms] for i in range(0, len(audio), chunk_length_ms)]
# Zapisz części do plików tymczasowych
temp_dir = tempfile.mkdtemp()
output_files = []
for i, chunk in enumerate(chunks):
output_file = os.path.join(temp_dir, f"chunk_{i}.mp3")
chunk.export(output_file, format="mp3")
output_files.append(output_file)
return output_files
else:
return [file_path]
def convert_mp4_to_mp3(file_path):
"""
Konwertuje plik MP4 na MP3.
"""
try:
audio = AudioSegment.from_file(file_path, format="mp4")
mp3_path = file_path.replace(".mp4", ".mp3")
audio.export(mp3_path, format="mp3")
return mp3_path
except Exception as e:
raise Exception(f"Błąd konwersji MP4 na MP3: {str(e)}")