一直都想做网络音乐播放器,但是自己又没有服务器,根本就不能实现,也没那个能力实现。唯一的办法就是借助别人的API。

网上公布的API特别少,像能够直接得到音乐文件的真是地址的几乎没有,有的也只是截取流量看到的。希望做音乐的大公司能够通过开放平台共享一些API。

方法一.http://box.zhangmen.baidu.com/x?op=12&count=1&title=song$$

这个地址是最常用的,将song改为想要的歌名就可以得到歌曲的地址信息集,返回的是XML文件,得到的地址要应该解析才能用

<url>
<encode>
<![CDATA[
http://zhangmenshiting.baidu.com/data2/music/29969688/Y2tsam5sb3Bfn6NndK6ap5WXcJeXm2hok2tlmWqcbGxlk5eabppncJdjlmeXm5ueZpVpZGVpbGmWlWmYbJppbWpma1qin5t1YWBmbW1ra2tkaWdlamlnbTE$
]]>
</encode>
<decode>
<![CDATA[
29969688.mp3?xcode=cbe10b92e5f544adf9d08f1c3bedf5c600351ec6d7d25948&mid=0.39854337415305
]]>
</decode>
<type>8</type>
<lrcid>0</lrcid>
<flag>0</flag>
</url>

解析方法:XmlDocument类,下面是关键代码,URL为真实地址

            XmlDocument xml = new XmlDocument();
xml.LoadXml(info);//info就是xml内容 foreach (XmlElement item in xml.DocumentElement.ChildNodes)
{
if (item.InnerText == "0")
return null;
string deurl, enurl, lrc;
if (item.Name == "url")
{
deurl = item.SelectSingleNode("encode").InnerText;
enurl = item.SelectSingleNode("decode").InnerText;
lrc = item.SelectSingleNode("lrcid").InnerText;
if (lrc == "0")
{
lrc = "暂无歌词";
}
else
{
lrc = strLrcPath + (Int32.Parse(lrc) / 100).ToString() + "/" + lrc + ".lrc";
}
int id = deurl.LastIndexOf('/');
string URL=deurl.Substring(0, id + 1) + enurl;
}
}

  

方法二.http://sug.music.baidu.com/info/suggestion?format=json&version=2&from=0&word=song&_=1405404358299

将song改为歌名,可得到歌曲的基本信息集(歌曲的id,名称,演唱)

{"data":{"song":[{"songid":"293547","songname":"\u4e0d\u5f97\u4e0d\u7231","artistname":"\u6f58\u73ae\u67cf,\u5f26\u5b50"},{"songid":"7315028","songname":"\u4e0d\u5f97\u4e0d\u7231","artistname":"\u5f26\u5b50,\u6f58\u73ae\u67cf"},{"songid":"2119510","songname":"\u4e0d\u5f97\u4e0d\u7231","artistname":"\u5f26\u5b50"},{"songid":"7332815","songname":"\u4e0d\u5f97\u4e0d\u7231","artistname":"\u60c5\u6b4c\u4f34\u4fa3"},{"songid":"274710","songname":"\u4e0d\u5f97\u4e0d\u7231","artistname":"\u5f6d\u4f73\u6167"},{"songid":"1204608","songname":"\u4e0d\u5f97\u4e0d\u7231","artistname":"\u502a\u96c5\u4e30"},{"songid":"59942403","songname":"\u4e0d\u5f97\u4e0d\u7231","artistname":"\u7fa4\u661f"},{"songid":"84940143","songname":"\u4e0d\u5f97\u4e0d\u7231","artistname":"\u8bb8\u5d69,Britney Spears"},{"songid":"1288459","songname":"\u4e0d\u5f97\u4e0d\u7231_\u6f58\u73ae\u67cf","artistname":"\u821e\u66f2\u5927\u9605\u5175"},{"songid":"64773595","songname":"\u4e0d\u5f97\u4e0d\u7231dj - \u6f58\u73ae\u67cfvs\u5f26\u5b50 mcyy mix","artistname":"MCyy"}],"artist":[],"album":[{"albumid":"83672939","albumname":"\u4e0d\u5f97\u4e0d\u7231","artistname":"\u6587\u6587\u4e50\u9053","artistpic":"http:\/\/a.hiphotos.baidu.com\/ting\/pic\/item\/f3d3572c11dfa9ec81637f0c60d0f703918fc15f.jpg"}]},"Pro":["song","album"]}

