zoukankan      html  css  js  c++  java
  • 百度MP3音乐API接口及应用

    当你在百度去搜索一首歌时,你会发现有种更简单的方法。

    http://box.zhangmen.baidu.com/x?op=12&count=1&title=歌名$$作者$$$$

    例如:

    http://box.zhangmen.baidu.com/x?op=12&count=1&title=传奇$$李健$$$$

    百度返回一个XML:

    <result>
    <count>1</count>
    <url>
    <encode>
    <![CDATA[
    http://zhangmenshiting.baidu.com/data2/music/51574053/ZmNoa2lmbGtfn6NndK6ap5WXcG1sl2qZYmtml2abcG6Tl5mVZ5dobpRpaWVlm5yak5WZl25tcGpiZZZnmJudaZNpY1qin5t1YWBraGtmb3BqamtlamlpbTE$
    ]]>
    </encode>
    <decode>
    <![CDATA[
    51574053.mp3?xcode=97a3a193c1e96befa2a16c7610eebbcfc979213c3cef1b70&mid=0.84608898815325
    ]]>
    </decode>
    <type>8</type>
    <lrcid>170260</lrcid>
    <flag>1</flag>
    </url>
    <durl>
    <encode>
    <![CDATA[
    http://zhangmenshiting2.baidu.com/data2/music/121014239/YmRkZGZqaWtqYKCkaHWvm6CWmHFubZhrkmNsZ5hnnHFnlJiaZmpubGFrbGRlZmtpkmNoa2lmbWljlmZmZmmZb2NrZmxbo6CcbmJhbGlsZ3Bpa2tsZmtqamYy
    ]]>
    </encode>
    <decode>
    <![CDATA[
    121014239.mp3?xcode=97a3a193c1e96bef147409900041a15740612d3213b72938&mid=0.84608898815325
    ]]>
    </decode>
    <type>8</type>
    <lrcid>170260</lrcid>
    <flag>1</flag>
    </durl>
    <p2p>
    <hash>218ad872a73061cfb5e4f40a6583f4ca98e739a4</hash>
    <url>
    <![CDATA[ ]]>
    </url>
    <type>mp3</type>
    <size>7173146</size>
    <bitrate>192</bitrate>
    </p2p>
    </result>

    count :1代表查找成功且返回结果 0代表失败

    url与durl分别对应不同质量的音频文件下载地址。

    一下针对url里的内容分析,durl一样。

    encode里的值是歌曲加密后的地址,加密只是对文件名加密的,我们需要的只是前面的路径,也就是 http://zhangmenshiting.baidu.com/data2/music/51574053/ 这部分,

    然后复制decode 的值: 51574053.mp3?xcode=9baace62869d2dba935993ec0dabf034c979213c3cef1b70&mid=0.19874044629948 

    与前面的相拼就是正确的下载地址: 
    http://zhangmenshiting.baidu.com/data2/music/51574053/51574053.mp3?xcode=9baace62869d2dba935993ec0dabf034c979213c3cef1b70&mid=0.19874044629948

    http://zhangmenshiting.baidu.com/data2/music/51574053/51574053.mp3 不加参数则提示登录。

    lrcid这个的值是百度服务器上这首歌的歌词文件的文件名,这个文件的路径是:http://box.zhangmen.baidu.com/bdlrc/1702/170260.lrc 


    这个地址解释下: 
    http://box.zhangmen.baidu.com/bdlrc/ 这个是百度lrc歌词存放地址。后面的1702是一个的不定的数,也就是说歌曲不同那个目录名也不同,它的算法是拿歌词文件名(也就是上面说的170260) 除以一百,然后取小于等于其结果的最大整数,如上面的:170260/100 =1702.60 取小于等于1702.60 的最大整数就是1702,于是这首歌完整的歌词地址就出来了:http://box.zhangmen.baidu.com/bdlrc/1702/170260.lrc



    Keep it simple!
    作者:N3verL4nd
    知识共享,欢迎转载。
  • 相关阅读:
    如何检索某个字段在sqlserver中的哪个些存储过程中?很简单的SQL语句。
    如何去掉HTML代码来获取纯文本?
    ajax实现跨域请求
    ajax实现跨域提交
    lab3
    Lab2
    hw2
    Homework1
    Lab1
    CS61B_学习计划和进程
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5834705.html
Copyright © 2011-2022 走看看