标签: id3

使用python部分下载提取MP3 URL的ID3标签

我需要提取远程mp3文件的ID3标签和元数据.

我写了几行可以得到本地文件的ID3标签:

from mutagen.mp3 import MP3
import urllib2

audio = MP3("Whistle.mp3")

songtitle = audio["TIT2"]
artist = audio["TPE1"]

print "Title: " + str(songtitle)
print "Artist: "+str(artist)
Run Code Online (Sandbox Code Playgroud)

我需要为mp3文件的url链接实现这一点.我试图使用urllib2部分下载文件.

import urllib2
from mutagen.mp3 import MP3

req = urllib2.Request('http://www.1songday.com/wp-content/uploads/2013/08/Lorde-Royals.mp3')
req.headers['Range'] = 'bytes=%s-%s' % (0, 100)
response = urllib2.urlopen(req)
headers = response.info()
print headers.type
print headers.maintype

data = response.read()
print len(data)
Run Code Online (Sandbox Code Playgroud)

如何在不完全下载文件的情况下提取MP3网址的ID3标签?

python metadata id3 mutagen

7
推荐指数
1
解决办法
1319
查看次数

针对视频文件编辑元数据

我正在尝试编写一个实用程序,用于在录制的视频中插入我自己的信息,但似乎没有一个库可以完成此操作。

在我最近的尝试中,我使用了 TagLib Sharp 库,但这似乎不适合音频文件:

private void ApplyTags(string p_sFilePath, Result p_Result)
{
    TagLib.File f = TagLib.File.Create(p_sFilePath);

    f.Tag.Title = p_Result.title;
    f.Tag.Year = Convert.ToUInt32(p_Result.year);

    f.Save();
}
Run Code Online (Sandbox Code Playgroud)

虽然填写视频文件的标题和年份确实有效,但 TagLib Sharp 似乎不支持“评级”、“贡献艺术家”、“导演”等项目。

所以我的问题是,是否有另一个库对视频文件提供更广泛的支持?如果没有,我该如何手动为 MP4 或 AVI 执行此操作?

c# metadata id3

7
推荐指数
1
解决办法
5684
查看次数

在C#中将CD翻录为mp3 - 第三方组件或api在那里?

我们正在开发一个项目,需要将音频曲目从CD转录到MP3(理想情况下还要从CDDB或类似设备中检索曲目信息).

更多背景信息:各种音乐标签向我们发送音乐CD,然后我们通过在线传送系统向人们发送.我们正在考虑尽可能自动化将这些CD转换为具有完整音轨信息的MP3的过程.我们希望制作一个简单的桌面应用程序,允许编辑人员设置有关我们收到的新音乐的信息.为了简化流程,我们希望包括翻录音频和检索曲目信息.

c# mp3 id3 ripping

6
推荐指数
1
解决办法
5408
查看次数

在 Ruby/Rails 中读取远程 MP3 文件的 ID3 标签?

使用 Ruby,如何在不将整个文件下载到磁盘的情况下解析远程 mp3 文件的 ID3 标签?

这个问题已在JavaSilverlight 中提出,但在 Ruby 中没有。

编辑:查看 Java 答案,似乎可以(HTTP 支持)只下载文件的尾端,也就是标签所在的位置。这可以在 Ruby 中完成吗?

ruby mp3 id3

6
推荐指数
1
解决办法
2074
查看次数

ID3v2.3标签中的文本编码

感谢这个网站和其他一些网站,我创建了一些简单的代码来从MP3文件中读取ID3v2.3标签.这样做是一次很棒的学习经历,因为我之前不知道十六进制/字节/二进制等.

我可以成功读取数据,但遇到了一个我认为与使用的编码有关的问题.我已经意识到Text框架在'text'开头有一个字节描述了所使用的编码,并且可能在接下来的2个字节中有更多的信息.​​.....

示例:来自帧TIT2的数据以实际文本之前的字节$ 03(十六进制)开始.使用Encoding.ASCII.GetString,此文本正确显示,尽管在开头有一个额外的字符

在另一个MP3中,来自TIT2的数据启动$ 01,然后是$ FF $ FE,我相信这与Unicode有关吗?虽然文本本身被分解,每个文本字符之间有$ 00,这会阻止数据显示在windows窗体中(一旦遇到00,文本就会停止,所以我得到了第一个字符,那就是它).我已经尝试过使用Encoding.UNICODE.GetString,但这似乎只是回归乱码.

将这些数据打印到控制台似乎有效,每个字符之间有空格,因此数据的读取工作正常.

我一直在阅读ID3v2.3的官方文档,但我想我只是不太了解文本编码部分.

任何回复或链接到可能有帮助的文章将非常感谢!

关心罗斯

unicode encoding hex ascii id3

6
推荐指数
2
解决办法
7800
查看次数

Python MP3 ID3标签编辑器

为我朋友的MP3播放器重新组织一个大型MP3库,我需要将Title ID3标签命名为与文件名相同,并且通过Windows Properties执行此操作需要永远,所以我想知道是否有人知道如何制作一个Python脚本,快速连续地对目录中的所有MP3执行此操作.或者至少是指向可在Windows上安装的库的链接.

python id3

6
推荐指数
1
解决办法
1万
查看次数

用Javascript部分下载文件

我们实际上正在使用javascript处理远程音乐库管理器,我想知道是否有一种方法可以使用js下载最后128字节的MP3文件以获取其ID3标签.谢谢.

