首页 > 解决方案 > python中的eyed3 mp3元数据

问题描述

import eyed3

filename = "/home/chris/Music/Αναστάσιμα τροπάρια ή άλλα τροπάρια Δεσποτικών, Θεομητορικών ή άλλων εορτών Αγίων/ΑΓΙΑ ΣΚΕΠΗ.mp3"
filename2 = "/home/chris/Music/Αναστάσιμα τροπάρια ή άλλα τροπάρια Δεσποτικών, Θεομητορικών ή άλλων εορτών Αγίων/ΑΓΙΟΙ ΑΓΓΕΛΟΙ.mp3"
filename3 = "/home/chris/Documents/Python/Papinhio player/version 2.1/diskets box/songs/mp3/Μιχάλης Χατζηγιάννης - Που Είναι Η Αγάπη - Official Audio Release.mp3"
audiofile = eyed3.load(filename3)
audiofile.tag.artist = "Artist"

audiofile.tag.save()

第三个 mp3 文件工作正常。它是由带有 AudioSegment 模块的 python 创建的(

创建文件的命令:

self.extension = self.sound_imported_filename.split(".")[-1]
        self.filename = self.sound_imported_filename.split("/")[-1].split(".")[0]
        self.audio = AudioSegment.from_file(self.sound_imported_filename, format=self.extension)
        self.audio_info = mediainfo(self.sound_imported_filename)
self.audio.export("/home/chris/Documents/Python/Papinhio player/version 2.1/diskets box/songs/mp3/"+self.filename+".mp3", format="mp3")

我认为前两个 mp3 文件是从 youtube-to-mp3.com 下载的(我不确定)。

问题是前两个文件我得到这个错误:

root@chris-pc:/home/chris/Documents/Python/Papinhio player/version 2.1/main/test# python3.6 metadata.py 
Traceback (most recent call last):
  File "metadata.py", line 7, in <module>
    audiofile.tag.artist = "Artist"
AttributeError: 'NoneType' object has no attribute 'artist'

前两个 mp3 文件有什么问题?

我已经上传了第一个用于Google Drive的 mp3 文件

编辑:

import eyed3
from pydub.audio_segment import AudioSegment

filename1 = "/home/chris/Music/Αναστάσιμα τροπάρια ή άλλα τροπάρια Δεσποτικών, Θεομητορικών ή άλλων εορτών Αγίων/ΑΓΙΑ ΣΚΕΠΗ.mp3"
filename2 = "/home/chris/Music/Αναστάσιμα τροπάρια ή άλλα τροπάρια Δεσποτικών, Θεομητορικών ή άλλων εορτών Αγίων/ΑΓΙΟΙ ΑΓΓΕΛΟΙ.mp3"
filename3 = "/home/chris/Documents/Python/Papinhio player/version 2.1/diskets box/songs/mp3/Μιχάλης Χατζηγιάννης - Που Είναι Η Αγάπη - Official Audio Release.mp3"

try:
    audiofile = eyed3.load(filename2)
    audiofile.tag.artist = "Artist"
    audiofile.tag.save()
except:
    audio = AudioSegment.from_file(filename2, format="mp3")
    audio.export(filename2, format="mp3",bitrate="128.0")
    audiofile = eyed3.load(filename2)
    audiofile.tag.artist = "Artist"
    audiofile.tag.save()

上面的代码有效,但我不知道为什么第一个没有。

标签: pythoneyed3

解决方案


推荐阅读