![录制在线电台播放的曲目名称](https://linux22.com/image/1279264/%E5%BD%95%E5%88%B6%E5%9C%A8%E7%BA%BF%E7%94%B5%E5%8F%B0%E6%92%AD%E6%94%BE%E7%9A%84%E6%9B%B2%E7%9B%AE%E5%90%8D%E7%A7%B0.png)
我经常听迪使用 VLC 进行在线广播。流媒体为通过 HTTP 进行的 MP3 传输。
我想记录此电台播放的所有曲目名称。VLC 确实显示曲目名称,但播放下一首曲目时,名称会丢失。
我将使用这些曲目名称进行一些统计(例如查找前 10 名)并查找我不完全记得名称的曲目。
使用 VLC 或其他 Windows 客户端可以完成该任务吗?
答案1
VLC(本例中为 2.2.1)有一个 HTTP 接口,您可以通过它查询当前正在播放的曲目。您可以从命令行启用它:
vlc --extraintf=http --http-host 0.0.0.0:8080 --http-password 'watpasswd'
或通过 GUI(这些设置在重启后仍然有效):
- 工具 > 首选项,显示设置:全部
- 界面 > 主界面,勾选“Web”
- 界面 > 主界面 > Lua > Lua HTTP > 密码
您可以http://localhost:8080/requests/status.xml
在浏览器中访问,输入密码,然后您应该收到一个包含如下部分的 XML:
<category name="meta">
<info name="title">Jazz</info>
<info name="filename">http://example.com/station</info>
<info name="genre">smooth</info>
<info name="now_playing">Jimmy Sommers - Fly Me To The Moon</info>
</category>
剩下的就是设置一个 cron 作业来定期保存播放曲目。
#!/bin/bash
vlc_status="$(curl --connect-timeout 15 --silent -u :watpasswd http://localhost:8080/requests/status.xml)"
# Parse out now-playing track, escape named entities e.g. '&'
track=$(echo "${vlc_status}" | xmlstarlet sel -t -v ".//info[@name='now_playing']" | xmlstarlet unesc)
# Append new track to log file
echo "$track" >> vlc_log.txt
# Remove duplicates of new track if any
# http://stackoverflow.com/a/1444448/
gawk -i inplace '!x[$0]++' vlc_log.txt
答案2
放射线
尖叫电台
流写入器
拉玛电台
Tapin电台
答案3
VLC 支持向 Last.fm 提交曲目。如果您在 Last.fm 注册并在 VLC 偏好设置中输入密码,播放的曲目将记录在您的 Last.fm 个人资料中,甚至包括统计信息。
(不过,我实际上不确定这是否适用于流。它可能仅适用于本地文件。)
答案4
我个人使用 Winamp 收听 DI premium,然后使用 Streamripper 保存曲目。Streamripper 非常聪明,可以将每首曲目保存为自己的单独文件,而不是保存为一个包含曲目名称和艺术家的长流文件。不过需要注意的是,我发现 Winamp 不喜欢与 Streamripper 共享带宽,即使有足够的空间,您也会发现 Winamp 会在“曲目”之间跳转(术语使用得比较宽泛,因为它们都连接到 DI 并且是同一个流,pls 文件插入了三个与 Winamp 的连接),除非您打开重复,否则它会停止播放。打开重复后,您会实时听到跳转,但不会被录制下来。
7 年来一直是 DI 监听器。现在没有它就无法工作 :) 除非是史诗曲目,否则我不会录音。占用太多内存。
希望这可以帮助 :)