【问题标题】:PowerShell: Read id3v2 from MP3, specifically ISRCPowerShell:从 MP3 中读取 id3v2,特别是 ISRC
【发布时间】:2022-08-11 04:11:00
【问题描述】:

我的最终目标是获取我的音乐库中所有 MP3 文件的路径和 ISRC 的哈希表,以用于组织我的库。现在,我无法从文件中获取 ISRC 信息。我已经使用其他软件检查过它是否存在,但我特别需要使用 powershell 来阅读它。

我尝试过使用一些 Get-FileMetaData 函数,但我认为我在尝试时找错了地方。

我没有以“正确”的方式阅读它,而是尝试使用 Get-Content 将文件作为纯文本读取并操作字符串以隔离 ISRC,我可以在记事本中查看文件时找到它。我遇到的困难是管理文本的编码方式(如果这是正确的词)。在记事本中查看时,字符之间有空格字符,这些字符不会显示在 PowerShell 中,但似乎仍计入字符串长度。

我会尝试提供一些代码,但我所拥有的只是死胡同,我认为问题在于我对我正在使用的东西的理解。如果我跳过了任何重要信息,请告诉我。在字符串操作涉及 unicode 的模糊预感上用 unicode 标记。

那么,如何使用 powershell 正确读取 id3v2 标签(正确的意思是没有粗体字符串操作),或者如何使用 powershell 解释原始文件内容,即处理特殊字符和空格。

非常感谢。

原始内容示例:(感兴趣的部分是 \'TSRC\' 之后的文本)

ID3 >1 TCON ) ÿþS s i n g e r & Songwriter TRACK 1 TPOS 1 TIT2 ÿþv a l e n t i n e TPE1
ÿþD a f n a TXXX ÿþA R T I S T S ÿþD a f n a TALB ÿþv a l e n t i n e TPE2
µ d a f n a tlen 151000tpub#m a r g a r g a l i t r i t r e c o r d s tsrc

    标签: powershell unicode mp3 id3v2


    【解决方案1】:

    也许这 Access Music File Metadata in Powershell 答案 - 使用taglib.dll 也可以帮助您。

    【讨论】:

      【解决方案2】:

      Get-Content 有一个用于-encoding 的参数。

      如果您可以计算出这些文件的编码,只需将其放入该参数中即可。

      检查您的 powershell 版本也是值得的。我相信这种行为在 5 到 6 之间发生了变化。

      【讨论】:

      • MP3 文件最常见的编码是 UTF-8、UTF-16 和 ISO-8859-1。 “ISRC”框架应包含 12 个字符的国际标准记录代码 (ISRC)。
      • 嗨,感谢您的建议,我从未听说过 -Encoding 参数。现在摆弄它,我认为 powershell 提供的任何选项都不能很好地理解内容。关于@PeterCo 评论,在这三个选项中,Get-Content 仅提供 UTF-8。
      • 为什么这看起来像 UTF-32?它显然是 UTF-16BE(一个 ASCII 字符,一个 NULL)。
      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多