2016-01-14 24 views
0

我想使用 http://snipplr.com/view/4025/mp3-checksum-in-id3-tag/中的脚本来为我的MP3 集合配备md5校验和。该脚本可以添加一个自定义ID3标签, 保存音频数据的校验和,并且它还具有删除该校验和的选项 。不幸的是,添加和删除校验和不会通过往返测试,原因有几个。我想改变这一点。其中一个 的原因是脚本运行时创建了“标记时间”字段 但删除校验和后未删除该字段,更新时间为 。 IIUC --no-tagging-time-frame选项将防止命令行上的eyed3工具,但我找不到一个python等效。我怎样才能防止标记时间被改变或在python中设置?如何防止在标记来自python的mp3文件时设置“标记时间”(eyeD3)


更多的细节:

我加入和随后除去原始 文件的副本的校验和比较这两个文件。这是二进制数据的 最好情况下的差异:

原文:

0003 3060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 
0003 3070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 
0003 3080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 
0003 3090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 
0003 30A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 
0003 30B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 

复制与校验:

0003 3060: 00 00 00 00 00 00 54 58 58 58 00 00 00 21 00 00 ......TX XX...!.. 
0003 3070: 00 54 61 67 67 69 6E 67 20 74 69 6D 65 00 32 30 .Tagging time.20 
0003 3080: 31 36 2D 30 31 2D 31 32 54 32 32 3A 33 31 3A 30 16-01-12 T22:31:0 
0003 3090: 38 55 46 49 44 00 00 00 24 00 00 6D 64 35 00 64 8UFID... $..md5.d 
0003 30A0: 34 35 64 30 62 32 34 36 38 62 31 64 38 31 31 35 45d0b246 8b1d8115 
0003 30B0: 31 39 30 32 30 62 37 62 30 30 33 35 37 33 34 00 19020b7b 0035734. 

复制与校验和删除:

0003 3060: 00 00 00 00 00 00 54 58 58 58 00 00 00 21 00 00 ......TX XX...!.. 
0003 3070: 00 54 61 67 67 69 6E 67 20 74 69 6D 65 00 32 30 .Tagging time.20 
0003 3080: 31 36 2D 30 31 2D 31 34 54 30 38 3A 33 34 3A 35 16-01-14 T08:34:5 
0003 3090: 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9....... ........ 
0003 30A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 
0003 30B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ 

在其他文件介绍更多更改,我会回到 第一个问题解决时出现问题。

+0

我想添加的内容仅作为注释:我试图首先将问题发布到项目的邮件列表(https://groups.google.com/forum/?fromgroups#!forum/eyed3-users)。我甚至通过电子邮件订阅了该列表(我没有谷歌账户)哪些工作,但我的帖子仍然被拒绝。 – Chris

+0

你使用的是什么版本的eyeD3? – strubbly

+0

版本0.6.18。 – Chris

回答

0

我认为最好的解决方案是转向更新的0.7系列(甚至使用其他库 - 我喜欢诱变剂)。 0.6.18版本很旧。但是做这些会破坏你的脚本 - API已经改变了。

如果你只想做最少的改变现有的脚本,我建议你只是在每个脚本中调用tag.update之前添加

tag.do_tdtg = False 

。我认为这将关闭时间更新行为。

相关问题