如何使用Mutagen为MP4文件添加音轨号元数据?

3

其他标签似乎都能正常使用,例如标题、封面艺术、艺术家,但每次在轨道编号标签[trkn]上遇到错误。

import mutagen
from mutagen import MP4, MP4Cover

filePath = 'LoadFiles/UserUpload/test.mp4'
mp4_meta = MP4(filePath)

print("Enter the following")
title = input("Title: ")
mp4_meta['\xa9nam'] = title #works

trackno = input("Track No.: ")
mp4_meta['trkn'] = trackno #nope

mp4_meta.save()


在变异体文档中,它指出:

Tuples of ints (multiple values per key are supported):

‘trkn’ – track number, total tracks

这个问题应该怎么解决?

哪里出错了? - lys
数值错误:无法解包足够的值(期望2个,实际只有1个) - yst0
你没有展示通过input传递给trackno的输入,但它告诉你它需要一个由两个整数组成的元组,而你只提供了一个。 - lys
2个回答

3
你需要为这个字段提供一个元组,包括总的曲目数量。
请尝试以下操作:
trackno = input("Track No: ")
totaltracks = input("Total No of Tracks: ")
mp4_meta['trkn'] = [(trackno, totaltracks)]

1
如@user19702899在他们的回答中提到的,您必须将元组包装在列表中,以避免ValueError。这在文档中没有明确定义。我认为这应该是被接受的答案,但是@lys,我建议您编辑它以匹配其他用户对最后一行的更改:mp4_meta['trkn'] = [(trackno, totaltracks)]。谢谢! - Robert Silver

1

你需要提供一个元组的可迭代对象。 除了最后一行(在该行中将包含2个整数的单个元组的列表设置为trkn值)以外,与lys的答案相同:

trackno = input("Track No: ")
totaltracks = input("Total No of Tracks: ")
mp4_meta['trkn'] = [(trackno, totaltracks)]

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