【问题标题】:python icecast/shoutcast stream proxy that add genre/song name/artist metadata?添加流派/歌曲名称/艺术家元数据的python icecast/shoutcast流代理?
【发布时间】:2012-09-04 23:51:59
【问题描述】:

我正在收听 3FM 流,但遗憾的是它没有在其 aac/mp3/wma 流中提供音乐名称/艺术家信息。

所以我想编写一个简单的 python 代理来将元数据添加到流中。元数据来自定期爬虫,从 3FM 网站抓取 JSON。

知道我可以从哪里开始吗?

【问题讨论】:

  • 这些元数据从何而来?请说明您是否有权访问来源(即您在 3FM 工作),或者您是否只是为了自己而尝试这样做。
  • 我的意思是来自第三方来源,如 JSON、txt、csv 等。我只需要将音乐流和元数据信息合并到 Icecast/shotcast 协议中。
  • 你能回答我的第二个问题吗?
  • 1.来自 last.fm 中的 3FM 或 3FM 馈送 2. 我没有 3. 为我自己。代理应该在本地运行。

标签: python metadata shoutcast icecast


【解决方案1】:

有一种相当直接的方法来滑动元数据(在旧格式流的情况下):

  • 设置 Icecast 服务器以中继您选择的流。
  • 运行您的 python(或其他)脚本以获取元数据并将更新发送到 Icecast。
    • 将传入元数据与当前元数据进行比较
    • 如果发生更改,请使用元数据更新功能将数据推送到 Icecast

来自官方文档:

元数据更新

此功能为源客户端或任何外部程序提供更新特定挂载点的元数据信息的能力。

例子:

/admin/metadata?mount=/stream&mode=updinfo&song=ACDC+Back+In+Black

需要使用装载特定源或一般管理员凭据进行身份验证。

遗留流的元数据是一个文本字段。 “艺术家”、“标题”等没有单独的字段。这是这种传统流类型的限制。部分玩家遇到“-”会分场。

在使用 Ogg 封装(如 Vorbis 或 Opus)的正确流的情况下,这涉及更多,因为支持许多元数据字段,包括任意数据,甚至专辑封面。要注入这些东西,需要源客户端。 Liquidsoap 可能很容易做到这一点。在未来(计划在 2.5 中)Icecast 也将支持 Ogg 流的所有字段的直接元数据更新。

PS:我知道这是一个老问题,但我认为值得记录下来以供将来参考。

【讨论】:

    【解决方案2】:

    您可以使用:http://www.3fm.nl/data/dalet/dalet.xml 获取元信息。您希望如何构建元数据?

    【讨论】:

      猜你喜欢
      • 2018-12-25
      • 2013-03-26
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      相关资源
      最近更新 更多