百度flac

449 阅读1分钟

操作来自github的一个下载flac的py程序

NeteaseCloudMusicFlac

总共分两步

  1. 根据歌名获取id
  2. 根据id获取下载路径

第一步:

BAIDU_SUGGESTION_API = 'http://sug.music.baidu.com/info/suggestion'
payload = {'word': value, 'version': '2', 'from': '0'}
value = value.replace('\\xa0', ' ')  # windows cmd 的编码问题
logger.info(value)

r = requests.get(BAIDU_SUGGESTION_API, params=payload)

以周杰伦-告白气球为例,结果为:



第二步,根据id获取下载地址:

def get_song_info(songid):
    BAIDU_MUSIC_API = "http://music.baidu.com/data/music/fmlink"
    payload = {'songIds': songid, 'type': 'flac'}
    r = requests.get(BAIDU_MUSIC_API, params=payload)
    contents = r.text
    return json.loads(contents, encoding="utf-8")

结果:


其中:

songlink = d["data"]["songList"][0]["songLink"]

songLink":"http:\/\/zhangmenshiting.qianqian.com\/data2\/music\/00124b91d7bdfe460e5fed9447fc622d\/596586822\/266322598252000937.flac?xcode=5f56be4baa6a2dbdb74cd3784244547c"

去掉\,得到

songLink":"http://zhangmenshiting.qianqian.com/data2/music/00124b91d7bdfe460e5fed9447fc622d/596586822/266322598252000937.flac?xcode=5f56be4baa6a2dbdb74cd3784244547c"