youtube-dl로 -x --extract audio 옵션과 -f bestaudio를 사용해서 M4A 파일로 다운로드 시 meta data를 추가 분석하기 위해서 AtomicParsley를 사용합니다. AtomicParsley는 MPEG4의 meta data를 분석하는 tool입니다. 간단한 설명은 아래 그림을 참고하세요.
youtube-dl 음원 추출 명령어
아래 명령어로 음원을 추출하는 경우에 AtomicParsley 가 설치되어 있지 않는다면 에러가 발생할 수 있습니다. M4A 파일로 다운로드하고 Meta data를 추출합니다.
$ youtube-dl -x --audio-format best --add-metadata --embed-thumbnail {YOUTUBE URL}
-x : Audio file 추출
-audio-format best : aac, mp3, m4a 등에서 최적 audio format을 사용
-- add-metadata: 음원 파일에 Meta data를 추가함
--embed-thumbnail: 음원 파일에 앨범 아트를 추가함
에러 메시지
명령어를 실행하면 "ERROR: AtomicParsley was not found. Please install." 메시를 출력하고 해결하는 방법은 해당 패키지를 설치하고 PATH를 연결해주면 됩니다.
$ [youtube] -5q5mZbe3V8: Downloading webpage
[youtube] -5q5mZbe3V8: Downloading thumbnail ...
[youtube] -5q5mZbe3V8: Writing thumbnail to: BTS (방탄소년단) 'Life Goes On' Official MV--5q5mZbe3V8.webp
[download] Destination: BTS (방탄소년단) 'Life Goes On' Official MV--5q5mZbe3V8.m4a
[download] 100% of 3.56MiB in 00:01
[ffmpeg] Post-process file BTS (방탄소년단) 'Life Goes On' Official MV--5q5mZbe3V8.m4a exists, skipping
[ffmpeg] Adding metadata to 'BTS (방탄소년단) 'Life Goes On' Official MV--5q5mZbe3V8.m4a'
[ffmpeg] Subtitles can only be embedded in mp4, webm or mkv files
[ffmpeg] Converting thumbnail "BTS (방탄소년단) 'Life Goes On' Official MV--5q5mZbe3V8.webp" to JPEG
ERROR: AtomicParsley was not found. Please install.
atomicparsley 설치 방법
명령어를 실행하는 "ERROR: AtomicParsley was not found. Please install." 메시를 출력하고 해결하는 방법은 해당 패키지를 설치하고 PATH를 연결해주면 됩니다. 우분투에서는 $ apt install 통해서 atomicparsley를 설치할 수 있고, Windows에서는 sourceforge 사이트에서 exe를 받아서 설치하고 PATH를 연결하면 됩니다.
- (우분투) $ sudo apt install atomicparsley
- Windows 설치 파일 다운로드 sourceforge.net/projects/atomicparsley/files/ 에서 설치
atomicparsley을 설치 후에 동일한 명령어를 실행하면 에러 없이 meta data를 추출하는 것을 알 수 있습니다.
관련 글
[개발환경/Tips] - youtube-dl로 Youtube에서 MP3 다운로드 시 아티스트와 앨범 아트(meta data) 포함시키는 방법
[개발환경/우분투] - 우분투20.04에서 Bluetooth 5.0 USB 동글 설치: Realtek 8716B Chipset
[개발환경/Tips] - Spotify 한국에서 사용하는 방법
[개발환경/Tips] - 네이버 동영상 다운로드 방법 (동영상과 설명 포함)
[모바일 SW 개발/Android] - Android 스마폰을 PC 화면으로 미러링: Mirroid
[개발환경/Tips] - 카카오 TV 1080p 동영상 다운로드: MPEG DASH의 MPD 활용
[개발환경/Tips] - 광고 없는 Android 토렌트 앱: LibreTorrent
[개발환경/Google Cloud Platform] - 회사에서 방화벽으로 막혀 있는 사이트 우회 방법: SSH tunneling 과 Socks5 활용
[개발환경/Tips] - Youtube 다운로드 방법 (광고 없는 오픈 소스 기반 tool 사용)
[개발환경/우분투] - Docker 개념과 명령어 사용 방법 및 예제
[개발환경/Google Cloud Platform] - IP Address CIDR 표현법과 사용 예
[개발환경/우분투] - 우분투 작업 스케줄러 Crontab 사용법, 디버깅, 주의 사항
[모바일 SW 개발/REST API] - Google gmail API 사용 방법 (3) - Sample code
[모바일 SW 개발/Python] - Python JSON 사용 시 TypeError: Object of type bytes is not JSON serializable
[개발환경/윈도우와 WSL] - 윈도우용 MobaXterm - SSH 및 X-Server 지원
[모바일 SW 개발/Android] - Android 소스 최적화 (100GB에서 65GB로 줄이기)
[개발환경/우분투] - 우분투20.04에서 한글 오타 방지 (UIM '벼루' 설치기)
[개발환경/우분투] - Ubuntu 20.04에서 sshfs 를 이용한 원격 폴더 마운트
[개발환경/git] - git 사용하기 #1 (부제: GitHub)
댓글