명령줄을 사용하여 MP3 파일에서 앨범 아트 제거

명령줄을 사용하여 MP3 파일에서 앨범 아트 제거

여러 개의 MP3(수천 개)에 포함된 앨범 아트를 제거하고 싶지만 이를 수행하는 명령줄 방법을 찾을 수 없습니다. art를 추가할 수 lame있고 거의 모든 다른 태그를 추가하거나 제거할 수 있지만 id3tag다음을 수행할 방법을 찾을 수 없습니다.

for file in **/*.mp3 do <remove image command> $file; done

내가 이것에 무엇을 넣을 수 있는지 아는 사람이 있나요 <remove image command>?

답변1

좋은 해결책은 없는 것 같습니다. 제가 생각해낸 최선의 방법은 ffmpeg를 사용하여 새 파일을 빠르게 만드는 것입니다. @awesome14가 제공한 명령이 내 시스템에서 작동하지 않았습니다(대부분 작동했지만 오류가 많이 발생하고 노래가 복사되지 않았습니다). 이것이 내가 생각해낸 명령이다.

for song in **/*.mp3
   do NAME=$(echo ${song%/*} | sed -e 's|[/ ]|-|g’)
      ffmpeg -y -i $song -vn -c copy /path/NOART/"$NAME-"${song##*/}; 
done

이것은 bash5 또는 zsh 쉘에서 작동합니다.

  1. **/*.mp3현재 디렉터리 아래의 모든 디렉터리에서 .mp3와 일치하는 모든 파일

  2. echo ${song%/*} | sed -e 's|[/ ]|-|g’파일 이름이 아닌 경로 부분의 모든 슬래시와 공백을 대시로 변환합니다.

  3. —vn -c copy영상(영상번호)은 복사하지 마시고, 수정되지 않은 파일을 복사하세요.

  4. /path/NOART/"$NAME-"${song##*/}NAME 변수에 설정된 파일 이름과 $song의 기본 이름을 사용하여 경로에 저장합니다.

  5. 출력 파일 이름은 "10Cc-Look-Hear-Dressed To Kill.mp3"과 유사합니다.

이 작업의 또 다른 장점은 노래에서 모든 메타데이터를 제거하지 않고 "비디오"(이 경우 앨범 표지 아트)만 제거한다는 것입니다.

답변2

@BowlOfRed가 올바르게 지적했습니다.간단한 대답 사용eyeD3 패키지존재하다그들의 의견. 그냥 파일인 경우

eyeD3 -- 모든 이미지 삭제파일 이름.mp3

원래 문제에 맞춰 사용자 정의한 다음

for file in **/*.mp3; do eyeD3 --remove-all-images "$file"; done

심지어

eyeD3 --remove-all-images **/*.mp3

물론, 이 예제에서처럼 작동하려면 globstar" "에 대해 " " 쉘 옵션을 설정해야 합니다 .**

답변3

이를 설치 kid-cli하고 CLI에서 메타데이터 태그를 변경하는 데 사용할 수 있습니다. 이 질문을 보기 전에는 앨범 아트를 제거하는 데 이 방법을 사용한 적이 없었지만 다음과 같은 방법을 알아낸 것 같습니다.

for file in **/*.mp3 do (sleep 2; printf %s\\n 'set "Picture:" ""' save exit) | kid3-cli $file; done

cli 프로그램이지만 kid3-cli는 대화형 사용을 위해 만들어졌습니다. 따라서 명령은 대화형으로 입력해야 합니다. 또한 어떤 이유로든 지연이 없으면 위 명령이 작동하지 않습니다. 처리할 파일이 많은 경우 여러 파일에 대해 명령을 병렬로 실행하여 이 문제를 완화할 수 있습니다.

for file in **/*.mp3 do (:; (sleep 2; printf %s\\n 'set "Picture:" ""' save exit) | kid3-cli $file)&; done; wait

또는:

(sleep 2; printf %s\\n 'set "Picture:" ""' save exit; sleep 2) | kid3-cli *.mp3; done

후자의 경우 kid3-cli를 지연해야 합니다.뒤쪽에명령도 파이프로 전달되었습니다. 이유는 모르겠지만 적어도 모든 파일을 한 번에 처리할 수는 있습니다.

추신: 이것을 테스트할 mp3 파일이 없어서 ogg/vorbis 파일을 사용했습니다. ogg는 mp3(id3)와 다른 태깅 시스템(vorbis 주석)을 사용하므로 두 형식 모두에 동일한 효과를 줄 수 있습니다. 그러나 이것은 어쨌든 mp3에 *작동해야 합니다*.

답변4

설치하다아이 3

$ pacman -Ss kid3
community/kid3 3.9.1-2 [installed]
    An MP3, Ogg/Vorbis and FLAC tag editor, KDE version

스크립트를 실행합니다.

#!/bin/bash

for filename in ./*.mp3; do
    echo $filename
    kid3-cli -c 'set Picture ""' $filename
done

관련 정보