有人从远程广播流中读取SHOUTcast/Icecast元数据是否成功?
有several libraries可以从本地MP3文件中读取元数据,但似乎没有一个设计用于广播流(它实际上是远程服务器上永无休止的MP3文件)。
其他建议建议从mp3流的开头下载有限数量的位,但这通常会导致一堆十六进制输出,而没有什么类似于文本元数据。
有人知道更成功的解决方案吗?谢谢。
最佳答案
#!/usr/bin/env python
import urllib2
stream_url = 'http://pub1.di.fm/di_classictrance'
request = urllib2.Request(stream_url)
try:
request.add_header('Icy-MetaData', 1)
response = urllib2.urlopen(request)
icy_metaint_header = response.headers.get('icy-metaint')
if icy_metaint_header is not None:
metaint = int(icy_metaint_header)
read_buffer = metaint+255
content = response.read(read_buffer)
title = content[metaint:].split("'")[1]
print title
except:
print 'Error'
有关更多详细信息,请检查this link