我觉得玩起来很方便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 动态获取的。