메타데이터를 찾을 수 없을 때 CD 리퍼가 알 수 없는 앨범을 덮어쓰지 못하게 하려면 어떻게 해야 합니까?

메타데이터를 찾을 수 없을 때 CD 리퍼가 알 수 없는 앨범을 덮어쓰지 못하게 하려면 어떻게 해야 합니까?

내 CD 컬렉션을 리핑하는 긴 과정을 시작하겠습니다. abcde를 설치했는데 구성은 다음과 같습니다.포인트 앤드류. 잘 되는 것 같으나 메타데이터 획득에 실패하면 MP3가 알려지지 않은 아티스트와 알려지지 않은 앨범에 기록됩니다. 두 번째 메타데이터 가져오기가 실패할 때까지는 문제가 되지 않습니다. 그런 다음 트랙을 덮어씁니다. 이상적으로는 두 번째 앨범의 제목에 "Unknown Album 2"와 같은 숫자가 표시됩니다. 이를 달성하는 방법에 대한 제안이 있으십니까? 아니면 디렉토리 덮어쓰기를 방지하는 방법은 무엇입니까?

답변1

abcdeabcde완료 시 호출하고 "알 수 없는 아티스트/알 수 없는 앨범" 디렉토리가 있는지 확인하는 스크립트를 사용하여 프로세스를 자동화할 수 있습니다 abcde.

테스트 결과 디렉터리가 존재하는 것으로 나타나면 다음을 사용하여 얻을 수 있는 디스크의 CDDB ID가 포함된 이름으로 이름을 바꿉니다.CD도구. 이 스크립트는 미리 ID를 가져옵니다. 그렇지 않으면 자동 팝업으로 인해 abcde가 완료된 후 ID를 가져오는 것이 방지됩니다.

#!/bin/bash

id=$(cd-discid /dev/cdrom)
abcde $@ || exit 1
if [ -d "Unknown Artist/Unknown Album" ]; then
    mv "Unknown Artist/Unknown Album" \
       "Unknown Artist/Unknown Album $id"
fi

답변2

위의 Serge 아이디어를 사용하여 .abcde.conf 구성 파일에서 mungefilename 기능을 편집했습니다.

여기에 제공된 구성 파일로 시작했습니다. Andrew's Corner에는 매우 유용한 튜토리얼이 있습니다.

cd-discid에서 반환된 문자열의 첫 번째 숫자를 추가하도록 함수를 편집했습니다.

mungefilename ()
    {
        CDDISKIDENT=$(cd-discid "$CDROM")

        FIRSTPARTID=$(echo $CDDISKIDENT | cut -d' ' -f1)
  echo "$@" | sed "s/Unknown\ Album/Unknown\ Album$FIRSTPARTID/" | sed -e 's/^\.*//' | tr -d ":><|*/\"'?[:cntrl:]"
}

답변3

이는 디스크를 리핑할 때 상위 프로세스의 PID를 추가합니다. 이는 리핑이 끝난 후 최종 복사 중에 mungefilename이 파일별로 실행되고, 자동 꺼내기를 설정하면 디스크에서 Discid를 가져올 수 없기 때문입니다. 상위 PID는 각 디스크의 고유한 상수입니다.

mungefilename ()
{
        echo "$@" | sed "s/Unknown\ Album/Unknown\ Album$PPID/" | sed -e 's/^\.*//' | tr -d ":><|*/\"'?[:cntrl:]"
}

관련 정보