def tag(filename, data): audio = File(filename) audio.delete() if isinstance(audio, mp3.MP3): audio.tags = easyid3.EasyID3() audio.update(data) audio.save()
def tag(self): data = self.get_parent_instance().metadata() with tempfile.NamedTemporaryFile(suffix='-musicdb.mp3') as f: # Download with default_storage.open(self.file.location) as g: contents = g.read() f.write(contents) f.flush() f.seek(0) audio = MutagenFile(f.name) audio.delete() if isinstance(audio, mp3.MP3): audio.tags = easyid3.EasyID3() audio.update(data) audio.save() self.length = int(audio.info.length) # Copy it back default_storage.delete(self.file.location) dst = default_storage.save(self.file.location, DjangoFile(f)) assert dst == self.file.location
def tag(self): try: data = self.get_parent_instance().metadata() filename = os.path.join(settings.MEDIA_LOCATION, self.file.location) audio = MutagenFile(filename) audio.delete() if isinstance(audio, mp3.MP3): audio.tags = easyid3.EasyID3() audio.update(data) audio.save() except: self.tags_dirty = None self.save() raise finally: self.tags_dirty = False self.save()