一直使用天天动听的在线音乐服务,并且有自己的红心列表,但最近发现天天动听越来越难用,bug越来越多,就决定把自己收藏多年的红心列表down下来。
思路如下:
1. 获取songid, 红心列表的div有统一的class叫“redHeart”
如下:
<span data-songid="19741134" class="redHeart"></span>
2. 请求song Info,
用拿到的songid, 发送以下请求:
http://ting.hotchanson.com/website/ting?song_id=339470&code=-659b07f“http://ting.hotchanson.com/website/ting?” 是固定的host地址,
后面有两个参数,一个是songid, 一个是code,code值是songid做crc32之后的4byte的值。
3. 拿到songInfo,
如果前两步没有问题,则会返回以下结果:
{"code":1,"data":
[
{"singer_id":50569,"song_id":339470,"pick_count":250937,"album_name":"恋人创世纪","singer_name":"周传雄","url_list":
[
{"duration":"04:53","form
at":"m4a","bitrate":32,"type_description":"压缩品质","url":"http://jdlbqc.tgg.yymommy.com/m4a_32_3/d6/43/d6e5c0b05f266044ba0cb0ab4b7cf243.m4a?k=6e3449d7aaf63b67
&t=1411550536","size":"1.14M","type":1}
,
{"duration":"04:53","format":"m4a","bitrate":96,"type_description":"标准品质","url":"http://b.ali.hotchanson.com/m4a_96_
3/d6/43/d6e5c0b05f266044ba0cb0ab4b7cf243.m4a?k=6e3449d7aaf63b67&t=1411550536","size":"3.35M","type":2}
,
{"duration":"04:53","format":"mp3","bitrate":128,"type_de
scription":"标准品质","url":"http://jdlbqc.tgg.yymommy.com/mp3_128_3/d6/43/d6e5c0b05f266044ba0cb0ab4b7cf243.mp3?k=6e3449d7aaf63b67&t=1411550536","size":"4.47M",
"type":3}
],"song_name":"关不上的窗"}]}
该歌曲的各种信息,包括下载url都有了。
——————————————
ps:
1. 如果用temperMoney做的话可以实现全自动了,现在是在chrome F12 -> Console -> document.getElementsByClassName() 拿到的songid。
2. songid是从0开始的,如果你下载 songid ∈(0, +∞)的话,应该能把整个服务器的歌曲都下载到。^_^
3. 需要代码的话私信我。
4. 如果你有多个要下载的,请在没两次下载之间停顿几秒钟,否则服务器会扛不住的。
以上。