引言
关于微信公众平台开发——音乐搜索的相关背景知识,大家可以参看博客(http://blog.csdn.net/zhaoyazhi2129/article/details/9194483),里面有详细介绍,本文不做赘述。网上基本是基于百度音乐,其返回的是xml格式数据。个人感觉相比json格式,xml太繁琐。另外自己一直比较偏爱网易云音乐,于是决定摸索下开发基于网易云音乐的音乐在线搜索。最后自我感觉简单多了,都不用申请神马APIkey啥的。读者可以关注zakic2015体验该功能。效果图如下:
(小技巧:搜索关键字时,可通过增加歌手名来提高搜索结果准确度,即准确度:“音乐+歌名+歌手名”>“音乐+歌名")
网易云音乐搜索API
URL:http://s.music.163.com/search/get/
获取方式:GET
参数:
src: lofter //可为空
type: 1
filterDj: true|false //可为空
s: //关键词
limit: 10 //限制返回结果数
offset: 0 //偏移
callback: //为空时返回json,反之返回jsonp callback
这里,我在处理过程中做了简化,直接令limit=1,搜索返回的json结果如下:
Python调用网易云音乐搜索API
# -*- coding: utf-8 -*-
import urllib2
import json
class NetMusic:
def query_music_info(self,word):
baseurl = r'http://s.music.163.com/search/get/?type=1&s='
qword = urllib2.quote(word)
url = baseurl + qword + r'&limit=1&offset=0'
resp = urllib2.urlopen(url)
music = json.loads(resp.read())
return music
接下来就是解析返回的json数据了,首先看下微信公众平台回复音乐信息的reply_music.xml如下:
$def with (toUser,fromUser,createTime,musicTitle,musicDes,musicURL)
$createTime
title = music['result']['songs'][0]['name']
desc = u'来自网易云音乐'
url = music['result']['songs'][0]['audio']
return self.render.reply_music(fromUser,toUser,int(time.time()),title,desc,url)
参考
http://blog.csdn.net/zhaoyazhi2129/article/details/9194483
http://mrasong.com/a/163-music-api
http://www.52pojie.cn/thread-339852-1-1.html
体验(还有很多其他功能哦)