在Python中更改音频/视频文件的元数据

9

好的,在这里我搜索了一下,但没有找到任何指向一个确定答案的东西。

我正在尝试在Windows中更改音频/视频文件的艺术家、文件名、评级、流派等,这些在“详细信息”视图文件夹时显示出来。

目前,我有一个要编辑的文件列表,并且我正在遍历它们,但正如我所说,我不知道如何为列表中的每个文件进行更改。

def Files(The_FileList):
'''Changes each files metadata'''
for each_file in The_FileList:
    
    #clueless here.
    
return The_FileList

需要能够处理.avi/.mkv常见电影文件,因为我经常进行编码工作。
我只是想要一个简单的选择。
谢谢。
2个回答

8
在许多情况下(包括本例),元数据是特定于文件类型的。(某些文件系统提供自己的元数据,如NTFS及其后续版本,但这个特定的元数据来自文件本身,而不是文件系统)。
要修改相关文件中的元数据,您可能可以使用Mutagen库(假设这些是mp3/aac/flac/vorbis等格式——可能还有其他音频格式具有不同的元数据格式)。

http://pypi.python.org/pypi/hachoir-metadata/1.2.1 声称可以处理 AVI 和 MKV,虽然我自己从未使用过。您还可以查看 Kaa 项目(http://doc.freevo.org/2.0/Kaa)。 - Nick Bastin
1
你之前用过这些吗?我曾经尝试安装Hachoir,但遇到了一些问题,而且我找不到相关文档,也不知道如何导入文件。然后我转向Kaa(其中大多数模块只完成了70%),但仍然无法找到如何导入它。此外,它还在抱怨已经安装了kaa.base,但我明明已经安装了它... 有什么想法吗? - code_by_night
据我所知,hachoir主要支持从各种文件格式中读取数据。看起来现在有一个二进制文件编辑器,但还没有发布版本。我不确定正在进行的版本是否支持编辑。我似乎找不到任何支持编辑mkv元数据的Python接口。 - James Snyder
文档指出:“无论音频格式如何,都可以编辑ID3和APEv2标签。” Mutagen支持aac标记吗?请参考~http://code.google.com/p/mutagen/。 - bootload

6
Mutagen已实现。
我留下一个例子,可以更改目录中所有文件的3个属性:
import mutagen
from mutagen.mp4 import MP4
from os import scandir

ruta = './'
l_archivos = sorted([archivo.name for archivo in scandir(ruta) if archivo.is_file()])

mutagen.File(l_archivos[1])      # U: See the tags of the data

def edit_Media_Data():

    for f in range(len(l_archivos[:-1])):                 # A: A range of all the fields exept the script
        file = MP4(l_archivos[f])                         # A: Capture the file to edit
        file['©nam'] = l_archivos[f].replace('.mp4','')   # U: Take the file name and makeit the tittle
        file['©ART'] = 'Hector_Costa_Guzman'              # U: Edit the Autor
        file['©alb'] = 'Curso_Django'                     # U: Edit the Album
        file.pprint()
        file.save()  

可以编辑促销链接和评分吗? - JavaPilgrim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接