python wmv流下载

时间:2010-12-22 15:46:18

标签: python

给出一个在线流媒体的wmv文件。该文件大约10kb,因为它没有任何视频。如果我点击该文件,它会打开Windows媒体播放器,然后连接到网络。 Windows媒体播放器开始缓存文件,然后为我播放视频。

相反,我希望我的python程序打开文件。从网上抓取内容然后为我下载。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,并研究了Python VLC绑定,但由于时间紧迫,并且缺少使用绑定的示例,我采用了另一种方法。

vlc命令行非常强大。使用subprocess.call我直接调用了vlc命令行。

这是我使用的格式,效果很好。

subprocess.call([path_to_vlc, 
                 mms_url, 
                 '--sout', 
                 'file/avi:'+target_file,
                 'vlc://quit'])

在您发送给电话的参数列表部分中,以下是每个参数的说明:

  • path_to_vlc - 顾名思义。您不必像使用程序文件的os.system那样使用“封装空格等.subprocess.call会为您执行此操作。
  • mms_url - 是流的网址。因为在我的情况下它是一个mms流,param名称卡住了。您可以使用任何受支持的vlc流前缀。
  • ' - sout' - 由于调用为您封装了空格,因此您需要明确区分需要空格的每个参数。这里的实际参数是--sout file / avi:....但我们必须将它们分成两部分。
  • 'file / avi:'+ target_file - 指向目标文件的uri(和muxer)。我没有使用该文件的路径,因为我在调用python脚本时站在目标目录中。目标文件应该
  • 'vlc://退出' - 最后我们告诉vlc在播放后退出。通过这种方式,您可以摆脱僵尸vlc窗口。

如果您希望查看我以前使用的完整代码,请先找到它here

答案 1 :(得分:1)

您可以使用VLC Python bindings来处理实际下载和保存。

你需要从他们的Git回购中获得vlc.py

请看Instance.media_new_location