def _write_flac_tags(self, path, track, tags=None): if "DATA" in track: track = track["DATA"] if not tags: tags = self.get_track_tags(track) audio = File(path) audio.delete() cover = tags["_albumart"] del tags["_albumart"] if cover: pic = mutagen.flac.Picture() pic.data = cover["image"] audio.clear_pictures() audio.add_picture(pic) for key, val in tags.items(): if val: audio[key] = str(val) audio.save() return True
def save(pf): metadata = Metadata() metadata.copy(pf.metadata) mf = MFile(pf.filename) if mf is not None: mf.delete() return pf._save_and_rename(pf.filename, metadata)
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 write_info2file(self, info): # open file with mutagen audio = File(info['filename'], easy=True) if audio is None: return if self.container.config.always_remove_tags: if audio.tags is not None: audio.delete() else: # write title+album information into audio files if audio.tags is None: audio.add_tags() # write album+title if info['album'] is not None: audio.tags['album'] = info['album'] if info['title'] is not None: audio.tags['title'] = info['title'] # write genre tag if self.container.config.genre_tag is not None: audio.tags['genre'] = self.container.config.genre_tag else: audio.tags['genre'] = '' # write pubDate if info['pubDate'] is not None: audio.tags['date'] = info['pubDate'] audio.save()
def save(pf): metadata = Metadata() metadata.copy(pf.metadata) mf = MFile(pf.filename) if mf is not None: mf.delete() return pf._save_and_rename(pf.filename, metadata)
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()
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()
def remove_tags(self): audio = File(self.filename, easy=True) if audio.tags is not None: audio.delete() audio.save()
def remove_tags(self): audio = File(self.filename, easy=True) if audio.tags is not None: audio.delete() audio.save()
def test_clear_metadata(filename): t = MFile(filename) t.delete() t.save()