Tuesday, October 18, 2005

Python, ActiveX (COM) ja iTunes

Tuli ajankohtaiseksi opetella taas uusi ohjelmointikieli, tällä kertaa Python. Mikäs siinä, tutoriaali kouraan ja opettelemaan. Hyviä aiheita opetteluprojektiksi ovat perinteisesti olleet mm. pienen webserverin teko, irc-botti ja muut tavalliset pikkuohjelmat. No, IRC-botti on sinänsä mielenkiintoinen projekti, mutta samalla voisi kokeilla jotain uuttakin...

Applen iTunes on muuten mainio softa, mutta en hirveästi tykkää sen käyttöliittymästä ja jäin kovasti kaipaamaan Winamp:ssa ollutta pluginiä, joka näytti pienessä pop-up ikkunassa vaivihkaa alkavan kappaleen nimen. Valitettavasti vastaavaa ei ole tullut vastaan iTunes:lle (tosin en ole paljon etsinytkään, eiköhän mokomia ole olemassa), joten siitä idea alkaa tekemään Pythonilla plugin iTunesiin jolla voisi ehkä tehdä jotain kivaa.

Ensimmäinen ongelma, miten käytää iTunes:ia ohjelmallisesti? Onneksi Apple on sen verran reilu, että tarjoaa julkiset API:t varsin moneen eri viritykseen omilla developer sivuillaan.

Itseasiassa homma on aika helppoa. Tarvittavien Python extensionien ja iTunes SDK:n lataamisen jälkeen tarvittiin kolme riviä koodia, ja pystyin käynistämään tai pysäyttämään iTunesissa valittuna olevan kappaleen! Ohessa pätkä koodia, jolla saadaan näkyviin tällä hetkellä soiva kappale:

import win32com.client

iTunes = win32com.client.Dispatch("iTunes.Application")
track = iTunes.CurrentTrack
print track.Artist + " - " + track.Album + " - " + track.Name

COM (ActiveX) extension for Python
iTunes COM SDK for Windows
Hacking iTunes on Windows

No comments: