ID3 제목 태그를 MP3 파일 이름과 동일하게 설정


14

누구나 미디어 라이브러리를 통해 각 MP3 파일의 id3 제목 태그를 파일 이름과 동일하게 설정하는 bash 스크립트를 가지고 있습니까?

나는 다른 자동화 된 방법에도 열려 있습니다. GUI 응용 프로그램 또는 자동으로 작업을 수행하는 모든 것이 될 수 있습니다.

EasyTag 방법은 다음과 같습니다. mp3 ID3 파일에서 대량 제목 태그 이름을 바꾸는 방법 — 불행히도 단계를 이해하지 못합니다.


당신은 당신의 자신의 질문에 대답 할 수 있습니다. 찾은 단계를 나열하고 ubuntuforums.org출처를 인용하십시오. :) ubuntuforums.org링크를 사용할 수없는 경우 향후 수퍼 유저 방문자에게 도움이됩니다 .
iglvzx

3
다음은 몇 가지 팁입니다. 1) "edit 1", "edit 2"등으로 질문복잡하게하지 마십시오 . 주석을 사용하여 문제를 해결하십시오. 2) 해결책을 찾으면 다른 사람의 질문에 대답하려는 것처럼 답변으로 게시하십시오. 질문에 답을 넣지 마십시오 . 그것은 사람들이 찾는 곳이 아닙니다 :) 또한 다른 곳에서 인용 한 것에 인용 부호를 사용 하십시오 (서식 도움말 참조).
slhck

- 나는 형식으로 올바르게 태그 MP3 파일에 "아티스트 Track.mp3을"스크립트를 만든 다음 "Track.mp3"로 파일 이름을 변경 gist.github.com/ZachSaucier/f51e608ac75e8ed6e96cd54a9ec103b0을 사용하여eyed3
자크 Saucier을

답변:


17

EasyTAG는 실제로이 문제에 대한 훌륭한 도구입니다. 나는 여기 에서 내 대답을 찾았다 . 사용 방법 측면에서 가장 좋은 참조는 EasyTAG의 자체 문서 인 것으로 밝혀졌습니다 .

EasyTag를 열고 음악 파일이 들어있는 폴더로 이동 한 다음 폴더에있는 모든 파일 또는 태그를 지정하려는 모든 파일을 선택하고 "파일 스캔"버튼을 클릭하십시오. 어느 것이 야).

그런 다음 스캐너 드롭 다운이 "Fill Tag"로 설정되어 있는지 확인한 다음 Fill Tag 필드에서 필드 아래의 예가 원하는 모양이 될 때까지 적절히 편집하십시오. 채우기 태그 필드에 넣을 내용에 대한 추가 도움이 필요하면 "?"를 클릭하십시오. 범례에 대한 버튼 (다른 가능한 코드로 번역 할 내용 나열)을 시작하고 마스크 버튼을 눌러 시작 지점을 나열합니다.

결과가 마음에 들면 "파일 스캔"버튼을 클릭하십시오 (파일 스캔 대화 상자에서 원래 위치를 클릭하기 위해 클릭 한 것이 아니라 아이콘이 동일하게 표시됨). 변경 사항이 적용됩니다. . 아티스트 또는 앨범 이름을받지 못한 경우 변경하려는 항목을 모두 선택하고 데이터를 입력 한 후 해당 필드 옆에있는 작은 버튼을 클릭하면 선택한 모든 파일이 해당 아티스트 또는 앨범으로 채워지거나 변경됩니다. 이것은 대부분의 분야에서 작동합니다.

완료되면 저장 버튼을 클릭하면 완료됩니다.

추신 : CDDB 스캐너는 태그를 지정하려는 전체 앨범이 있거나 최소한 시중에서 판매되는 노래 파일이있는 경우 꽤 잘 작동합니다.

PPS : 나는 아직도 반쯤 깨어있다. 원래 게시물에 작성한 내용에 따라 채우기 태그 필드에서 다음을 시도하십시오.

%n. %a - %t

이 질문과 관련된 섹션은 다음과 같습니다.


1.2.2. “Fill Tag”스캐너로 자동 :

이 모드를 사용하기위한 몇 가지 조건 :

  • 앨범별로 정렬 된 파일
  • 파일 이름 또는 상위 디렉토리에 태그 정보 (아티스트, 앨범, 제목 등)가 포함되어 있습니다.
  • 비어 있거나 올바르지 않은 태그

"Fill Tag"스캐너는 패턴을 사용하여 파일 이름 및 디렉토리의 단어를 태그 항목과 연결합니다. 이런 식으로 스캐너 창 또는 도구 모음에서 "녹색"버튼을 눌러 태그 필드를 자동으로 완성 할 수 있습니다. 태그가 부분적으로 완성 된 경우 "기본 설정"창의 "스캐너"탭에서 "태그를 스캔 할 때 필드 덮어 쓰기"옵션을 사용하여 모든 필드를 새 값으로 바꿉니다.

각 코드는 다음 규칙에 따라 필드에 해당합니다.

Strings associated with code    Will fill the field
%a
  Artist
%b
  Album
%c
  Comment
%p
  Composer
%r
  Copyright
%e
  Encoded by
%g
  Genre
%i
  None! (used to ignore a string)
%l
  Number of tracks
%o
  Original artist
%n
  Track
%t
  Title
%u
  URL
%y
  Year

