0

我正在用 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)

效果很好,我不确定发生了什么变化,但从那以后我没有发现其他任何有效的方法。我可能比我在这里意识到的更模糊,所以如果您需要更多信息,请告诉我。谢谢!

4

2 回答 2

1

我认为,您应该将 mp3 下载到临时文件夹。之后,您 xan 阅读了它的信息。例如,

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 标头。这是如何实现它的示例。

于 2014-09-09T05:53:05.400 回答
1

如果您使用的是 Python 3,则需要使用mutagenx而不是 mutagen。看这里

import mutagenx
import mutagenx.id3
audio = mutagenx.id3.ID3(filename, translate=False)
print(audio["title"], audio["artist"], audio["length"])
于 2014-09-09T06:06:36.647 回答