Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python的eyed3包未正确设置ID3元数据_Python_Mp3_Id3_Eyed3 - Fatal编程技术网

Python的eyed3包未正确设置ID3元数据

Python的eyed3包未正确设置ID3元数据,python,mp3,id3,eyed3,Python,Mp3,Id3,Eyed3,为此,我使用的是Python 2.7.13、Windows 10和eyed3包,如文档所示 目标:我正在尝试创建一个脚本,可以为缺少信息的MP3文件输入任何所需的ID3元数据 问题:脚本似乎正确更新了元数据,但无法将信息添加到MP3属性的“详细信息”屏幕()。但是,如果我在运行脚本之前首先在这些字段中手动输入数据,它会正确地添加元数据并在详细信息屏幕上显示它!我注意到的另一件事是,我只需要在脚本的至少一个字段中输入数据,就可以正确填充所有字段。这样做似乎可以初始化并允许以某种方式访问字段 eye

为此,我使用的是Python 2.7.13、Windows 10和eyed3包,如文档所示

目标:我正在尝试创建一个脚本,可以为缺少信息的MP3文件输入任何所需的ID3元数据

问题:脚本似乎正确更新了元数据,但无法将信息添加到MP3属性的“详细信息”屏幕()。但是,如果我在运行脚本之前首先在这些字段中手动输入数据,它会正确地添加元数据并在详细信息屏幕上显示它!我注意到的另一件事是,我只需要在脚本的至少一个字段中输入数据,就可以正确填充所有字段。这样做似乎可以初始化并允许以某种方式访问字段

eyed3文档列出了我在这里的代码中或多或少遵循的示例代码:

import eyed3
import eyed3.mp3

path = [path to some MP3 file]

if eyed3.mp3.isMp3File(path):
     audiofile = eyed3.load(path)   # load file from file path
     audiofile.tag.artist = u"Artist"    # u needed to denote unicode
     audiofile.tag.album_artist = u"Album Artist"
     audiofile.tag.album = u"Album"
     audiofile.tag.save()    # save altered tags
问题:

  • ID3元数据和MP3属性的详细信息屏幕上显示的实际字段之间是否存在某种隐藏的分离,我不知道
  • 我看到了一个eyed3问题,当文件没有ID3标记时,使用initTag()解决了这个问题。虽然我没有犯同样的错误,但我的问题是否与此相关
  • 我会错过一份进口声明吗
  • 我是否应该尝试使用不同的Python模块来处理ID3元数据
  • 我已经尝试了各种测试,但没有得出任何可能指向解决方案的不同结果


    提前感谢所有碰巧花时间阅读本文的人!非常感谢您的帮助:)

    我也遇到了同样的问题,最后在这个线程上找到了解决方案:

    要点:默认情况下,
    eyed3.load(pathtofile)
    加载ID3\u V2\u 4标记,浏览器和Windows Media Player使用1.x标记

    解决方案: 将save语句替换为以下语句:

       audiofile.tag.save(version=(1,None,None))
       audiofile.tag.save()
    
    第一条语句将确保更新explorer和WMP使用的标记。第二个将确保使用v2.4标记的应用程序也得到更新(示例VLC)。希望这有帮助

    编辑:将来如果您计划添加相册艺术,那么您还应该添加以下内容:

        audiofile.tag.save(version=(2,3,0))
    

    不太清楚为什么,但更新v2.3标签似乎可以完成第一次专辑艺术更改的工作。

    谢谢!这就解决了问题。我最终只使用了version=(2,3,0),因为它似乎还涵盖了其他方面,比如专辑艺术家。