Jeswang's Blog

盲目跟随还是独立去做,To be or not to be?

音悦台MV下载 Python版本

| Comments

制作过程:

前面写过了一个GoogleMusic专辑下载的Python版本,这里是下载脚本另一则。

因为前段时间在人人上总能看见音悦台里MV的推荐链接,用Chrome查看网页加载的文件也可以很容易的找出播放的MV的URL,然后用wget轻松下载到本地。既然浏览器能把文件的地址显示出来,用程序也一定可以。

这个过程还是有一点点曲折的:

  • 读HTML代码,发现文件的链接是嵌入的Flash获取一个videoId,然后根据videoId获取的。
  • 找了一个可以反编译Flash文件的软件SWFDecompiler,反编译了一下Flash文件,简单读了一下相关的代码,不是很有头绪,然后决定从Flash发起的HTTP请求入手。
  • 先用了Wireshark尝试抓了一下包,结果发现自己学艺不精,不太会用Wireshark,找不到链接是怎么来的。
  • 决定找一个相对简单的HTTP请求获取的软件,StackOverflow搜到在Mac下有这几个软件可以实现

    我用的是后者,非常好用,简单直接的找到了URL所在的HTTP请求。

  • Python脚本发送HTTP请求,正则表达式分析出URL,再从原页面获取MV的名字,wget下载。

代码在这里

总结:

其实音悦台也提供了下载功能,但是需要下载一个Winodows的客户端,有没有其他的需要我不知道,因为客户端也没用过。

写这种脚本,纯粹是为了满足自己需要。回头想想,觉得这种有用的脚本除了能被人方便的使用以外,还可以告诉程序员:程序无所不能,所有你可以看到的数据都可以获取。

PS:

还搜索到了几个有用的脚本,在这里分享一下:

  • youku-lixian:优酷视频下载的Python脚本。
  • youtube-dl:Youtube视频下载。
  • 易读文库下载器:Windows平台下载百度文库中文档的工具,话说我也简单分析了一下百度文库的Flash,有机会也搞一个脚本试试。

完。

Comments