MusicBrainz 没有/没有/没有 复杂的OAuth认证,直接访问即可!MusicBrainz WebAPI目前Musicbrainz提供两种WebAPI:XML Web ServiceJSON Web Service (Beta)Rate LimitingMusicBrainz 的API一般都无用户权限认证,允许任何匿名访问,直接打开浏览器访问即可。但是,如果为了增加访问限制的数量,官方建议在request请求的头部加上user-agent。参考:Rate Limiting格式如下:User-Agent: <AppName>/<version> ( contact-email )or User-Agent: <AppName>/<version> ( contact-url )etc.,User-Agent: MyAwesomeTagger/1.2.0 ( http://myawesometagger.example.com )User-Agent: MyAwesomeTagger/1.2.0 ( me@example.com )根据user-agent的种类,限制情况如下:使用python-musicbrainz/0.7.3库访问:限制50次/秒。完全匿名访问:限制50次/秒。其它访问:Source IP address:取决于访问速率,一旦过高,将被完全限制,直到速度降为到1次/秒。Global: 300次/秒。MusicBrainz XML APIMusicbrainz的WebAPI是XML格式的。目前v1版本正准备被淘汰,v2版本也很好用。参考官方:Development / XML Web Service / Version 2查询格式:http://musicbrainz.org/ws/2/<资源>/?query=<属性1>:<值> AND <属性2>:<值>&limit=<显示数>如,搜索artist:http://musicbrainz.org/ws/2/artist/?query=name:bigbang%20AND%20country:NO&limit=10如,搜索album:http://musicbrainz.org/ws/2/release/?query=name:edendale如,搜索track:http://musicbrainz.org/ws/2/recording/?query=name:pristine具体查询详细参考:Development / XML Web Service / Version 2 / Search关于XML解析Python:xmltodictlxmlxpat…经过试用,目前尚未找到能“正确”解析的工具,总是出现一些问题。MusicBrainz JSON API (Beta)参考官方:Development/JSON Web ServiceMusicbrainz提供了一个正在beta开发中的JSON API,要远方便与XML。因为XML的解析实在是太麻烦了。具体的方法是:在v2版本的API上加上一个fmt参数即可。格式为:..&fmt=json示例:http://musicbrainz.org/ws/2/artist/?query=name:bigbang&fmt=json注意:目前JSON API正在开发中,所以是unstable的。inc参数参考:inc - Development / XML Web Service / Version 2当你request API的时候,默认返回的数据很多都是不全的。MusicBrainz可以让你有选择性的增加返回的数据。需要用到的就是url里的inc参数。格式为…&inc=AAA+BBB+CCC示例:http://musicbrainz.org/ws/2/recording/?query=bigbang&inc=artist-credits+isrcs+releases&fmt=jsonscore属性在我们请求WebAPI搜索的时候,每个返回的搜索结果都会有一个score属性。这个是匹配度的值,100分,99分,65分等等。如果搜索的信息完全匹配,则为100。这个搜索算法,是Lucene引擎的算法。参考:More information on the “Score” attribute in the search of musicbrainz参考:Lucene scoring not accurateMusicBrainz Python SDK注意:目前python-musicbrainz项目是调用的v1版本API,显示的数据不是很全。参考官方Github:alastair/python-musicbrainzngs参考官方API文档:musicbrainzngs 0.6 documentation »参考官方示例:Usage安装:pip install musicbrainzngs登录:import musicbrainzngs as mb# 登录mb.auth(“用户名”, “密码”)# 随便写个app信息mb.set_useragent(“Example music app”, “0.1”, “http://example.com/music")# [可选] 指定查询服务器mb.set_hostname(“beta.musicbrainz.org”)就是这么简单,没有复杂的Oauth验证。常用操作:# 搜索一个artistartists = mb.search_artists(artist=“big bang”, type=“group”, country=“Norway”)MusicBrainz Database 数据库下载使用MusicBrainz的数据库是完全免费公开下载使用的。参考官方说明:MusicBrainz Database参考官方说明:MusicBrainz Database/Download参考官方说明:MusicBrainz Database / SchemaMusicBrainz数据库结构图(关系型):使用方法有很多种:Virtual Machine 虚拟机JSON文件Postgresql数据库安装Postgresql数据库参考官方:Database Installation下载数据库的方式有http、ftp、rsync等,其中最方便的是http。下载地址一般为:http://ftp.musicbrainz.org/pu…要查看最新日期为什么,可以直接到http://ftp.musicbrainz.org/pub/musicbrainz/data/fullexport查看下面的子目录有哪些。Postgresql数据库下载使用:# 下载最新日期的数据库文件 “mbdump.tar.bz2” 大约2.7GBwget http://ftp.eu.metabrainz.org/pub/musicbrainz/data/fullexport/20181205-001547/mbdump.tar.bz2tar -xjvf mbdump.tar.bz2cd mbdump/mkdir ../finished# 创建空数据库createdb -U postgres –owner=postgres –encoding=UNICODE db_musicbrainz# 登录数据库psql -U postgres db_musicbrainz\i admin/sql/CreateTables.sqlBEGIN\q# 导入数据for FILE in * ; do cmd=”\copy $FILE from ./$FILE" echo $cmd | psql -U postgres db_musicbrainz && mv $FILE ../finished/done echo date Donecd ..