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)}")