我是豆瓣FM的忠实用户,用这个东西已经有一年多了吧,累计收听了不少歌曲(316首喜欢的,45首不再播放的,7352首播放过)。通过这个东西发现不少符合自己口味的音乐。这316首是我喜欢的类型,所以想把这个列表弄下来,然后把这些歌曲下载到电脑上。
看了一下豆瓣是有自己开放的API的,不过还是够麻烦的。于是折腾了一个Python程序,输入你的豆瓣用户名和密码,模拟登录豆瓣并记录cookie,自动地到FM的页面去取下这个音乐列表。这个程序在处理HTML文件的时候有点笨拙,正则表达式不够强嗄。需要另一个库python-beautifulsoup。
通过歌曲名,自动下载这个应该是已经有人做了的,于是发现这个getsong.py,是通过Baidu音乐自动下载的,使用了一下速度和成功率都不错,于是在这个上面做了一些修改,直接从上面的程序 生成的列表中取歌曲名字,下载下来。如果网速可以一般能在500k左右的下载速度,挺不错的。这个程序有可能会抛出一些异常,我没做仔细的检查,如果一首歌下载不下来就pass掉。
上面的程序都放在GitHub上了,Git/GitHub可个是真好东西。 需要的朋友们从这个地址弄下代码:https://github.com/chenyukang/fmmusic
使用方法:1 修改fm_get_music.py,在里面填入自己的豆瓣用户名和密码。 2 运行这个程序,会在当前目录生成一个歌曲列表:songlist.txt。 3 运行getsong.py程序, python getsong.py -x,就是通过songlist.txt逐个通过百度搜索自动下载,存在当前目录。