【发布时间】:2015-01-09 10:38:45
【问题描述】:
我需要提取远程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)
我需要为 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)
如何在不完全下载文件的情况下提取 MP3 url 的 ID3 标签?
【问题讨论】:
-
您已经获取了 MP3 文件的前 100 个字节。你被困在哪里了?
-
啊,看起来 id3 标签位于文件的最后 128 个字节中。因此,除非您知道文件的大小,否则您将无法制作 Range 标头来获取它们。也许一个 HEAD 请求可以先获取文件的长度...
标签: python metadata id3 mutagen