在Python 2.7中获取在线MP3文件的标题和艺术家

时间:2014-09-09 05:41:12

标签: python mp3 urllib id3 mutagen

我正在用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 个答案:

答案 0 :(得分:1)

我认为,你应该将mp3下载到ismporary文件夹。之后,你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标头。这是如何实现它的一个例子。

答案 1 :(得分:1)

如果您使用的是Python 3,则需要使用mutagenx而不是mutagen。见here

import mutagenx
import mutagenx.id3
audio = mutagenx.id3.ID3(filename, translate=False)
print(audio["title"], audio["artist"], audio["length"])