SQL Server - 处理 Mp3 链接 C#

本文关键字:链接 Mp3 处理 Server SQL | 更新日期: 2023-09-27 17:57:02

我非常感谢 sql 表中的 100,000 个 mp3 链接。我需要从每首歌曲链接中获取专辑/艺术家信息。有什么办法,我可以在不下载歌曲的情况下获得它。我问的是,如果我下载每首歌,它会占用我的硬盘上的巨大空间,这是我不想要的。此外,下载所有歌曲需要花费大量时间。

我可以使用

WebClient Client = new WebClient ();
Client.DownloadFile("http://myserver.com/indie/band1.mp3", "band1.mp3");

TagLib 

以获取歌曲信息。

我有什么最佳选择?

问候

Paraminder

SQL Server - 处理 Mp3 链接 C#

下载文件 ->

提取信息 ->删除文件。 ===>这样就可以解决空间问题。

无论如何,无需读取其标题即可提取文件的信息(除了扩展名和名称)。

Taglib 将帮助您获取歌曲标签中实际包含的所有信息。但为此,您确实必须获得歌曲本身。此外,有些甚至可能根本没有适当的标签。

因此,您应该尝试仅从网络上的歌曲数据库之一中获取元数据,例如 freeDB, MusizicBraint, GD3, All Media Guid or Discogs .有些是免费的,有些可能会收取使用它们的钱,有些可能会限制对合理数量的请求的访问。

要考虑的另一件事是是否所有标题都具有可预测的格式。我的收藏中大多数文件名都以这种方式编码:"艺术家 - 曲目 - 标题"。对于混音,它是"曲目 - 艺术家 - 标题"。您将从哪里下载它们?也许合法的来源也有一个 API 可以在下载之前播放歌曲数据..?

您可以使用 for 循环函数来执行此操作。因此,首先阅读每个下载链接的sql表,然后将其添加到应用程序的列表视图中。

然后使用 for 循环,您可以逐个读取链接并下载文件,获取信息并将其另存为任何文件夹中的文件。完成后,删除音乐文件,它将继续循环。

无需下载文件,您可以使用 SQLCLR 完成所有操作。只需创建一个程序集即可从 BLOB 读取标记,并将其作为函数添加到数据库中。

此外,我建议您将提取的标签保存在数据库的 XML 类型列中,以便您轻松查询它。