播放网络广播(FIP 广播)时在终端中显示歌曲信息

播放网络广播(FIP 广播)时在终端中显示歌曲信息

我觉得玩起来很方便FIP 无线电在带有 mpv 的终端中:

mpv http://direct.fipradio.fr/live/fip-midfi.mp3

在此输入图像描述

我可以获得有关终端中正在播放的歌曲的更多信息吗?


更新1:

一位朋友给了我一个脚本,该脚本应该在终端中列出 FIP 广播列表。

我认为他在 Mac 上使用它,但如果更改的话该脚本可能在 Linux 上运行。

这是脚本:

import requests

URL = 'http://www.fipradio.fr/livemeta/7'



data = requests.get(URL).json()
level = data['levels'][0]
uids = level['items']
for i in uids:
    step = data['steps'][i]
    print("{title} — {authors} ({anneeEditionMusique}){space:>60}".format(space=' ', **step).encode("utf-8"), end="\r”)

这就是我的朋友运行它时得到的结果(如果我理解正确的话):

在此输入图像描述

为了在 Linux 中运行它,我创建了list_fip.py包含以下行的文件

#! /usr/bin/python3

接下来是上面的行。

我已将该文件设为可执行文件,然后在 Dolphin 中选择该文件,然后从右键单击上下文菜单中操作>在 Konsole 中运行。这给出了这个:

  File "/home/cip/Desktop/fip_titles.py", line 14
    print("{title} — {authors} ({anneeEditionMusique}){space:>60}".format(space=' ', **step).encode("utf-8"), end="\r”)
                                                                                                                       ^
SyntaxError: EOL while scanning string literal

答案1

stackoverflow 回答的问题是类似的。如果您从 URL 查看数据流(例如使用curl -v),您将首先获得指向302 Moved Temporarily新 URL 的重定向 ( )。从这个新的 URL 中,您将找到标头

icy-metadata: 1

但我没有看到流中包含任何元数据。由于这是公共广播电台(在法国),您可以尝试要求他们将其包含在内。

您的另一种选择是尝试从网页上抓取它。其中一个包含玩家,另一个仅包含当前标题。然而,这并不容易,因为数据是通过 javascript 动态获取的。

相关内容