在Python 2.7中获取在线MP3文件的标题和艺术家信息
我正在用Python 2.7写一个脚本,目的是获取链接的MP3文件的标题、艺术家和长度(长度不是特别重要)。我不太确定该怎么做,试过用urllib和mutagen几种方法,但都没有成功。有一种方法曾经有效,但不知道为什么现在不行了。urllib开始提示说有太多值无法解包,我也不明白为什么。以下是之前能用的代码:
from urllib import urlopen
from mutagen.mp3 import MP3
def getInfo(url):
filename, headers = urlopen(url)
audio = MP3(filename)
这段代码之前运行得很好,我也不知道发生了什么变化,但自从那以后我没有找到其他有效的方法。可能我这里说得不够清楚,如果你需要更多信息,请告诉我。谢谢!
2 个回答
1
我觉得,你应该先把mp3文件下载到一个临时文件夹里。然后,你就可以读取它的一些信息了。比如,
from urllib2 import Request, urlopen
from mutagen.mp3 import MP3
def getInfo(url):
start_byte = 0
end_byte = 5000
url = Request(url)
url.add_header('Range', 'bytes=' + str(start_byte) + '-' + str(end_byte))
filename = urlopen(url)
output = open("test_file.mp3",'wb')
output.write(filename.read())
output.close()
audio = MP3("test_file.mp3")
print audio.info.pprint()
不过,这并不是一个真正的解决办法。因为我对mp3文件的结构一无所知,不知道哪些字节是id3头部。这只是一个实现的例子。