将mp3标签的值复制到一批MP3文件的另一个标签

时间:2011-08-28 08:38:25

标签: tags mp3 swap id3 id3-tag

我有一个很大的MP3目录,不知何故文件的album标签(或album names)的值(对于所有这些标签,数百个)实际上是artist标签的值(或artist names),反之亦然。

现在我必须相互复制值,以便为目录中的每个文件交换它们。或者也许我可以交换标签名称。我只希望artist标记显示艺术家姓名和album标签以显示专辑名称。

如何进行批量编辑?

3 个答案:

答案 0 :(得分:1)

不幸的是 mp3 的标签相当棘手,但是下面的python脚本(需要库 mutagen )为ogg和flac做了工作,至少解决了我自己的问题。

#! /usr/bin/env python
# Copyright (c) 2011 kaleissin
# MIT License, see http://www.opensource.org/licenses/mit-license.php

import mutagen
import os
import os.path

if len(sys.argv[1:]) < 1:
    print "Usage: %s <file> [file..]" % os.path.basename(__file__)

for filename in sys.argv[1:]:
    audio = mutagen.File(filename)
    audio['artist'], audio['title'] = audio['title'], audio['artist']
    audio.save()

答案 1 :(得分:0)

ID3 Mass Tagger https://github.com/squell/id3)应该有所帮助。适用于Windows和Linux。

在所有mp3文件中交换艺术家和专辑字段。

id3 -a %l -l %a "*.mp3"

Sets keys:
-a sets the artist key
-l sets the album key

Substitutes of current key values:
%t title
%a artist
%l album title
%n track number
%y year
%g genre
%c comment field
%f file name (without path)
%p path to filename

首先使用样品。

答案 2 :(得分:0)

从python-mutagen库中检出 mid3cp tool,该库正是您要查找的内容。

在Ubuntu下,默认情况下未安装该文件,但只要将this文件的内容放入/usr/bin中并使其可执行即可。