Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -18,7 +18,7 @@ def process_youtube_or_audio(url, recorded_audio, start_time, end_time):
|
|
18 |
filename = None
|
19 |
song_name = None
|
20 |
|
21 |
-
|
22 |
if url:
|
23 |
ydl_opts = {
|
24 |
'format': 'bestaudio/best',
|
@@ -30,7 +30,7 @@ def process_youtube_or_audio(url, recorded_audio, start_time, end_time):
|
|
30 |
filename = os.path.join('downloads', f"{info['id']}.webm")
|
31 |
song_name = sanitize_filename(info['title'])
|
32 |
|
33 |
-
|
34 |
elif recorded_audio:
|
35 |
filename = recorded_audio
|
36 |
song_name = "recorded_audio"
|
@@ -38,31 +38,30 @@ def process_youtube_or_audio(url, recorded_audio, start_time, end_time):
|
|
38 |
if not filename or not os.path.exists(filename):
|
39 |
return None, None
|
40 |
|
41 |
-
|
42 |
audio = AudioSegment.from_file(filename)
|
43 |
|
44 |
-
|
45 |
start_time_ms = start_time * 1000
|
46 |
end_time_ms = end_time * 1000
|
47 |
|
48 |
-
|
49 |
start_time_ms = max(0, min(start_time_ms, len(audio)))
|
50 |
end_time_ms = max(start_time_ms, min(end_time_ms, len(audio)))
|
51 |
|
52 |
-
|
53 |
trimmed_audio = audio[start_time_ms:end_time_ms]
|
54 |
|
55 |
-
|
56 |
mp3_filename = f"downloads/{song_name}.mp3"
|
57 |
trimmed_audio.export(mp3_filename, format="mp3")
|
58 |
|
59 |
-
|
60 |
m4a_filename = f"downloads/{song_name}.m4a"
|
61 |
subprocess.run([
|
62 |
'ffmpeg', '-i', mp3_filename, '-vn', '-acodec', 'aac', '-b:a', '192k', m4a_filename
|
63 |
], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
64 |
|
65 |
-
# Rename to M4R
|
66 |
m4r_filename = f"downloads/{song_name}.m4r"
|
67 |
os.rename(m4a_filename, m4r_filename)
|
68 |
|
|
|
18 |
filename = None
|
19 |
song_name = None
|
20 |
|
21 |
+
|
22 |
if url:
|
23 |
ydl_opts = {
|
24 |
'format': 'bestaudio/best',
|
|
|
30 |
filename = os.path.join('downloads', f"{info['id']}.webm")
|
31 |
song_name = sanitize_filename(info['title'])
|
32 |
|
33 |
+
|
34 |
elif recorded_audio:
|
35 |
filename = recorded_audio
|
36 |
song_name = "recorded_audio"
|
|
|
38 |
if not filename or not os.path.exists(filename):
|
39 |
return None, None
|
40 |
|
41 |
+
|
42 |
audio = AudioSegment.from_file(filename)
|
43 |
|
44 |
+
|
45 |
start_time_ms = start_time * 1000
|
46 |
end_time_ms = end_time * 1000
|
47 |
|
48 |
+
|
49 |
start_time_ms = max(0, min(start_time_ms, len(audio)))
|
50 |
end_time_ms = max(start_time_ms, min(end_time_ms, len(audio)))
|
51 |
|
52 |
+
|
53 |
trimmed_audio = audio[start_time_ms:end_time_ms]
|
54 |
|
55 |
+
|
56 |
mp3_filename = f"downloads/{song_name}.mp3"
|
57 |
trimmed_audio.export(mp3_filename, format="mp3")
|
58 |
|
59 |
+
|
60 |
m4a_filename = f"downloads/{song_name}.m4a"
|
61 |
subprocess.run([
|
62 |
'ffmpeg', '-i', mp3_filename, '-vn', '-acodec', 'aac', '-b:a', '192k', m4a_filename
|
63 |
], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
64 |
|
|
|
65 |
m4r_filename = f"downloads/{song_name}.m4r"
|
66 |
os.rename(m4a_filename, m4r_filename)
|
67 |
|