2009-01-03 19 views
25

मैं एमपी 3 टैग पढ़ने और लिखने के लिए उत्परिवर्तन का उपयोग कर रहा हूं, लेकिन मैं सीधे एल्बम में एल्बम कला को एम्बेड करने में सक्षम होना चाहता हूं।पाइथन का उपयोग करके एमपी 3 में एल्बम कला को आप कैसे एम्बेड करते हैं?

+1

क्या यह एक बहुत बुरा विचार नहीं है? क्या आप एक ही एल्बम के सभी एमपी 3 पर एक ही तस्वीर को एम्बेड करके अपने एमपी 3 आकार को नहीं बढ़ाएंगे? एल्बम कला उस फ़ोल्डर से संबंधित होनी चाहिए जहां एल्बम स्थित है। – nosklo

+2

@ नोस्क्लो एमपी 3 प्लेयर केवल एम्बेडेड चित्र दिखा रहे हैं और फ़ोल्डर – sdu

+0

@nosklo में स्थित नहीं है, मैंने पाया है कि मेरी एमपी 3 फ़ाइलें इतनी बड़ी हैं कि एक छोटा थंबनेल बहुत अंतर नहीं करता है। मैंने अनुमान लगाया कि मेरा औसत आकार 6 एमबी पर है, मैं अपने थंबनेल 60KB तक होने की अनुमति देता हूं ताकि वे फ़ाइल आकार में केवल 1% जोड़ सकें। जेपीईजी के साथ जो काफी हो जाता है। –

उत्तर

3

ऐसा लगता है कि आपको एमपी 3 में एक विशेष प्रकार का फ्रेम जोड़ना है। ID3 tags

पर साइट देखें इसके अलावा उत्परिवर्तजन के लिए ट्यूटोरियल है कि आप मुझे eyeD3 मॉड्यूल का उपयोग किया है इस सटीक बात करने के लिए उत्परिवर्तजन see

12

में ID3 टैग जोड़ सकते हैं का तात्पर्य।

def update_id3(mp3_file_name, artwork_file_name, artist, item_title):  
    #edit the ID3 tag to add the title, artist, artwork, date, and genre 
    tag = eyeD3.Tag() 
    tag.link(mp3_file_name) 
    tag.setVersion([2,3,0]) 
    tag.addImage(0x08, artwork_file_name) 
    tag.setArtist(artist) 
    tag.setDate(localtime().tm_year) 
    tag.setTitle(item_title) 
    tag.setGenre("Trance") 
    tag.update() 
+0

v0.7 के रूप में, उपयोग इस तरह है: 'audiofile = eyed43.load (file_name)' और 'audiofile.tag.artist = artist', आदि देखें: http://eyed3.nicfit.net/ –

+0

यह ब्लॉग अद्यतन और नवीनतम एपीआई का उपयोग करके eyed3 कार्यान्वयन की व्याख्या करने का अच्छा काम करता है। http://tuxpool.blogspot.in/2013/02/how-to-store-images-in-mp3-files-using.html –

35

यहाँ उत्परिवर्तजन साथ example.mp3 में एल्बम कवर के रूप example.png जोड़ने का तरीका है:

from mutagen.mp3 import MP3 
from mutagen.id3 import ID3, APIC, error 

audio = MP3('example.mp3', ID3=ID3) 

# add ID3 tag if it doesn't exist 
try: 
    audio.add_tags() 
except error: 
    pass 

audio.tags.add(
    APIC(
     encoding=3, # 3 is for utf-8 
     mime='image/png', # image/jpeg or image/png 
     type=3, # 3 is for the cover image 
     desc=u'Cover', 
     data=open('example.png').read() 
    ) 
) 
audio.save() 
+2

यह काम नहीं करता है; मैं उपरोक्त कोड का पालन करता हूं और मुझे "टाइप एरर: एक पूर्णांक आवश्यक है" – Tensigh

+1

मेरे लिए न तो, मुझे मिलता है: 'TypeError:' str 'ऑब्जेक्ट को पूर्णांक के रूप में व्याख्या नहीं किया जा सकता है। पूर्ण ट्रेस और स्रोत यहां: https://gist.github.com/brutus/69c51cd706a6cf5d1594 – Brutus

+1

मुझे 'save2 में 'v2_version = 3' का उपयोग करना आवश्यक था ताकि नए टैग विंडोज 7 द्वारा पढ़े जा सकें, और मैं सीधे 'आईडी 3' ऑब्जेक्ट में पढ़कर इस कोड को सरल बना दिया। अन्यथा यह उत्तर सही था, दूसरों द्वारा रिपोर्ट की गई त्रुटियों में से कोई भी नहीं। –

0

एक अच्छा छोटे CLI उपकरण जो मुझे जाँच करते समय id3 विकासशील मैं क्या किया के साथ एक बहुत मदद की सामान mid3v2 है जो id3v2 का उत्परिवर्तन संस्करण है। यह पाइथन mutagen लाइब्रेरी के साथ बंडल आता है। इस छोटे उपकरण के स्रोत ने मुझे उत्परिवर्तन का उपयोग करने के बारे में बहुत सारे जवाब दिए।

1

Possible solution

आप फ़ाइलों का एक बहुत में छवियों को एम्बेड करने के लिए कोशिश कर रहे हैं? यदि ऐसा है, तो मुझे एक स्क्रिप्ट मिली (लिंक देखें) जो निर्देशिकाओं के एक सेट के माध्यम से जाता है, छवियों को देखता है, और उन्हें एमपी 3 फ़ाइलों में एम्बेड करता है। यह मेरे लिए उपयोगी था जब मैं वास्तव में अपने (अब निष्क्रिय) आईफोन पर कवरफ्लो में देखने के लिए कुछ करना चाहता था।

+0

लिंक समाप्त हो गई है। – raincrash

संबंधित मुद्दे