참고 : 실수를 피하려면 패턴에서 코드를 한 번만 사용하는 것이 좋습니다. 물론 수동으로 태그를 지정할 때와 같이 선택한 파일 만 스캐너에서 처리됩니다. 목록에서 정의 된 패턴을 사용하거나 파일 이름 및 디렉토리의 형식에 해당하는 고유 한 패턴을 작성할 수 있습니다. 올바른 패턴을 선택하거나 쓸 때 실수를 피하기 위해 패턴을 적용하기 전에 미리보기에 결과가 즉시 표시됩니다. 다른 코드에 대한 도움이 필요한 경우“도움말”버튼 (구명 부표)을 눌러 각 코드의 범례를 표시하십시오. 또한 자신 만의 패턴을 저장하려면 편집하거나 정렬 한 다음 "Mask"버튼을 눌러 스캐너 창에 작은 편집기가 표시됩니다.

패턴 사용 예 아래 :

a) 다음 파일 이름 :

“/mnt/MP3/EVANESCENCE  Fallen (2003)  Rock/01. Going Under.mp3

b) with the pattern :

“%a - %b (%y) - %g/%n. %t

c) you will fill the tag with theses strings :

    Artist (%a) => EVANESCENCE
    Album (%b) => Fallen
    Year (%y) => 2003
    Genre (%g) => Rock
    Track (%n) => 01
    Title (%t) => Going Under


3

다양한 명령 줄 도구가 유용하다는 것을 알았습니다.

id3v2

id3v2는 명령 행 id3v2 태그 편집기입니다. id3v2 태그를 추가 / 수정 / 삭제하고 id3v1 태그를 id3v2 태그로 변환 할 수 있습니다. id3lib를 사용합니다. 공동 유지 관리자를 찾고 있습니다. 관심이 있으시면 myers_carpenter에게 이메일을 보내 주시기 바랍니다.

eyeD3

eyeD3은 ID3 태그를 처리하기위한 Python 모듈 및 프로그램입니다. mp3 파일에 대한 정보 (예 : 비트 전송률, 샘플 주파수, 재생 시간 등)도 제공됩니다. 지원되는 형식은 ID3 v1.0 / v1.1 및 v2.3 / v2.4입니다.

이들은 디렉토리를 스캔하기 위해 무언가를 스크립팅 할 때 이상적입니다.


2

이것은 항상 완벽하게 완벽하지는 않지만 일반적인 유닉스 도구 (통화 상자 버전 포함) 만 사용하여 mp3 파일의 이름을 얻는 데 사용했습니다. Tom Petty mp3가 6 개 이상인 사람은 추가 테스트를 수행 할 수 있습니다.

for x in *.mp3; do
  TITLE=$(strings "$x" |grep TAG |grep -v TAGL |sed "s/^.*TAG//g ; /^L$/d ; /^@$/d ; /^$/d ; /^Ac$/d")
  #mv "$x" "$TITLE.mp3"
  echo $x" "$TITLE.mp3" #just echo for now, until further tested
done

편집 : 질문을 잘못 읽었지만 위의 내용을 알면 sed를 사용하여 $ TITLE을 문자열 "$ x"의 이름으로 바꿀 수 있습니다 .sed를 사용하여 문자열을 바꿉니다.

sed -i "s/$TITLE/$x/" "$x"

나는 이것이 모든 ID3 사양을 충족시키지 못한다는 것을 거의 100 % 확신하지만, 먼저 백업을하는 한 기본 개인 용도로는 충분할 수 있습니다


감사. EasyTAG를 사용하여 목표를 달성 할 수있는 방법을 찾았지만 답장은 실제로 원래의 질문에 가장 잘 맞습니다. 문자열은 알고있는 유용한 유틸리티입니다. (이전에 사용한 적이 없습니다.) 제안 된 변경 사항을 이해할 수 있도록 편집 내용을 기반으로 완벽한 솔루션을 게시 할 수 있습니까?
MountainX

2

우분투 18.04 LTS (모든 데비안 풍미가 잘 작동한다고 가정합니다) :

  • eyeD3을 sudo apt install eyeD3

  • bash 스크립트를위한 파일 만들기 ( "touch"를 사용했습니다. 원하는 텍스트 편집기를 사용할 수 있습니다)

  • 이것을 복사하여 파일에 붙여 넣으십시오.

    파일 이름을 복사하여 제목 태그에 씁니다.

    for x in *; do
        eyeD3 --title="${x%.*}" "$x"
        echo $a
    done

    진행 상황을 보지 않으려면 echo $a "완료"라는 단어 위의 줄을 생략하십시오 .

  • 파일을 실행 가능하게 만드십시오.

    chmod +x filename
  • 스크립트를 실행할 디렉토리 (미디어 파일이 포함 된 디렉토리)에 스크립트를 복사하십시오. 예를 들면 다음과 같습니다.

    cp filename /music/directory
  • 방금 스크립트를 복사 한 디렉토리로 이동하십시오.

    cd /music/directory
  • 스크립트를 실행하십시오.

    ./filename

    끝난

그것은 Ubuntu 18.04 LTS에서 저에게 효과적이었습니다. 제 아내는 약 3 분 안에 저를 위해 이것을 썼습니다. 나는 프로그래머에 정통하지 않다. 나는이 웹, dns, ssh, sftp, ftp, AD / 도메인, 파일, 방화벽, 라우터 / 서버 종류를 설정하고있다. 스크립팅, 프로그래밍 및 이와 유사한 것을 활용하는 것을 좋아합니다.


1

나는 아무도 사용하는 가장 쉬운 솔루션을 제안하지 않았다 것을 놀라게하고 ffmpeg또는를 avconv:

for i in *.mp3; do avconv -y -i "$i" -c copy -metadata title="$i" new_"$i"; done;

0

python virtualenv에 eyeD3을 설치 pip install eyeD3하여 가장 최근에 출시 된 버전을 얻습니다. 그 후 :

for i in *.mp3; do /your/venv/bin/eyeD3 --title "$i" "$i"; done
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.