标签: eyed3

使eyeD3模块可以在python中导入

在Windows上,我安装了Python 2.7并将python.exe的目录添加到PATH.然后我安装了pip和用于pip install eyeD3成功安装eyeD3模块.但是,使用import eyeD3不起作用,但抛出一个ImportError.我有想法PYTHONPATH在我的命令行中调整-environment-variable,但不知道我必须设置它.

python windows eyed3

3
推荐指数
1
解决办法
2676
查看次数

如何使用eyed3从python中的.mp3文件中获取细节(标题,艺术家)

这是我的代码

import eyed3

audiofile = eyed3.load("19 Calvin Harris - Summer.mp3")

print(audiofile.tag.artist)
Run Code Online (Sandbox Code Playgroud)

这是一个错误

Traceback (most recent call last):
  File "C:\Python34\testmp3.py", line 5, in <module>
    print(audiofile.tag.artist)
AttributeError: 'NoneType' object has no attribute 'artist'
Run Code Online (Sandbox Code Playgroud)

Visual Studio 中显示了属性。但是当我运行它时发生了错误

当我写print(audiofile)它时。不知道为什么是ps 蟒蛇 3.4。

python mp3 eyed3

2
推荐指数
2
解决办法
2万
查看次数

使用 eyeD3 从 URL 嵌入专辑封面

我正在开发一个 python 脚本,它从服务器下载音乐文件,然后从 URL 添加专辑图像,为此我使用的是 eyeD3 python 库,我的原始代码如下。

import eyed3

mySong = eyed3.load('C:\Users\PC\Music\Test.mp3')
mySong.tag.album_artist = u'Artist-Name'
mySong.tag.images.remove(u'')
mySong.tag.images.set(3, 'None', 'https://upload.wikimedia.org/wikipedia/en/6/60/Recovery_Album_Cover.jpg')
mySong.tag.save()
Run Code Online (Sandbox Code Playgroud)

我尝试了此命令的不同版本,它要么不返回任何错误,但没有像上述代码那样嵌入图像,要么返回一条错误消息,指出“ValueError: img_url MUST not be none when no image data”。

在我的另一个选择是直接从文件夹中的 URL 存储下载图像并从那里嵌入然后删除之前,任何人都在 eyeD3 的这一部分取得了任何成功,显然我的其他解决方案会更好。

python metadata id3 eyed3

2
推荐指数
2
解决办法
4201
查看次数

如何将utf8转换为cp1251来写入mp3文件的ID3_V1标签?

ID3_V1仅支持latin1编码.为了用俄语字符写V1标签,使用cp1251编码.我想将数据从V2标签(unicode)复制到V1标签.我使用eyeD3用法获得带有以下代码的V2标签:

tag.link(mp3path, v=eyeD3.ID3_V2)
mp3album_v2 = tag.getAlbum()
...
tag.link(mp3path, v=eyeD3.ID3_V1)
tag.setTextEncoding(eyeD3.LATIN1_ENCODING)
tag.setAlbum(mp3album_v2.encode('cp1251')) # ???
tag.update()
Run Code Online (Sandbox Code Playgroud)

返回以下内容:

>>> print mp3album_v2
???? ? ????? ??????

>>> print type(mp3album_v2)
<type 'unicode'>

>>> print repr(mp3album_v2)
u'\u0416\u0438\u0442\u044c \u0432 \u0442\u0432\u043e\u0435\u0439 \u0433\u043e\u043b\u043e\u0432\u0435'
Run Code Online (Sandbox Code Playgroud)

看起来像setAlbum期望utf-8字符串(?):

def setAlbum(self, a):
    self.setTextFrame(ALBUM_FID, self.strToUnicode(a));

def strToUnicode(self, s):
    t = type(s);
    if t != unicode and t == str:
        s = unicode(s, eyeD3.LOCAL_ENCODING);
    elif t != unicode and t != str:
        raise TagException("Wrong type passed to strToUnicode: …
Run Code Online (Sandbox Code Playgroud)

python unicode encoding utf-8 eyed3

1
推荐指数
1
解决办法
1403
查看次数

标签 统计

eyed3 ×4

python ×4

encoding ×1

id3 ×1

metadata ×1

mp3 ×1

unicode ×1

utf-8 ×1

windows ×1