如何在 Linux 上通过命令行收听网络广播
对于那些花费大量时间在 Linux 屏幕前的系统管理员和 Linux 爱好者来说,您是否知道来自在线/本地广播电台的环境噪音实际上可以提高工作效率?不管您是否相信,众所周知,适度的环境声音(例如音乐或聊天声)实际上可以激发您在工作场所的创造力。如果您喜欢使用音乐的想法,也许本教程对您有用,因为我将向您展示如何从命令行收听 Pandora 在线广播。
如您所知,Pandora 是最著名的互联网广播服务之一,凭借其强大的音乐推荐引擎,免费播放大量不同类型的音乐。虽然 Pandora 可以通过不同的方式访问,例如通过网络浏览器、桌面客户端或移动应用程序,但开源社区提出了另一种访问 Pandora 的方式:Linux 命令行。
pianobar
是 Pandora 网络广播的开源 CLI 音乐播放器。它配备了一个简单的终端界面,用于播放和管理音乐电台。其他功能包括歌曲评级、即将推出的歌曲列表、歌曲历史记录、自定义键绑定、远程控制等。对于居住在无法使用 Pandora 的地区(即美国、澳大利亚和新西兰之外)的听众,pianobar
还提供代理支持。
在 Linux 上安装 pianobar
对于 Ubuntu、Debian 或 Linux Mint:
在 Debian 和其他 Debian 衍生产品(例如 Ubuntu 或 Linux Mint)上,pianobar
作为预构建的软件包提供,因此安装非常简单,只需键入:
$ sudo apt-get install pianobar
对于费多拉:
在 Fedora 上,pianobar
在基础存储库中不可用。所以你需要从源头构建它。整个安装过程有点复杂,但是按照下面的说明就可以了。这些指令在新的 Fedora 20 上进行了测试。
首先,使用本指南从源代码编译并安装 FFmpeg。
接下来,启用 RPM Fusion 存储库,并安装其他先决条件:
$ sudo yum install wget gcc-c++ pkgconfig gnutls-devel json-c-devel libgcrypt-devel make libao-devel faad2-devel libmad-devel libao faad2-libs
编译并安装pianobar
:
$ wget http://6xq.net/projects/pianobar/pianobar-2014.06.08.tar.bz2
$ tar xvfvj pianobar-2014.06.08.tar.bz2
$ cd pianobar-2014.06.08
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH make
$ sudo make install
最后,要允许 Pianobar 加载安装在 /usr/local/lib 中的共享 FFmpeg 库,请在 /etc/ld.so.conf
中添加以下行:
/usr/local/lib
并重新加载所有共享库:
$ sudo ldconfig
就是这样。
从命令行聆听 Pandora
pianobar
的基本用法就像键入命令一样简单:
$ pianobar
系统将要求您登录 Pandora,然后从个性化电台列表中选择一个电台。选择电台后,音乐流将自动开始。

在直播期间按 ?
键将显示可用命令键的列表。他们之中有一些是:
s
:换台。u
:查看即将播放的歌曲列表。h
:查看plaback历史记录。n
:转到下一首歌曲。b
:为歌曲或艺术家添加书签。(
或)
:减小或增大音乐音量。S
:暂停流式传输。P
:恢复流式传输。v
:根据歌曲或艺术家创建新电台。+
或-
:对歌曲表示赞成或反对。a
:将音乐添加到电台。q
:退出pianobar
。

配置 Pianobar 进行自动设置
您可以在单独的配置文件中定义 pianobar
的各种默认设置。例如,您可以将 Pandora 登录信息放入配置文件中,这样您就不必手动输入。以下是创建示例配置文件的方法。
$ mkdir -p ~/.config/pianobar
$ vi ~/.config/pianobar/config
# Example pianobar configuration file
# Pandora login info
user = [email _address
password = plaintext_password
# Users who cannot access Pandora in their region can set a proxy.
control_proxy = http://user:[email :port/
# Initial volume in dB: between -30 and +5
volume = 0
# Audio quality: high, medium or low
audio_quality = high
有关完整的配置选项,请参阅其手册页。
$ man pianobar
遥控钢琴吧
pianobar
的另一个出色功能是远程控制支持。您可以通过命名管道 (FIFO) 向正在运行的 pianobar
实例发送命令。以下是如何远程控制pianobar
。
首先在~/.config/pianobar
中创建一个FIFO:
$ mkfifo ~/.config/pianobar/ctl
然后启动pianobar
。
现在,您可以使用 echo
命令将任何单字符命令键发送到 pianobar
。例如,要转到下一首歌曲:
$ echo -n 'n' > ~/.config/pianobar/ctl
您可以轻松地将此设置扩展到远程计算机。当 pianobar
在主机 X
上运行时,您可以通过 SSH 从另一台主机 Y
远程控制 pianobar
,如下所示。
在主机 Y
上,运行:
$ ssh [email _X "echo -n 'n' > ~/.config/pianobar/ctl"
当然,您希望为主机 X
的 SSH 登录启用密钥身份验证,这样您就不必输入 SSH 密码。
当您想在 Raspberry Pi 上设置远程控制的网络广播播放器时,此远程控制功能会派上用场。
希望您和我一样喜欢pianobar
。请在评论中告诉我您的想法。