解析方法:利用Newtonsoft.Json

得到了歌曲的id之后,使用http://ting.baidu.com/data/music/links?songIds=mid&format=json,将mid改为歌曲的id就可以查询详细信息,songLink就是歌曲的真实地址

{"errorCode":22000,
"data":{"xcode":"c91c710aab6c9acd577895e58b3b93ef",
"songList":
[{"queryId":"293547","songId":293547,"songName":"\u4e0d\u5f97\u4e0d\u7231",
"artistId":"6113,1427","artistName":"\u6f58\u73ae\u67cf,\u5f26\u5b50",
"albumId":2452656,"albumName":"Will\u0027S \u672a\u6765\u5f0f",
"songPicSmall":"http:\/\/c.hiphotos.baidu.com\/ting\/pic\/item\/http:\/\/qukufile2.qianqian.com\/data2\/pic\/115458867\/115458867.jpg.jpg",
"songPicBig":"http:\/\/c.hiphotos.baidu.com\/ting\/pic\/item\/http:\/\/qukufile2.qianqian.com\/data2\/pic\/115458852\/115458852.jpg.jpg",
"songPicRadio":"http:\/\/c.hiphotos.baidu.com\/ting\/pic\/item\/http:\/\/qukufile2.qianqian.com\/data2\/pic\/115458827\/115458827.jpg.jpg",
"lrcLink":"\/data2\/lrc\/13802189\/13802189.lrc","version":"","copyType":1,"time":279,"linkCode":22000,
"songLink":"http:\/\/zhangmenshiting.baidu.com\/data2\/music\/42825245\/2935471405447261.mp3?xcode=c91c710aab6c9acd795318c09ac1e37e069471290618b128",
"showLink":"http:\/\/zhangmenshiting.baidu.com\/data2\/music\/42825245\/2935471405447261.mp3?xcode=c91c710aab6c9acd795318c09ac1e37e069471290618b128",
"format":"mp3","rate":128,"size":4471745,"relateStatus":"0","resourceType":"0"}]}}

方法三(测试无效):

http://mp3.baidu.com/dev/api/?tn=getinfo&ct=0&ie=utf-8&word=song&format=json

这个地址之前可以用,但后来返回的内容老是为空

http://play.baidu.com/data/music/songinfo

这个地址需要以POST方式提交,Data为songIds=mid  (mid是歌曲id)

http://play.baidu.com/data/music/songlink 
这个地址需要以POST方式提交,Data为songIds=mid&hq=1&type=m4a%2Cmp3&rate=&pt=0&flag=-1&s2p=-1&prerate=-1&bwt=-1&dur=-1&bat=-1&bp=-1&pos=-1&auto=-1    (mid是歌曲id)

关于使用音乐api,请参考本文,由于这些api没有发布,所以可能某天就失效了,我会随时更新这个api

请勿转载

