Tuesday, December 13, 2011

Radyo Projesi ve Last.fm API

Yaklaşık 1 yıl önce, vaktimi staj ararken firmaların dikkatini yaptığımız projelerle çekebileceğimiz ve bu projelerin bizi bir adım öne çıkaracağını dinleyerek geçirdim. Hatta kimi akademisyen hocalarımıza bu durumdan rahatsız olduğumu belirttim. Onlarda bugün git yarın gel edasında bilgi yetersizliğimiz nedeniyle bu durumun olağan olduğu kanısındaydılar. Yazın bir araya geldiğim 2 arkadaşımla beraber hiç bir fikrimiz olmadan web üzerinden ufak bir radyo yayını yapan bir site üzerinde kafa yorduk. Epeyce konuştuk, tartıştık. Öncelikle yapacağımız radyo webte olanlardan farklı olmalıydı onlarda olmayan bir takım farklı özelliklerle yayına başlamalıydık. Hatta bunun yanı sıra bugün hala bir çok radyo yayını yapan web sitelerindeki eksikliklerden olan çalan parçayı anında görme, geçmişte çalınan parçalara göz atma, ya da dinlediğimiz parçanın sözlerini aynı web sayfası içinde görememe bizi düşündüren problemlerin başında geliyordu. Yaklaşık 3-4 ay sonunda ufak bir prototip çıkardık ortaya henüz test aşamasından geçmedi. Ancak bu noktada asıl bahsetmek istediğim şey yukarıdaki sorunlarımızın hepsine last.fm API'si kullanarak çözüm bulabildiğimiz gerçeğiydi. Projeye başlamadan önce gerekli olacak tüm verilerin tarafımızdan sağlanması gerektiğini düşünüyordum. Ancak projede epey vakit harcadıktan sonra aslında webte hali hazıra bulunan API'leri kullanmanın daha faydalı olduğunu gördüm. API kullanmak yararlı olduğu kadar işlerimizi daha kolay ve hızlı halletmemizi de sağlıyor. Kısaca last.fm API'sinden bahsetmek gerekirse içerisinde Album, Artist, Track... ve bunun gibi birçok sınıf(class) barındırıyor, her sınıfın ise kendine özgü metodları(methods) var. Bu metodları kullanarak parçaya ait XML'e ulaşabiliyorsunuz. Ulaştığınız XML dosyasından ise işinize yarayan bilgiyi rahatlıkla çekebiliyorsunuz. Bugün salt PHP kullanarak yaptığım veri çekme işleminin pek verimli olduğunu düşünmüyorum. PHP'ye özgü, özellikle XML'den veri çekmek için hazırlanmış pek çok kütüphane var. Yakın zamanda bunları kullanıp güzel bir XML ayrıştırıcı yazmayı planlıyorum. Yazdığım vakit, kodları sayfaya koyarım. Takipçilere iyi günler.