fangpsh's blog

豆瓣FM 红心歌曲导入网易云音乐

NeteaseMusic

从豆瓣FM 转用网易云音乐的几个原因:

  • 版权大战,豆瓣FM 里面的歌曲大部分都播放不了了;
  • 豆瓣FM 音质太烂,相比QQ,网易,虾米之类;
  • 豆瓣FM 在OS X 下无官方客户端,网页版又依赖Flash,多年后的新版才弃用了;
  • 豆瓣FM iOS App 常常需要重复登录,有时是在升级之后,简直不能忍;
  • 豆瓣FM 在北京移动的宽带环境下常常播放卡顿,给豆瓣官方help 邮箱发邮件反馈,跑过他们的测试脚本,不了了之;

网易云音乐的iOS App 和OS X App 都做的不错,不过私人FM 的歌曲推荐相比豆瓣FM 还是差一大节,怀疑是红心歌曲和垃圾歌曲标注的不够,所以产生将豆瓣FM 红心歌曲导入网易云音乐的想法。
记得网易云音乐一开始推出的时候,可以直接从豆瓣FM 和虾米音乐导入歌单,目前已经不可用,所以只能自己动手了。

第一步,拉取豆瓣FM 红心歌曲列表,新版的接口好像变了,直接用旧版的接口,登录豆瓣FM 网页版本,
打开https://douban.fm/mine/#!type=liked, Inspect 看一下网络请求接口,找出类似:
http://douban.fm/j/play_record?ck=&spbid=&type=liked&start=
的请求,Copy As cURL,得到Cookie 之类的,

#!/usr/bin/env bash
#Convert DoubanFM liked songs into KWL list.
#require:
#  jq: https://stedolan.github.io/jq/

COUNT=#liked songs number#

for i in `seq 0 15 ${COUNT}`;do
    songs=`curl -s 'http://douban.fm/j/play_record?ck=&spbid=&type=liked&start='$i\
           -H 'Host: douban.fm' -H 'User-Agent: '\
           -H 'Accept: text/plain, */*; q=0.01'\
           -H 'Accept-Language: en-US,en;q=0.5'\
           -H 'DNT: 1' \
           -H 'X-Requested-With: XMLHttpRequest'\
           -H 'Referer: http://douban.fm/mine/'\
           -H 'Cookie: '\
           -H 'Connection: keep-alive'\
           |jq '.songs'`
    for s in `seq 0 14`;do
        song=`echo $songs | jq .[$s]`
        title=`echo $song | jq .title`
        artist=`echo $song | jq .artist`
        echo $title $artist
        echo "<so name="$title "artist="$artist"></so>" >> Douban_FM.kwl
    done
    sleep 10
done

由于歌曲总数不一定是15 的倍数,所以最后可能会几项是NULL ,手动删除一下就好了。
生成的DoubanFM.kwl 是酷我的歌曲列表,上传地址:http://music.163.com/#/import/kuwo,导入即可。
.kwl 内容片段:

<so>
<so name="とんちんかんちん一休さん" artist="相内恵 / ヤングフレッシュ"></so>
<so name="岛人ぬ宝" artist="BEGIN"></so>
<so name="美丽的梭罗河" artist="黄秋生"></so>
<so name="雨" artist="小果"></so>
<so name="Paradise" artist="Coldplay"></so>
<so name="Broken" artist="Jake Bugg"></so>
<so name="A Step You Can't Take Back" artist="Keira Knightley"></so>
<so name="Tokyo" artist="California Wives"></so>
<so name="痴人" artist="痴人 / 痴人"></so>
<so name="I Cried For You" artist="Katie Melua"></so>
<so name="Counting Stars" artist="OneRepublic"></so>
....
<so name="I Have Nothing" artist="Whitney Houston"></so>
<so name="Sometimes When We Touch" artist="Rod Stewart"></so>
<so name="From The Bottom Of My Broken Heart" artist="Britney Spears"></so>
<so name="Because I Love You" artist="Shakin Stevens"></so>
<so name="Rhythm Of The Rain" artist="Jason Donovan / The Cascades"></so>
<so name="织梦行云" artist="骆集益"></so>
</so>

导入网易云音乐之后会生成一个和kwl文件同名的歌单,再在App 内操作导入到我喜欢的音乐 ,批量加红心即可。目前看来导入之后,隔几天,网易私人FM 的推荐稍微好了一些。

另外这次导入操作,豆瓣FM 歌曲下架的情况可以让人非常吃惊:
我的豆瓣FM红心歌曲总计1741 首,能播放的只有421 首,将其导入网易云音乐能播放的有1271首