나는 왜 다시 mp3로 음악을 듣기 시작했을까
YouTube, Spotify 등 인터넷에는 음악을 들을 수 있는 곳이 정말 많지만 정작 음악을 다운로드해서 Music 플레이어에 담아 듣는 일은 어렵다.
음악 스트리밍 서비스를 제공하는 쪽의 입장도 충분히 이해는 간다. 온라인으로 들어야 그들이 원하는 바—여러 가지가 있겠지만—를 얻을 수 있기 때문이다.
하지만 온라인에서 음악을 듣는다고 해도, 이른바 버퍼링 과정에서 음악 데이터는 결국 내 기기로 내려받아진다. 단지 그 파일이 어디에 있는지 알 수 없는 캐시 형태일 뿐.
결국 음악은 언제나 내 디바이스에서 듣고 있는 셈이므로…
목표
Mac에서 원하는 음악을 다운로드하여 앨범 아트, 제목, 트랙 번호를 자동으로 입력하여 mp3 파일로 저장로 저장하려고 한다. 이렇게 정리해 두면 예전 iPod이나 Apple Music에 넣어 깔끔하게 감상할 수 있기 때문이다.
찾아보면 음악을 직접 다운로드해 주는 툴은 꽤 많은데 그중에서도 yt-dlp와 spotdl이 가장 많이 언급되는 것 같으니 이걸로 해 본다.
yt-dlp
https://github.com/yt-dlp/yt-dlp/releases
Mac이므로 yt-dlp_macos.zip 파일을 사용한다. 다운로드 후 압축을 풀고 실행 권한을 부여한다. 모든 작업을 같은 폴더에서 하고 싶어서, 리스트 상단에 보이도록 파일명 앞에 _를 붙였다.
mv yt-dlp _yt-dlp_macos
chmod +x _yt-dlp_macos
최초 실행 시에는 macOS 보안 설정에서 실행 허가를 한 번 해줘야 한다.
시스템에
ffmpeg가 없다면 Homebrew로 설치한다.brew install ffmpeg
YouTube Music에서 mp3로 다운로드
YouTube Music에서 원하는 앨범이나 플레이리스트를 찾는다.
https://music.youtube.com/playlist?list=OLAK5uy_lM26jNgqN3P9PnKuf51XFyGeH4ToXLAlg
아래와 같이 명령을 실행한다.
# 02d → 01, 02 형식의 넘버링
# 03d → 001, 002 형식의 넘버링
./_yt-dlp_macos -x --audio-format mp3 --embed-thumbnail --add-metadata --audio-quality 0 \
-o "%(playlist_index)02d - %(title)s.%(ext)s" \
https://music.youtube.com/playlist?list=OLAK5uy_lM26jNgqN3P9PnKuf51XFyGeH4ToXLAlg
이렇게 하면
- 파일명에 YouTube Music의 트랙 번호가 붙고
- 앨범 아트가 포함된 mp3 파일
이 생성되는데, 이 상태에서는,
- mp3 태그의 Track No. 가 비어 있고
- 앨범 아트가 정사각형이 아닐 수도 있다.
그래서 이를 보완하기 위한 Bash 스크립트를 하나 더 만든다.
mp3 태그의 Track No. 추가 + 앨범 아트 정사각형 조정
#!/bin/bash
# 현재 폴더의 모든 MP3 처리
for f in *.mp3; do
echo "Processing: $f"
# 파일명에서 track number 추출 (예: "01 - Title.mp3")
TRACK=$(echo "$f" | sed -E 's/^([0-9]+).*/1/')
# 선행 0 제거 → 01 → 1
TRACK=$((10#$TRACK))
echo " → Track number detected: $TRACK"
# 기존 썸네일 추출
ffmpeg -y -i "$f" -an -vcodec copy cover_orig.jpg 2>/dev/null
# 정사각형 crop
ffmpeg -y -i cover_orig.jpg
-vf "crop=min(iw,ih):min(iw,ih)"
cover_square.jpg
# square 썸네일 + track number 태그 삽입
ffmpeg -y -i "$f" -i cover_square.jpg
-map 0:a -map 1:v
-c:a copy -c:v mjpeg
-metadata:s:v title="Album cover"
-metadata:s:v comment="Cover (front)"
-metadata track="$TRACK"
"${f%.mp3}_sq.mp3"
# 원본 파일 교체
mv "${f%.mp3}_sq.mp3" "$f"
done
# 임시 파일 정리
rm -f cover_orig.jpg cover_square.jpg
echo "=== 모든 mp3의 앨범아트 square + track number 삽입 완료 ==="
이 스크립트를 _after.sh로 저장하고 실행 권한을 준 뒤 실행하면, 최종적으로 mp3 태그가 깔끔하게 정리된 파일을 얻을 수 있다.
필요하다면 이 스크립트를 수정해 Artist, Album, Year 등도 더 세밀하게 컨트롤할 수 있을 것이다.
실행
./_yt-dlp_macos -x --audio-format mp3 --embed-thumbnail --add-metadata --audio-quality 0
-o "%(playlist_index)02d - %(title)s.%(ext)s"
https://music.youtube.com/playlist?list=OLAK5uy_lM26jNgqN3P9PnKuf51XFyGeH4ToXLAlg
./_after.sh
spotdl
실제로 사용해 보면, 다운로드 소스로는 YouTube Music이 선택되는 경우가 많다. Spotify나 YouTube를 강제로 지정하면 더미 파일이 내려받아지는 경우가 있는데, 서비스 업체 쪽에서도 어느 정도 대응을 하고 있는 듯하다.
https://github.com/spotDL/spotify-downloader/releases
Mac용 spotdl-4.4.3-darwin 파일을 다운로드한다. yt-dlp와 마찬가지로 실행 권한을 주고, 최초 실행 시 보안 허가를 해 준다.
Spotify에서 곡, 앨범, 플레이리스트 등을 를 찾은 뒤, ... 메뉴에서 Share → Copy link to …를 선택하면 URL이 복사된다.
아래처럼 실행한다.
실행
../spotdl-4.2.11-darwin --bitrate disable download https://open.spotify.com/playlist/37i9dQZF1DXc3KPAjGyPdm
--bitrate disable 옵션을 주면 추가 라이브러리 설치 없이 깔끔하게 진행된다.
YouTube Music과 달리,
- mp3 태그가 매우 잘 정리되어 있고
- 가사 파일까지 함께 저장해 준다
는 장점이 있다.
다만 mp3 태그에 들어간 가사는 iPod이나 Apple Music에서는 표시되지 않기 때문에 개인적으로는 활용도가 크지는 않았다.
결론
요즘은 음악 파일을 iPod과 Apple Music에 넣어서 듣고 있다. 이왕 듣는 거라면, 앨범 아트와 제목, 트랙 정보를 깔끔하게 정리해서 듣고 싶어져서 해 봤는데 괜찮은것 같다.
정리해서 넣어 두니 수집하는 느낌도 들고 인터넷 연결 없이도 빠르게 찾을 수 있어서 의외로 만족도가 꽤 높다.
하지만 저작권 문제에서 완전히 자유로울 수는 없으므로 어디까지나 개인적인 백업 및 감상 목적 외의 사용은 피하는 것이 좋겠다.
Responses
Leave a response to @richard