最新百度音乐api的更多相关文章

  1. 百度音乐API抓取

    百度音乐API抓取 前段时间做了一个本地音乐的播放器 github地址,想实现在线播放的功能,于是到处寻找API,很遗憾,不是歌曲不全就是质量不高.在网上发现这么一个APIMRASONG博客,有“获取 ...

  2. 百度音乐api

    百度音乐全接口 会利用使用接口找歌简单又快捷 http://tingapi.ting.baidu.com/v1/restserver/ting 获取方式:GET 参数:format=json或xml& ...

  3. 抓包获取百度音乐API

    这次抓包是获取手机APP中的数据包,共分为三个部分: 1.win7建立wifi 2.PC架设代理服务器 手机设置代理 3.抓包分析 一.win7建立wifi 在win7下搭建wifi非常简单,网上的教 ...

  4. 【QQ音乐Api】移花接木 打造自己的音乐电台

    最近突发奇想想做个在线音乐小网页.需求很简单,如下 搜索歌曲 或 歌手 在线播放音乐 借用qq 或者 百度的 音乐接口 需求明确那就直接动手了 我首先尝试的百度音乐,但是不能在线播放(提示forbid ...

  5. 最新百度地图支持Fragment(注意事项)(转)

    原文: 最新百度地图支持Fragment(注意事项)   开篇:老的百度地图通常都要继承MapActivity,这样不利于代码的可扩展性,再加上Fragment的流行,老的百度地图已经远远不能满足的大 ...

  6. 如何使用百度音乐搜索接口API

    百度有开放音乐搜索的api 比如: http://box.zhangmen.baidu.com/x?op=12&count=1&title=大约在冬季$$齐秦$$$$ http://b ...

  7. 百度音乐搜索API介绍

    百度音乐搜索API的请求地址如下: [html] view plaincopy http://box.zhangmen.baidu.com/x?op=12&count=1&title= ...

  8. 百度音乐接口api

    百度音乐接口   百度音乐全接口 http://tingapi.ting.baidu.com/v1/restserver/ting 请求方式:GET 参数处理:format=json&calb ...

  9. 在线音乐API的研究 (Part 2.1)

    本文转载于:http://www.cnblogs.com/osmondy/p/LyricApi.html 最近,在优化一个自己写的音乐播放器.主要目的是回顾.归纳,并希望能够写出一个属于自己的comm ...

随机推荐

  1. 三种主流的WebService实现方案(REST/SOAP/XML-RPC)简述及比较

    目前知道的三种主流的Web服务实现方案为:REST:表象化状态转变 (软件架构风格)SOAP:简单对象访问协议 XML-RPC:远程过程调用协议 简单介绍: REST:表征状态转移(Represent ...

  2. springmvc的3中路径风格

    1.导入相应的jar包,文件放置情况 2.web.xml <?xml version="1.0" encoding="UTF-8"?> <we ...

  3. POJ 2112 Optimal Milking 【网络流】【二分】【最短路】

    题意: k c m 分别代表挤奶机数量,牛数量,和挤奶机容量. 接下来(n=k+c)n*n的矩阵A,代表挤奶机或者牛的距离,如果对角线都为0,如果非对角线没有直接路相连也为0. 1 <= K & ...

  4. Sqoop导数据出现的问题

    sqoop导数据卡住在INFO mapreduce.Job: Running job: job_1447835049223_0010 查yarn日志全是: INFO org.apache.hadoop ...

  5. 【转】nginx配置location总结及rewrite规则写法

    原文:http://seanlook.com/2015/05/17/nginx-location-rewrite/ 1. location正则写法 location = / { # 精确匹配 / ,主 ...

  6. Nginx 内置全局变量

    Nginx在使用过程中,有不少的内置全局变量可以用做条件判断和编程控制,本文总结一些已知的指令,以供参考. $arg_PARAMETER  这个变量包含在查询字符串时GET请求PARAMETER的值. ...

  7. ASP.Net软件工程师基础(一)

    本人目前是一名有1年左右ASP.Net开发经验的的软件开发工程师,目前公司用的是MVC+EF+...做的网站.写这套总结性系列文章的目的有两个:一是帮助自己总结一下自己到底有多少斤两,而不是一味的学新 ...

  8. 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)

    算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification) 0.写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比 ...

  9. Mysql 自动增长 重置

    重置 MySQL 自增列 AUTO_INCREMENT 初时值 注意, 使用以下任意方法都会将现有数据删除. 方法一: delete from tb1; ALTER TABLE tbl AUTO_IN ...

  10. SDUT 3344 数据结构实验之二叉树五:层序遍历

    数据结构实验之二叉树五:层序遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 已知一个按 ...