我看到了这段perl代码,它创建了一个MP3对象并为其写了一些标签。我不会在perl中编写代码,但我认为它会创建一个带有标签的有效mp3文件。
$mp3 = MP3::Tag->new('1.mp3');
$mp3->title_set('Some_title');
$mp3->artist_set('Some_artist');
$mp3->update_tags();
$mp3->close();
我想在python中写一些类似的东西。 我到目前为止尝试过mutagen和eyeD3,但我只能覆盖现有mp3文件的标签,用这段代码,我找到了某个地方:
from mutagen.easyid3 import EasyID3
# works with valid mp3 files, which already have tags
def manipulate_id3_tags(path, title, artist, genre):
try:
meta = EasyID3(path) # HERE I GET ERROR
# i assume, if no meta tags where found, it will create some
# but it never hits the exception even it is ID3NoHeaderError
except ID3NoHeaderError:
meta = mutagen.File(path, easy=True) # this also can't be a proper function call
meta.add_tags()
meta['title'] = title
meta['artist'] = artist
meta['genre'] = genre
meta.save()
print(meta)
我不认为这些模块可以从头开始创建mp3文件。
我读了关于MP3的wikipedia article。我的想法是在python中创建一个.mp3文件并将标头写入其中。然后我用垃圾代码填补其余部分。
根据维基百科文章,这是我的示例标题: 11111111 11111011 11010110 00000100
byte_header = b"\xff\xfb\xd6\x04"
mp3 = open(path + "\\my_file.mp3", "wb")
mp3.write(byte_header)
mp3.write(b"\x01" * 800)
mp3.close
我在上面的注释行中收到错误 ' C:\用户\管理员\音乐\ my_file.mp3'不以ID3标签开头
即使错误处理有效,我也不认为这种方法可行。 任何人都可以帮助我。只想创建一个简单的mp3虚拟文件,我可以为其编写有效且可读的标签。