音乐API
博主在前几篇博客中介绍了小Q聊天机器人的源码及其包含的一些功能,并在应用市场上上线了一个版本,其中有一个功能是歌曲搜索,即输入格式为“歌曲#歌曲名#歌手”即可搜索出相应的歌曲并进行播放,不过最近两天在使用时发现一只提示“歌曲获取失败”,于是在代码中打印了一些log,发现该音乐搜索api(抓自百度音乐盒)失效,其实也不算失效,只是返回的数据为空了!不知道是间歇性的,还是百度发现后封了,或者更换了链接?如果因此砍掉小Q的歌曲搜索功能,那么可玩性就降低了好多,不好不好!那怎么办,接着抓呗~
至于抓包方法,不再写了,百度上多的是,博主也偷了个懒,也是参考了网上的相关方法,最终抓取到了千千静听的音乐搜索链接!不过,它这个稍有点麻烦,我们想要的是传入一个歌曲名即可得到音乐链接,而这个抓取到的没有直接通过歌曲名获得歌曲链接的方法,多了一步,即:先通过歌曲名获得歌曲id->再通过歌曲id获得歌曲链接:
第一步:获取歌曲id
参数query的value即歌曲名!
返回结果(json):
{"song":[{"bitrate_fee":"{\"0\":\"0|0\",\"1\":\"0|0\"}","yyr_artist":"0","songname":"咱们屯里的人","artistname":"罗凯
楠","control":"0000000000","songid":"251817888","has_mv":"0","encrypted_songid":"0307f026fa00956e65bbcL"},{"bitrate_fee":"{\"0\":\"0|0\",\"1\":\"0|0\"}","yyr_artist":"0","songname":"咱们屯里的人","artistname":"赵本
山","control":"0000000000","songid":"13766076","has_mv":"1","encrypted_songid":"2706d20dbc09561cfbf7L"},{"bitrate_fee":"{\"0\":\"0|0\",\"1\":\"0|0\"}","yyr_artist":"0","songname":"咱们屯里的人","artistname":"国民美少
女","control":"0000000000","songid":"262773592","has_mv":"0","encrypted_songid":"7007fa99b580956f79be6L"},{"bitrate_fee":"{\"0\":\"0|0\",\"1\":\"0|0\"}","yyr_artist":"0","songname":"咱们屯里的人","artistname":"吉特
巴","control":"0000000000","songid":"85496774","has_mv":"0","encrypted_songid":"770751893c609561cf1e9L"},{"bitrate_fee":"{\"0\":\"0|0\",\"1\":\"0|0\"}","yyr_artist":"0","songname":"咱们屯里的人 - 廖弟广场舞 编舞 廖弟","artistname":"吉特
巴","control":"0000000000","songid":"85026906","has_mv":"0","encrypted_songid":"6307511685a09561d512cL"},{"bitrate_fee":"{\"0\":\"0|0\",\"1\":\"0|0\"}","yyr_artist":"0","songname":"咱们屯里的人 - 刘晓 dj杉毛制作吉特
巴","artistname":"htall","control":"0000000000","songid":"64795854","has_mv":"0","encrypted_songid":"57073dcb4ce09561d1261L"},{"bitrate_fee":"{\"0\":\"0|0\",\"1\":\"0|0\"}","yyr_artist":"0","songname":"x240","artistname":"咱们屯里的人,博白广场舞,320,反
面","control":"0000000000","songid":"85496800","has_mv":"0","encrypted_songid":"040751893e009561cf1e9L"},{"bitrate_fee":"{\"0\":\"0|0\",\"1\":\"0|0\"}","yyr_artist":"1","songname":"罗凯楠-咱们屯里的人","artistname":"Mc九
染","control":"0000000000","songid":"74120660","has_mv":"0","encrypted_songid":""}],"error_code":22000,"order":"song"}
我们看到,返回的其实是一个列表,其中的songid即为歌曲id!这么多id,id三千你只取一个听就行了,一般第一条数据与你的搜索意向最接近,所以我们取出第一条数据就行了,搜索歌曲地址时同理!(当然,也可根据自己的需求去取啦!)
第二步:获取歌曲地址
参数songid即歌曲id,从第一步获得传入即可!
返回结果(json):
{"songurl":{"url":[{"show_link":"http:\/\/zhangmenshiting.baidu.com\/data2\/music\/4fae6f8e86d0a2ff3266ab48a57c3503\/255805332\/255805332.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955",
"down_type":0,"original":0,"free":1,"replay_gain":"0.709999","song_file_id":255805332,"file_size":1097845,"file_extension":"mp3","file_duration":137,"can_see":1,"can_load":true,"preload":40,"file_bitrate":64,"file_link":"http:\/\/yinyueshiting.baidu.com\/data2\/music\/4fae6f8e86d0a2ff3266ab48a57c3503\/255805332\/255805332.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955",
"is_udition_url":0,"hash":"3df112b1212f39acc25343da2ff11407eac52387"},{"show_link":"http:\/\/zhangmenshiting.baidu.com\/data2\/music\/fd50ddbbebe1ea4f189ac5285f7d124e\/255805294\/255805294.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955",
"down_type":1,"original":0,"free":1,"replay_gain":"0.730003","song_file_id":255805294,"file_size":2194361,"file_extension":"mp3","file_duration":137,"can_see":1,"can_load":true,"preload":80,"file_bitrate":128,"file_link":"http:\/\/yinyueshiting.baidu.com\/data2\/music\/fd50ddbbebe1ea4f189ac5285f7d124e\/255805294\/255805294.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955",
"is_udition_url":1,"hash":"777018a26271617c8419a9e97db81e9ac01ff69d"},{"show_link":"http:\/\/zhangmenshiting.baidu.com\/data2\/music\/d37b40f4f8ea042560ad5c0947af19a5\/255805243\/255805243.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955","down_type":0,"original":0,"free":1,"replay_gain":"0.559998","song_file_id":255805243,"file_size":3291883,"file_extension":"mp3","file_duration":137,"can_see":1,"can_load":true,"preload":120,"file_bitrate":192,"file_link":"http:\/\/yinyueshiting.baidu.com\/data2\/music\/d37b40f4f8ea042560ad5c0947af19a5\/255805243\/255805243.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955",
"is_udition_url":0,"hash":"c4b6aa68e3652402deff50709afbbf8d379ed0f7"},{"show_link":"http:\/\/zhangmenshiting.baidu.com\/data2\/music\/a9e5349e5a23681f265c9cfb47d63fd6\/255805201\/255805201.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955","down_type":0,"original":0,"free":1,"replay_gain":"0.339996","song_file_id":255805201,"file_size":4388399,"file_extension":"mp3","file_duration":137,"can_see":1,"can_load":true,"preload":160,"file_bitrate":256,"file_link":"http:\/\/yinyueshiting.baidu.com\/data2\/music\/a9e5349e5a23681f265c9cfb47d63fd6\/255805201\/255805201.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955",
"is_udition_url":0,"hash":"05ddb88d4ef987f56ac267cdab3e810715afed14"},{"show_link":"http:\/\/zhangmenshiting.baidu.com\/data2\/music\/4d57a2ac3e57f5ec7ee392315808cc00\/255805096\/255805096.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955",
"down_type":2,"original":0,"free":1,"replay_gain":"0.339996","song_file_id":255805096,"file_size":5483909,"file_extension":"mp3","file_duration":137,"can_see":1,"can_load":true,"preload":200,"file_bitrate":320,"file_link":"http:\/\/yinyueshiting.baidu.com\/data2\/music\/4d57a2ac3e57f5ec7ee392315808cc00\/255805096\/255805096.mp3?xcode=3f0d256c45bc24ec7ddf74b1a6ef6955",
"is_udition_url":0,"hash":"c6fb15c83d5f9f270f3a6b9e4eafcc5f9189f56e"},{"show_link":"","down_type":0,"original":0,"free":1,"replay_gain":"1.209999","song_file_id":255804950,"file_size":18190765,"file_extension":"flac","file_duration":137,"can_see":1,"can_load":true,"preload":663.75,"file_bitrate":1062,"file_link":"","is_udition_url":0,"hash":"fa6b2a66a189001297cbc1c8f2155b40ac6edf84"}]},
"error_code":22000,"songinfo":{"resource_type_ext":"0","pic_huge":"http:\/\/musicdata.baidu.com\/data2\/pic\/255805384\/255805384.jpg","resource_type":"0","del_status":"0","album_1000_1000":"http:\/\/musicdata.baidu.com\/data2\/pic\/255805384\/255805384.jpg","pic_singer":"","album_500_500":"http:\/\/a.hiphotos.baidu.com\/ting\/pic\/item\/c75c10385343fbf2c9c771b4b67eca8064388fba.jpg","havehigh":2,"piao_id":"0","song_source":"web","korean_bb_song":"0","compose":"","toneid":"0","area":"0","original_rate":"","bitrate":"64,128,192,256,320,1062","artist_500_500":"http:\/\/musicdata.baidu.com\/data2\/pic\/106116271\/106116271.jpg","multiterminal_copytype":"1110,1101,1011,0111","has_mv":0,"file_duration":"0","album_title":"夏洛特烦恼 电影原声带","sound_effect":"0","title":"咱们屯里的人","high_rate":"320","pic_radio":"http:\/\/musicdata.baidu.com\/data2\/pic\/255805386\/255805386.jpg",
"is_first_publish":0,"hot":"125867","language":"粤语","lrclink":"http:\/\/musicdata.baidu.com\/data2\/lrc\/f17378837196eea07b2868eae2965411\/263504354\/263504354.lrc","distribution":"0000000000,0000000000,0000000000,0000000000,0000000000,0000000000,0000000000,0000001111,0000001111,0000000000","relate_status":"0","learn":0,"play_type":0,"pic_big":"http:\/\/musicdata.baidu.com\/data2\/pic\/255805392\/255805392.jpg","pic_premium":"http:\/\/a.hiphotos.baidu.com\/ting\/pic\/item\/c75c10385343fbf2c9c771b4b67eca8064388fba.jpg","artist_480_800":"http:\/\/musicdata.baidu.com\/data2\/pic\/105454692\/105454692.jpg","aliasname":"","country":"内地","artist_id":"251817690","album_id":"247551805","original":0,"compress_status":"0","versions":"影视原声",
"expire":36000,"ting_uid":"239546327","artist_1000_1000":"http:\/\/b.hiphotos.baidu.com\/ting\/pic\/item\/a1ec08fa513d269770633a5257fbb2fb4316d808.jpg","all_artist_id":"251817690","artist_640_1136":"http:\/\/musicdata.baidu.com\/data2\/pic\/105454694\/105454694.jpg","publishtime":"2015-10-02","charge":0,"copy_type":"0","songwriting":"","share_url":"http:\/\/music.baidu.com\/song\/251817888","author":"罗凯楠","has_mv_mobile":0,"all_rate":"64,128,192,256,320,flac","pic_small":"http:\/\/musicdata.baidu.com\/data2\/pic\/255805397\/255805397.jpg","album_no":"2","song_id":"251817888","is_charge":"0"}}
依然是一个列表,我们来找下其中的歌曲链接:show_link和file_link,注意我们需要取得是file_link,你可以试一下show_link,会提示401拒绝访问,原因你就不用管了!再往下看,字段songinfo下则包含的是歌曲的一些信息,其中对我们有用的两个字段:share_url分享url打开链接如图:
歌词:lrclink;
海报:pic_huge;
其他字段就自己发掘吧~
好了,说了这么多demo何在?别急,先看效果图:
当然,这个也会有失效的可能,到时来一句偶滴老嘎,继续抓包呗!
EcDemo下载地址:http://download.csdn.net/detail/baiyuliang2013/9530532
音乐API的更多相关文章
- 百度音乐API抓取
百度音乐API抓取 前段时间做了一个本地音乐的播放器 github地址,想实现在线播放的功能,于是到处寻找API,很遗憾,不是歌曲不全就是质量不高.在网上发现这么一个APIMRASONG博客,有“获取 ...
- 【QQ音乐Api】移花接木 打造自己的音乐电台
最近突发奇想想做个在线音乐小网页.需求很简单,如下 搜索歌曲 或 歌手 在线播放音乐 借用qq 或者 百度的 音乐接口 需求明确那就直接动手了 我首先尝试的百度音乐,但是不能在线播放(提示forbid ...
- 在线音乐API的研究 (Part 2.1)
本文转载于:http://www.cnblogs.com/osmondy/p/LyricApi.html 最近,在优化一个自己写的音乐播放器.主要目的是回顾.归纳,并希望能够写出一个属于自己的comm ...
- 网易音乐API
本次分析的是网易音乐API 歌曲搜索API:http://music.163.com/api/search/get/web?csrf_token= 需要用POST来获取 参数: Referer=htt ...
- QQ音乐API
今天分享的是QQ音乐API 搜索歌曲API:http://s.music.qq.com/fcgi-bin/music_search_new_platform?t=0& amp;n={2}&am ...
- 酷我音乐API
今天把酷我音乐API分享给大家: 歌曲搜索API:http://search.kuwo.cn/r.s?all={0}&ft=music& itemset=web_2013&cl ...
- 最新百度音乐api
一直都想做网络音乐播放器,但是自己又没有服务器,根本就不能实现,也没那个能力实现.唯一的办法就是借助别人的API. 网上公布的API特别少,像能够直接得到音乐文件的真是地址的几乎没有,有的也只是截取流 ...
- 转:酷我音乐API
酷我音乐API 本次分析的是酷我音乐API 歌曲搜索API:http://search.kuwo.cn/r.s?all={0}&ft=music&itemset=web_2013&am ...
- 网易云音乐API
网易云音乐API使用 封装了一些api调用 ZZRRegion/StNetease
- [原创] 在线音乐API的研究 (Part 2.1)
最近,在优化一个自己写的音乐播放器.主要目的是回顾.归纳,并希望能够写出一个属于自己的common lib.今天,主要是关于在线音乐API的一些分析结果.此次,主要分析的是歌词.专辑部分.在线搜索音乐 ...
随机推荐
- 10-8 uva1262密码
题意:有两个图,每一列都存在的字母选作密码,就第k大的密码 思路: 找出各个位置上的密码, 假设: 第1个字母只能是{A,C,D,W}, 第2个字母只能是{B,O,P}, 第3个字母只能是{G,M,O ...
- [2017/5/28]FJ四校联考
来自FallDream的博客,未经允许,请勿转载,谢谢. 话说这一段时间算是过去了,好久好久之后终于又有联考了 没想到这次到我们学校出题,昨天才想起来,临时花一天赶了一套,我出了一个sbFFT,质量 ...
- 试说明采用双缓冲技术如何进行I/O操作
输入设备先将第一个缓冲区装满数据,在输入设备向第二个缓冲区装数据时,处理机就可以从第一个缓冲区取出数据进行处理:当一个缓冲区的数据处理完毕,若第二个缓冲区已经装满,则处理机又可以从第二个缓冲区取出数据 ...
- 智能优化算法对TSP问题的求解研究
要求: TSP 算法(Traveling Salesman Problem)是指给定 n 个城市和各个城市之间的距离,要 求确定一条经过各个城市当且仅当一次的最短路径,它是一种典型的优化组合问题,其最 ...
- c语言第四次作业
(一)改错题 输出三角形的面积和周长,输入三角形的三条边a.b.c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数):否则,输出"These sides do ...
- 取list的值
list.get(0):之类的我就不写了 我就写一个我老忘记的 Iterator it = list.iterator(); while(it.hasNext()){ Student stu = it ...
- 初识Redis系列之一:简单介绍
一:Redis是什么? Redis全称:REmote DIctionary Server(Redis) .Redis是一个由Salvatore Sanfilippo写的key-value存储系统,AN ...
- 【ASP.NET Core】给中间件传参数的方法
最近博客更新频率慢了些,原因有三: 其一,最近老周每星期六都录 ASP.NET Core 的直播,有些内容在视频里讲过,就不太想在博客里面重复.有兴趣的话可以去老周的微博看,或者去一直播,直播帐号与微 ...
- spring的事务配置方法
spring事务的配置有两种方式 1.xml配置的声明式事务配置 (1)配置数据源信息dataSource(使用阿里的数据源) <bean id="dataSource" c ...
- centos 6安装opencv
昨天装好的,今天有些细节已经记不起来里,大致写一下吧. 首先,从opencv官网下载linux的opencv-2.4.9安装包,下载地址:http://jaist.dl.sourceforge.net ...