Ich werde es an Qiita senden und denke, dass es Leute gibt, die mit solchen APIs umgehen. Es ist ein technischer Blog. Wenn es also verwandt ist, können Sie alles schreiben. Für das heutige Abendessen gibt es hier nichts anderes zu erwähnen.
Sie kennen iTunes wahrscheinlich nicht unter denen, die iPod oder iPhone verwenden, aber diese Gracenote-API wird beim Einlegen einer CD und beim Markieren von Songs verwendet. Alle Arten von Liedern von der Antike bis nach Ost und West sind registriert, und besonders in Japan werden Doujin-Musik- und Drama-CDs mit Eroge-Reservierungsvorteilen anerkannt. Wer ist registriert? Wirklich ... (Dieses Land ist schon ...)
Es ist eine hervorragende API, aber iTunes verfügt über ein GNSDK, das alles kann (C-Sprache). Die Web-API ist eine vereinfachte Version, gibt jedoch recht detaillierte Inhalte zurück. Wenn Sie XML auslösen, wird es in XML zurückgegeben. (Ich persönlich bevorzuge JSON, aber) Ich habe einen Wrapper, also ist es ziemlich gut.
Ich bin Pythonista, also benutze ich nur Pygn. (Ich mag Python am meisten, aber ich interessiere mich auch für C # und Node.js, also könnte ich es posten, wenn ich Zeit habe ...) Bitte registrieren Sie sich im Voraus bei Gracenote, um die Cliant-ID und die Benutzer-ID zu erhalten.
Ich werde in einem Super-Flow schreiben. Es ist nicht das Hauptthema von heute.
test.py
import pygn, json
clientID = 'XXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
userID = 'XXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
def beautiful(gn_obj):
data = json.dumps(gn_obj, sort_keys=True, indent=4, ensure_ascii=False)
return data
res = beautiful(pygn.search(clientID=clientID, userID=userID, album='Oh! Rivale', artist='Porno Graffiti'))
print(res)
Speichern Sie es als ./test.py> res.json
.
Ich habe gerade dafür gesorgt, dass pygn \ <LANG > ja \ </ LANG > entspricht. Dies ist eine Patch-Datei.
pygn.patch
--- /home/hoge/Download/pygn-master/pygn.py 2015-05-15 17:06:08.436636117 +0900
+++ /usr/local/lib/python3.4/dist-packages/pygn.py 2015-05-15 04:04:38.551710764 +0900
@@ -7,6 +7,8 @@
You will need a Gracenote Client ID to use this module. Please contact
[email protected] to get one.
+
+<LANG>Optionale Version
"""
from __future__ import print_function
@@ -100,7 +102,8 @@
# Added by Fabian in order to cover the Rhythm API
# Returns a list of gnmetadata dictionaries
-def createRadio(clientID='', userID='', artist='', track='', mood='', era='', genre='', popularity ='', similarity = '', count='10'):
+def createRadio(clientID='', userID='', lang='', artist='', track='', mood='', era='', genre='',
+ popularity ='', similarity = '', count='10'):
"""
Queries a Radio playlist
"""
@@ -117,6 +120,7 @@
# Build the user header
query.addAuth(clientID, userID)
+ query.addLang(lang)
query.addQuery('RADIO_CREATE')
@@ -228,7 +232,7 @@
#***********************************************************************************************************************
-def search(clientID='', userID='', artist='', album='', track='', toc=''):
+def search(clientID='', userID='',lang='', artist='', album='', track='', toc=''):
"""
Queries the Gracenote service for a track, album, artist, or TOC
@@ -247,6 +251,7 @@
query = _gnquery()
query.addAuth(clientID, userID)
+ query.addLang(lang)
if (toc != ''):
query.addQuery('ALBUM_TOC')
@@ -432,7 +437,7 @@
-def get_discography(clientID='', userID='', artist='', rangeStart=1, rangeEnd=10):
+def get_discography(clientID='', userID='', lang='', artist='', rangeStart=1, rangeEnd=10):
"""
Queries the Gracenote service for all albums containing an artist
"""
@@ -449,6 +454,7 @@
query = _gnquery()
query.addAuth(clientID, userID)
+ query.addLang(lang)
query.addQuery('ALBUM_SEARCH')
query.addQueryTextField('ARTIST', artist)
query.addQueryOption('SELECT_EXTENDED', 'COVER,REVIEW,ARTIST_BIOGRAPHY,ARTIST_IMAGE,ARTIST_OET,MOOD,TEMPO')
@@ -534,7 +540,7 @@
return discography
-def fetch(clientID='', userID='', GNID=''):
+def fetch(clientID='', userID='', GNID='', lang=''):
"""
Fetches a track or album by GN ID
"""
@@ -551,6 +557,7 @@
query = _gnquery()
query.addAuth(clientID, userID)
+ query.addLang(lang)
query.addQuery('ALBUM_FETCH')
query.addQueryGNID(GNID)
query.addQueryOption('SELECT_EXTENDED', 'COVER,REVIEW,ARTIST_BIOGRAPHY,ARTIST_IMAGE,ARTIST_OET,MOOD,TEMPO')
@@ -721,6 +728,10 @@
client.text = clientID
user.text = userID
+ def addLang(self, language):
+ lang = xml.etree.ElementTree.SubElement(self.root, 'LANG')
+ lang.text = language
+
def addQuery(self, cmd):
query = xml.etree.ElementTree.SubElement(self.root, 'QUERY')
query.attrib['CMD'] = cmd
Dadurch wird jedem Parameter eine lang-Option hinzugefügt.
Im vorherigen Beispiel ...
res = beautiful(pygn.search(clientID=clientID, userID=userID, lang='ja' album='Oh! Rivale', artist='Porno Graffiti'))
Es ist wie es ist. Selbst wenn es auf Japanisch zurückkommt, wird die Stimmung und so weiter nur auf Japanisch sein ... Das Einfügen von Registerkarten funktioniert nicht, daher denke ich, dass es wahrscheinlich nicht funktioniert. In diesem Fall bitte von Hand hinzufügen.
Recommended Posts