如何制作一个在播放网络广播时显示元数据的程序

how to make a program that shows metadata while it's playing internet radio

我想制作一个命令行工具,在播放音频流(如网络广播)时显示音乐标题和音乐家姓名等元数据。

说到编程,我对音频流几乎一无所知,d-busRubyc/c++ 是我目前唯一会使用的语言。如果我可以使用 shell scriptruby 编程,对我来说会更方便。

现在我正在尝试使用 VLC 作为第一个挑战。

起初我尝试了VLC command line tool(cvlc),但它似乎没有提供我想做的任何选项。 然后我根据wikipedia知道有一些VLC APIs。但我对下一步该做什么感到困惑。 我应该使用哪个 API?或者有什么建议可以开始这个挑战吗?

我不坚持使用 VLC。我每天都用它来听互联网 radio.That 这是我选择它的原因,没有其他目的。

OS: ubuntu 15.04

VLC 版本:2.2.0

我也问过这个问题here并得到了解决方案。

如果我想收听 Digitally imported 节目之一并记录元数据,这个 liner 可以做到这一点:

$ mplayer http://pub1.di.fm:80/di_melodicprogressive_aac?3d3d2d82969e89c2ca1fc2a7 >/dev/null 2>&1 | mplayer -slave -playlist http://pub1.di.fm:80/di_melodicprogressive_aac?3d3d2d82969e89c2ca1fc2a7
Resolving pub1.di.fm for AF_INET6...
Couldn't resolve name for AF_INET6: pub1.di.fm
Resolving pub1.di.fm for AF_INET...
Connecting to server pub1.di.fm[70.42.73.176]: 80...
Name   : DI - Melodic Progressive
Genre  : Electronic Melodic Progressive
Website: http://www.di.fm
Public : no
Bitrate: 64kbit/s

ICY Info: StreamTitle='Jav3x - Destiny';StreamUrl='';

(此示例使用的 URI 可能会更改。)