Każdy “poważny” serwis w dzisiejszych czasach posiada swoje API czyli interfejs programistyczny. Nie inaczej jest z last.fm. Ten popularny serwis muzyczny posiada bardzo rozbudowane API umożliwiające między innymi:
- pobranie listy ostatnio odtwarzanych utworów przez określonego użytkownika
- pobranie informacji o wykonawcy, albumie czy wydarzeniu w określonej lokalizacji
- dodanie utworu, albumu czy wykonawcy do własnej biblioteki lub listy odtwarzania
- wysyłanie informacji o odtwarzanych utworach do serwisu (scrobbling)
Możliwości jest dużo więcej, cała dokumentacja dostępna pod adresem http://www.lastfm.pl/api/intro
Pierwszym krokiem do korzystania z API (prócz oczywiście samej rejestracji i zalogowania się w serwisie) jest pozyskanie odpowiedniego klucza. Należy przejść na stronę http://www.lastfm.pl/api/account , gdzie trzeba określić formę naszej aplikacji (zwykle jest to pierwsza opcja “Non-commercial Use” – czyli aplikacja do użytku niekomercyjnego) a także jej nazwę oraz krótki opis.
Po wysłaniu formularza od razu dostaniemy dwa klucze opisane jako API Key oraz secret.
W kolejnym kroku pobieramy potrzebne biblioteki z zakładki downloads (http://www.last.fm/api/downloads), gdzie znajdują się interfejsy do większości popularnych języków programowania. W przypadku Pythona należu pobrać i zainstalować moduł pyLast (http://code.google.com/p/pylast/), który znajduje się w repozytorium svn. Jeżeli pracujemy pod Linuksem wystarczy (jeśli mamy zainstalowanego klienta svn) wydać komendę:
svn checkout http://pylast.googlecode.com/svn/trunk/ pylast-read-only
a następnie zainstalować ją odpowiednią dla dystrybucji komendą, np.
sudo python setup.py install
W przypadku Windows można do pobrania kodu użyć klienta Tortoise SVN lub po prostu pobrać pliki pylast.py i setup.py z repozytorium i zainstalować komendą
python setup.py install
Teraz przetestujemy instalację, początek każdego połączenia będzie identyczny:
import pylast
API_KEY = 'tu Twój API KEY'
API_SECRET = 'tu Twoje hasło'
username = 'tu nazwa Twojego użytkownika'
password_hash = pylast.md5('tu hasło Twojego użytkownika')
network = pylast.get_lastfm_network(api_key = API_KEY, api_secret = API_SECRET, username = username, password_hash = password_hash)</code>
Utworzony obiekt network posłuży nam do pobierania odpowiednich obiektów zawierających informacje o artystach, albumach czy utworach, a także do wysyłania poleceń do serwisu.
aby teraz pobrać informację o artyście piszemy:
artist = network.get_artist('Iron Maiden')
Teraz pobierzemy listę najpopularniejszych utworów:
tracks=artist.get_top_tracks()
I wyświetlamy pierwsze 10:
i=0 for track in tracks: print track.item.title i += 1 if i == 10: break;
Run To The Hills
The Number of the Beast
The Trooper
2 Minutes to Midnight
Aces High
Fear of the Dark
Hallowed Be Thy Name
Wasted Years
Can I Play With Madness
The Evil That Men Do
w podobny sposób możemy pobrać listę tagów:
tags=artist.get_top_tags() i=0 for tag in tags: print tag.item.name i += 1 if i == 10: break;
heavy metal
metal
NWOBHM
hard rock
rock
Power metal
british
classic rock
Iron Maiden
New Wave of British Heavy Metal
Oczywiście można także bezpośrednio pobrać informację o określonym utworze:
track = network.get_track("Iron Maiden", "Rime of the ancient mariner")
i wysłać informacje o “polubieniu go”:
track.love()
Pobranie informacji o albumie i jego utworach jest analogiczne, z tym że utwory albumu pobrane za pomocą metody get_tracks są w postaci listy:
album = network.get_album('Amorphis','Eclipse')
print album.get_tracks()
[Amorphis - Two Moons, Amorphis - House Of Sleep, Amorphis - Leaves Scar, Amorphis - Born From Fire, Amorphis - Under A Soil And Black Stone, Amorphis - Perkele (The God of Fire), Amorphis - The Smoke, Amorphis - Same Flesh, Amorphis - Brothers moon, Amorphis - Empty Opening, Amorphis - Stonewomen (Bonus Track)]
podobnie proste jest otagowanie albumu i pobranie listy tagów:
album.add_tags('progressive metal')
album.get_tags()
[metal, Progressive metal]
Jak widać API jest bardzo proste i przyjemne w użyciu, jedynym problemem może być dokumentacja, w takim przypadku bardzo pomagają polecenia dir oraz help.
Komentarze
Dodaj komentarz Trackback