python - 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()
上面的代码有效,但我不知道为什么第一个没有。
解决方案
推荐阅读
- java - 从 json 字符串中删除字符“\”
- react-native - 使用 react-native-webrtc 对实时流进行运动检测
- python-3.x - 如何将包含namedtuple的列表的字符串表示转换为普通列表
- java - 用于保存在 MVC Springframework 中的自增 ID
- xamarin - Xamarin 通用链接不请求苹果应用程序站点文件
- getstream-io - 如何将我们自己的 ML 模型添加到 Stream.io 或 Stream Framework
- sql-server - [Microsoft][SQL Server Native Client 11.0][SQL Server]'@P1' 附近的语法不正确:
- apache-pig - 将 yyyymmdd chararray 转换为 yyyy/mm/dd 日期格式
- odoo - 为什么我以管理员身份获得(操作:读取,用户:2)?
- excel - 如何将单元格中的值作为 Range 函数的输入传递?