[Python] 파이썬으로 mp3 파일 합치기 (이어 붙이기)
- 자아실현/파이썬
- 2023. 3. 5.
책을 사고 받은 mp3 파일들을 유튜브에 올려놓고 들으려고 하는데, 파일이 너무 많다 보니 여러개를 묶어서 한방에 올리려고 합니다. 파이썬이 있으니 간단히 할 수 있을 것 같습니다.
우선 mp3 파일을 다루기 위에 pydub를 설치합니다.
pip install pydub
잘 작동하는지 확인을 위해 샘플용 두 파일을 합친 후 test.mp3파일로 결과물을 저장합니다.
from pydub import AudioSegment
f1 =AudioSegment.from_mp3("01_1.mp3")
f2 =AudioSegment.from_mp3("01_2.mp3")
f3 = f1+f2
f3.export("test.mp3", format="mp3")
test.mp3 파일이 정상적으로 생성되었습니다.
만약 파일이 정상적으로 위치하고 있는데도 불구하고 아래와 같은 에러 메시지가 뜬다면
FileNotFoundError: [WinError 2] 지정된 파일을 찾을 수 없습니다
FFmpeg 다운 후 환경변수 PATH에 집어 넣는 과정이 필요합니다. 이 블로그 게시물을 참고하여 진행해주세요. (PATH 설정 후 shell 재시작 필요) https://kminito.tistory.com/108
파일 합치기가 문제 없이 실행되는 것으로 확인이 되었다면, 이제 'data' 폴더에 있는 100개 파일을 20개씩 묶어, 총 다섯 개의 mp3 파일로 만들어보겠습니다.
import os
count = 0
result = None
for n in range(0, 100, 20):
for file in os.listdir('data')[n:n+20]:
print(f"read file {file}")
if result is None:
result = AudioSegment.from_mp3(os.path.join("data",file))
else:
f_to_add = AudioSegment.from_mp3(os.path.join("data",file))
result += f_to_add
result.export(f"eng_discussion_{n}.mp3", format="mp3")
print(f"{n} done")
reuslt = None
위와 같이 총 100개의 파일이 5개로 합쳐졌습니다.
유튜브에 올리기 위해서 동영상으로 만드는 작업이 필요하신 분들은 하단에 링크된 게시물을 참조하여 진행해주시면 되겠습니다.
완성된 유튜브 영상
<mp3 파일을 동영상으로 만들기>
<동영상에 집어 넣을 이미지 만들기>