如何*完全*擦除MP3的元数据?


22

我正在使用“甜菜根”来组织我的mp3。我从亚马逊购买的一张专辑的mp3,实际上确实是合辑,被错误地标记为不是合辑。根据专辑是否为合辑,我对文件的组织方式有所不同。无论我试图对这些mp3做什么,我对ID3标签应用的更改都不会保留。

例如:

mp3info -d ../amazon_album/*  # This WIPES the tags
mp3info ../amazon_album/01-01 - Track 1.mp3 
../amazon_album/01-01 - Track 1.mp3 does not have an ID3 1.x tag.

但是,当我在任何媒体播放器中打开文件时,所有信息仍然存在!

所以我尝试了:

mp3info -a "LOL" ../amazon_album/*
mp3info  ../amazon_album/01-01 - Track 1.mp3
File: ../amazon_album/01-01 - Track 1.mp3
Title:                                  Track: 
Artist:  LOL
Album:                                  Year:  
Comment:                                Genre:  [255]

但是,在任何媒体播放器中,它仍然保留所有原始信息。因此,我无法将专辑更改为“ Compilation”,这意味着我无法按照自己的方式在Beets中组织专辑。

我已经确认这不是文件权限问题。难道我做错了什么?在Linux中还有另一种方法可以做到这一点吗?还是有办法“诱骗”甜菜将其视为编译内容(以便它使用我的编译路径)?

Answers:


9

mp3info仅编辑ID3v1标签,您需要使用支持ID3v2 的程序,例如eyeD3id3v2

使用MusicBrainz Picard标记MP3文件(使用下面的诱变剂库)更为舒适。

由于mp3info仅支持ID3v1,因此它无法删除/擦除嵌入在MP3流中的ID3v2信息。


甜菜和Picard都使用mutagen库来标记MusicBrainz.org网站上的文件和数据,因此从甜菜更改为Picard并没有多大帮助。当然,有关ID3v1的部分是正确的。
维兰德

选择选项->选项,然后选择Picard中的标签,您可以选择写入ID3v1标签(不确定默认情况下是否打开)。那肯定会摆脱旧的ID3v1信息。
塞尔达传说

甜菜中有一个标志,可让您禁用导入的自动标记。在我描述的同一问题的另一种情况下,我可以通过更改ID3v1标签来解决该问题,然后通过禁用MusicBrainz的自动标签重新导入它。这样可以保留我的更改,并允许我根据需要导入相册。我猜这种情况与这种情况之间的区别是ID3v2(直到这篇文章我才知道)。现在要尝试使用诸如eyeD3和id3v2之类的东西来摆脱这张Amazon相册中的标签。
CptSupermrkt

11

要从mp3文件中剥离id3标签,可以使用该工具id3convert。它具有一个称为“ strip” -s或的开关--strip

-s --strip剥离标签而不是渲染(默认值= off)

注意:同时包含id3v1和id3v2标签

之前

$ id3info a.mp3 

*** Tag information for a.mp3
=== TIT2 (Title/songname/content description): Feist - I Feel It All
=== COMM (Comments): (ID3v1 Comment)[XXX]: Music video by Feist performin
*** mp3 info
MPEG2/layer III
Bitrate: 8KBps
Frequency: 22KHz

跳闸

$ id3convert -s a.mp3 
Converting a.mp3: attempting v1 and v2, stripped v1

$ id3info a.mp3 

*** Tag information for a.mp3
*** mp3 info
MPEG2/layer III
Bitrate: 8KBps
Frequency: 22KHz

参考文献


9

另一个具有Ubuntu存储库中现有优点的工具是eyeD3。这是命令:

eyeD3 --remove-all music.mp3


0

塞尔达的答案为我的问题提供了正确的答案。原来我实际上是在问一个错误的问题,所以我想为将来偶然发现此问题的Google员工添加这个答案。

即使我将标签(ID3v1和ID3v2)都清除干净,然后手动将其全部重新输入,甜菜也不会将其作为编译导入。

确定之后,我清除了甜菜的源代码并发现了我的问题---看来,如果一个名字以歌手的身份弹出X次,它就必须自己声明它不是一个汇编。至少,这就是我从以下代码片段中收集的内容importer.py

if task.choice_flag == action.ASIS:
    # Taking metadata "as-is". Guess whether this album is VA.
    plur_artist, freq = util.plurality([i.artist for i in task.items])
    if freq == len(task.items) or (freq > 1 and
            float(freq) / len(task.items) >= SINGLE_ARTIST_THRESH):
        # Single-artist album.
        changes['albumartist'] = plur_artist
        changes['comp'] = False
    else:
        # VA.
        changes['albumartist'] = VARIOUS_ARTISTS
        changes['comp'] = True

我没有足够的代码来查找更多细节,因为一旦阅读了该部分,我便尝试删除了主要艺术家的名字,瞧!甜菜将其作为汇编导入。

不过,这对我来说不是一个很好的解决方案,因为即使碟片上甚至还有其他艺术家,我个人也认为专辑是合辑(而且不是“特色”)。我所能做的就是消除流行歌手的姓名,将其导入,然后手动修改这些文件的歌手以恢复正确的歌手。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.