2013-01-16 2 views
1

노래에 그림을 지정 하려는데 Mac에서 작동하지만 PC에서는 작동하지 않는 코드가 있습니다.mutagen mac 대 컴퓨터로 앨범 아트 지정

song = MP3(self.file, ID3=ID3) 

    # add ID3 tag if it doesn't exist 
    try: 
     song.add_tags() 
    except error: 
     print "we got an image error" 
     pass 

    song.tags.add(
     APIC(
      encoding=3, 
      mime='image/jpeg', 
      type=2, 
      desc=u'Cover', 
      data=open('example.JPG', 'rb').read() 
     ) 
    ) 
    song.save() 
: mutagen.mp3 가져 오기 MP3

데프 image_assigner (자기)에서 mutagen.id3 수입 ID3, APIC, 오류

에서 mutagen.easyid3 수입 EasyID3

에서

Mac에서는이 코드가 작동하지만 내 P에서 실행하면 C, 그렇지 않을거야. 어떤 도움을 주시면 감사하겠습니다. 감사!

편집는 그래서 좀 더 연구를 수행 한 후,이 코드는 MP3를 Mac에서 파일뿐만 아니라 윈도우에 앨범 사진을 저장 않는 것을 생각하지만, 어떤 맥이 할 수있는, ID3v2.4에 저장 읽기는 가능하지만 Windows는 읽을 수 없으므로 Windows에 저장하지 않은 것처럼 보입니다. mutagen 저장 함수에서 v1 = 2 옵션을 사용하면 ID3v1에 태그를 저장해야합니다 (this 페이지의 10 월 4 일 게시 참조). 앨범, 아티스트, 제목 등의 태그를 업데이트하면 작동하는 것처럼 보이지만 앨범 아트 워크의 경우 Windows 탐색기에 나타나지 않습니다. 아무도이 분야에서 경험이 있고 이것에 대해 밝힐 수 있습니까? 감사.

+0

정확히 작동하지 않는 정보를 추가 할 수 있습니까? – RocketDonkey

+0

이미지를 파일에 할당하지 않습니다. 내가 맥에서 할 때, 그것은 MP3 파일에 이미지를 할당하고, 내가 창에서 할 때, 그렇게하지 않는다. 그것은 어떤 오류나 어떤 것을 던지지는 않지만, 단지 그것이 가정 한 것을하지 않습니다. – user1432738

+0

누구든지 의견이 있으십니까? – user1432738

답변

1

예, 불행히도 Windows은 해당 버전을 지원하지 않습니다. ID3v1에 저장하는 대신 ID3v3ID3v1에 저장해보세요. 내 프로그램에서 이것을 사용하면 Windows 8OSX에서 잘 작동합니다.

from mutagen.mp3 import MP3 
from mutagen.id3 import ID3, APIC, error, TRCK, TIT2, TPE1, TALB, TDRC, TCON 

audio = MP3([PATH_TO_FILE], ID3=ID3) 
audio.tags.delete([PATH_TO_FILE], delete_v1=True, delete_v2=True) 
audio.tags.add(
    APIC(
     encoding=3, 
     mime='image/jpeg', 
     type=3, 
     desc=u'Cover', 
     data=open([PATH_TO_COVER_IMAGE], 'rb').read() 
    ) 
) 
audio.save([PATH_TO_FILE], v2_version=3, v1=2) 
관련 문제