制作过程:
前面写过了一个 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 下载。
代码在这里。