使用curl下载中国好声音官方网站选手歌曲

最近一段时间,《中国好声音》真是火了大半个中国。大家茶余饭后,都在谈论选手、导师以及好声音的各种消息。每到周五晚上,大家也都尽早赶回家,守候在电视旁,观看新一期的好声音。

好声音如此火爆,选手们的歌曲如此好听,我们怎样才能拿到呢?我仅从技术层面上分析一下。

我们知道好声音的官方网站上有所有歌手的视听:http://voice.5ige.cn/ilmusic/voice/song.do?tagId=421,可以从这里直接下载,而且质量真心不错,320Kbps,48000Hz,完全满足日常听歌的需求。

如果我们直接看源代码,抓取声音的url,会发现无法直接下载。其原因是因为服务器端加上了对于referer的判断。我们使用curl,并添加对播放器flash的referer地址,便可以顺利下载了。

以下是下载中国好声音的bash脚本,仅供学习交流用,请勿用到非正常用途。

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
 
songId=`echo $1 | sed "s/.*songId=//"`
currTime=`date +%s`
waveContent=`curl -s "http://voice.5ige.cn/ilmusic/voice/getWave.do?time?=$currTime&sid=$songId"`
singer=`echo $waveContent | sed "s/.*singer\":\"//;s/\",\"songName.*//"`
songName=`echo $waveContent | sed "s/.*songName\":\"//;s/\",\"cmtItems.*//"`
mp3url=`curl -s $1 |grep "mp3: 'http" |sed "s/.*mp3: '//;s/',.*//"`
echo "File Name: $singer - $songName.mp3"
curl --referer http://voice.5ige.cn/ilmusic/js/Jplayer.swf $mp3url --output "$singer - $songName.mp3"

 

Snip20120917_7

You may also like...

Leave a Reply

Your email address will not be published.

four × three =

使用新浪微博登陆