yt-dlp로 YouTube를 MP3로
YouTube 영상을 태그와 표지가 붙은 MP3로 바꾸는 yt-dlp 명령어를 만듭니다.
쓸 만한 MP3를 얻으려면
오디오 추출은 변환이므로 ffmpeg가 반드시 필요합니다 —— 새로 설치한 환경에서 명령어가 실패하는 이유가 이것입니다. 최고(VBR)가 올바른 기본값입니다: 용량 대비 품질이 가장 좋고, 고정 bitrate를 높여도 원본에 없던 품질이 생기지는 않습니다.
표지와 메타데이터는 이름 없는 파일이 가득한 폴더를 음악 플레이어가 정리할 수 있는 것으로 바꿔 줍니다. 여기 이름 템플릿은 아티스트를 앞에 두고, 태그에 아티스트가 없으면 업로더 이름을 씁니다.
--audio-quality 0은 가장 많이 오해받는 설정입니다. "품질 0"이 아니라 가변 비트레이트에서 가장 좋은 설정이고, 평균 245 kbps 정도이며, 눈금이 거꾸로 갑니다. 0이 최고이고 9가 최저입니다. 가변 비트레이트는 소리가 빽빽한 구간에 비트를 더 쓰고 조용한 구간에는 덜 쓰기 때문에, 같은 용량이라면 보통 VBR이 고정 비트레이트보다 더 좋게 들립니다. 고정 비트레이트를 고집하는 기기가 있다면 0~9 눈금에서 숫자를 짐작하지 말고 --audio-quality 320K처럼 이름으로 지정하세요.
더 중요한 질문은 애초에 변환해야 하느냐입니다. YouTube는 오디오를 Opus나 AAC로 제공하고 둘 다 MP3가 아닙니다. 즉 MP3를 요구하면 반드시 재인코딩이 일어납니다. 파일이 디코딩된 뒤 두 번째로 압축되고, 그때마다 품질이 조금씩 깎입니다. 가진 것 중에 .mp3 확장자를 꼭 요구하는 게 없다면 "최고(변환 없음)"를 고르세요. 더 빠르고, ffmpeg가 아예 필요 없으며, 결과물이 어떤 MP3보다도 원본에 가깝습니다. 자동차 오디오, DJ 프로그램, 오래된 휴대폰처럼 선택의 여지가 없을 때만 변환하세요.
재생목록 전체를 받으려면 재생목록을 켜고 아카이브 파일을 더하세요. 아카이브는 이미 받은 것을 기록하므로 다음 주에 같은 명령어를 실행해도 처음부터 다시 하지 않고 새로 올라온 것만 가져옵니다. "오류가 나도 계속"과 함께 쓰면 지역 제한이나 삭제된 곡 하나가 나머지 이백 곡을 끌고 내려가는 일도 없어집니다. 곡 순서가 중요하다면 출력 템플릿에 재생목록 번호를 넣으세요. 넣지 않으면 플레이어가 폴더를 알파벳순으로 정렬해 앨범 순서가 뒤엉킵니다.