javascript html5 id3 web-applications

6
推荐指数
1
解决办法
2069
查看次数

使用id3taggenerator和mediafilesegmenter将定时元数据插入HLS(HTTP Live Stream)

我尝试将定时元数据插入到.mov或.mp4视频文件中.我在这里读过它:

基本上,我的问题是,无论我尝试什么,我得到生成的.m3u8和一堆.ts文件按预期没有任何错误,但我觉得没有插入元数据.

让我详细解释一下我的所作所为.

首先,我生成一些id3标签如下:

id3taggenerator -o tag1.id3 -t "Test"
Run Code Online (Sandbox Code Playgroud)

然后我写了一个名为'macrofile.txt'的宏文本文件,其中包含:

5 id3 tag1.id3
Run Code Online (Sandbox Code Playgroud)

我确保文件以换行符结尾,并且每个字段由单个空格而不是制表符分隔.

然后我使用mediafilesegmenter创建带有.ts文件的m3u8,其命令也包括macrofile,如下所示:

mediafilesegmenter -index-file test.m3u8 -M macrofile.txt -no-floating-point-duration -iframe-index-file none test.mp4
Run Code Online (Sandbox Code Playgroud)

这将成功生成m3u8文件+一堆.ts文件(每10秒视频一个ts)

我上传了那些在我的网络服务器上,(显然我添加了正确的MIME类型等),从我的iOS应用程序中,我打开了流:

NSURL* url = [NSURL URLWithString:@"http://url.com/test.m3u8"];
player = [[MPMoviePlayerController alloc] initWithContentURL:url];
Run Code Online (Sandbox Code Playgroud)

我还要确保添加MPMoviePlayerTimedMetadataUpdatedNotification通知,如下所示:

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
           selector:@selector(metadataUpdate:)
               name:MPMoviePlayerTimedMetadataUpdatedNotification
             object:nil];
Run Code Online (Sandbox Code Playgroud)

现在的问题是,永远不会触发MPMoviePlayerTimedMetadataUpdatedNotification.

如果我尝试使用Apple测试流(https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8),每5秒钟包含一次定时元数据 - >它完美地工作

所以这就是为什么我假设我生成的.ts文件不包含任何元数据或至少我在某处做错了但我检查了所有可能的东西,现在我没有想法.

希望有人可以帮助我.

谢谢!

metadata id3 objective-c http-live-streaming ios

6
推荐指数
1
解决办法
4745
查看次数

如何在Elixir中读写id3v1和id3v2标签

我想使用Elixir扫描音乐文件和读/写元数据(整个项目是关于学习Elixir - 所以请不要告诉我使用Python!).据我了解,我有两个选择:调用系统实用程序或(因为我知道的Erlang或Elixir中没有库)编写Elixir库.对于m4a文件,我对MP4Box进行系统调用,并将xml文件写入磁盘.然后我读入文件,解析它,并将数据加载到数据库中.

def parse(file_name) do
  System.cmd("MP4Box", ["-diso",file_name])
  Ainur.XmlParser.parse(xml_file_name(file_name))
  |> get_tags
end
Run Code Online (Sandbox Code Playgroud)

非常慢,特别是对于数千个文件.我希望它在每次启动时运行以检查更改/新文件.

现在我正在尝试对带有id3标签的mp3做同样的事情.我在Ubuntu上尝试了libid3-tools,它只找到了id3v1标签.eyeD3只找到了id3v2标签.我的mp3都有,所以我需要确保有相同的(我想我可以删除id3v1标签,但我一直认为遗留设备需要id3v1标签).

音乐元数据是否有任何Erlang或Elixir库?如果没有,系统调用ubuntu实用程序是我的最佳选择(任何建议)?

或者我是否需要编写库以获得合理的性能?如果是这样,是否有一个功能语言的现有库我可以尝试移植?

或者是否可以直接从Elixir调用另一种语言编写的库(没有系统调用)?

erlang mp4 id3 elixir

6
推荐指数
1
解决办法
576
查看次数

在 Powershell 中访问音乐文件元数据

因此,在从一台 PC/硬盘复制到另一台 PC/硬盘驱动器之间的这些年里,我的音乐收藏有点混乱,所以我想以编程方式浏览每一个并更新下面屏幕截图中的文件元数据(从右键单击> 文件属性):

在此处输入图片说明

有些文件是 MP3,所以我知道 ID3 可以在那里使用(我曾尝试使用 Get-Content 查看 ID3 标签所在的最后 128 个字节,但只有一小部分显示为可读文本,假设这是因为它是一个二进制文件,需要以某种特定方式解码/解析)。大约相同数量的 WMA(相当旧的编解码器版本,可能是 7 或 8 个),有些是未压缩的 WAV。

所以我可能需要两件事:

a) 一种访问和更新 MP3 类型文件的 ID3 信息的方法 b) 一种访问 WMA 和 WAV 的文件属性(在 Windows 级别)的方法;如果这种方法也适用于 MP3,那就太棒了

有人有任何想法吗?我知道这在 C# 中是可能的,但现在我有点想不通,因为更习惯于编写脚本。如果它需要在适当的编译程序中完成,那就这样吧,但希望有一种方法可以在 shell 中完成。

c# audio powershell id3 file-properties

6
推荐指数
1
解决办法
4380
查看次数