【问题标题】:How do I capture an mp3 stream with python如何使用 python 捕获 mp3 流
【发布时间】:2010-09-16 07:08:43
【问题描述】:

捕获来自 http 的 mp3 流并使用 python 将其保存到磁盘的最佳方法是什么?

到目前为止我已经尝试过

target = open(target_path, "w")
conn = urllib.urlopen(stream_url)
while True:
    target.write(conn.read(buf_size))

这给了我数据,但它是乱码或无法在 mp3 播放器中播放。

【问题讨论】:

  • 你能指定更多信息吗?它是什么样的流媒体?纯 mp3(您也可以使用“另存为...”来保存它)?如果不是,则协议中可能包含更多信息,而不仅仅是音频信息。
  • 这最终奏效了,但它从未退出 while 子句。我是否需要添加额外的代码才能正确完成?

标签: python streaming


【解决方案1】:

如果您使用的是 Windows,您可能会不小心进行 CRLF 转换,从而损坏二进制数据。尝试以二进制模式打开target

target = open(target_path, "wb")

【讨论】:

    【解决方案2】:

    最好的办法是:

    urllib.urlretrieve(stream_url, target_path);
    

    【讨论】:

      【解决方案3】:

      也许语法与之前的 urllib 答案有所不同(顺便说一句,这让我得到了正确的答案),但这种语法适用于 python3:

      import urllib.request
      
      urllib.request.urlretrieve(stream_url, target_path)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-31
        • 2015-05-15
        • 2012-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-04
        • 1970-01-01
        相关资源
        最近更新 更多