Python 3 - 从音频流中读取ID3标签

时间:2016-01-29 19:33:31

标签: python-3.x libraries audio-streaming id3

我可以在Python中读取ID3标签吗?我在文档中发现了很多库,但没有任何人支持从实时音频流中读取ID3标签。真的不退出库吗?或者我发现错了?如果可以,请帮助我。谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

您可能想在python上尝试streamscrobbler,以便从流式MP3 /广播电台读取元数据。

streamscrobbler依赖于以下模块。

httplib2 as http
httplib
re
urlparse
pprint
urllib2

可以安装为 pip install <module-name>

一旦安装它们,它非常直接获得元数据[SHOUTcast / Icecast]信息。它提供的信息如下:

的Content-Type
比特率
说明
歌曲名称
URL
服务器

示例代码

from streamscrobbler import streamscrobbler
streamscrobbler = streamscrobbler()

##streamurl can be a url directly of the stream or of a file.
streamurl = "http://pub1.di.fm/di_classictrance"

#All information available via streamscrobbler module
allData = streamscrobbler.getAllData(streamurl)
print ("allData =",allData)

输出

   Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
parse headers: 
{   'cache-control': 'no-cache',
    'content-type': 'audio/mpeg',
    'expires': 'Mon, 26 Jul 1997 05:00:00 GMT',
    'ice-audio-info': 'bitrate=48000',
    'icy-br': '48000',
    'icy-description': 'DI.FM',
    'icy-genre': 'DI',
    'icy-metaint': '16000',
    'icy-name': 'Important Message',
    'icy-pub': '0',
    'icy-url': 'http://message-stream.audioaddict.com/3rdparty_di_english',
    'pragma': 'no-cache',
    'server': 'Icecast 2.3.3-kh7'}
icy metaint: 16000
('allData =', {'status': 1, 'metadata': {'contenttype': 'audio/mpeg', 'bitrate': '48000', 'song': 'An important message from www.di.fm'}})
>>>