Sadece Şarkının ismini yazıp, şarkının mp3’ünü indirmek, bunu yaparken youtube’un database’sini kullanmak çok güzel oluyor
Her Proje- Program ihtiyaçdan duyuyor. Babam’ın Müzik dinlemek istemesi; ve bunları internetten değilde mp3 aletinden dinlemek istemesi ardından. Onun için Fizy’de ve Youtube’da oluşturduğum listeleri mp3 haline dönüştürmem gerektir. Çünkü onlarca farklı sanatçının albümlerini bulmak (ki çoğu çokta popüler olmayan eserler) imkansıza yakın. Ama Youtube’da videolu şekilde çoğunun hali var. bunun için Youtube’da arama yapıp; çıkan sonuçlardan videonun Youtube linkini alıp; onuda snipmp3 sitesinden mp3’e dönüştürüp indirme süreci vardı. Görüldüğü gibi 3 adımlı bir süreç. İşte mühendislik bu 3 adımı tek adıma indirme yolunu bulmada olmalı.
Normalde Katmanlı mimari; Database – WebServisler – Server’lar gibi tanımlanabilir. Katmanlı mimari tasarımı gerçekten büyük ve zor bir iştir. Benim burada yaptığım aynı katmanda birkaç servis-uygulamayı birleştirmektir. Ve bu uygulamalar farklı server-araçlarda bulunduğu için bende projeme katmanlı bir sistem diyeceğim ama aslında gerçek katmanlı mimariyi üstte açıkladık.
Projenin ilk adımı Youtube’dan şarkıların listesini almaktır. Youtube şarkı aramasını youtube.com/results?search_query=test şeklinde yapıyor. test kısmına ne yazarsanız onu sizin için arar ve sonuçlar. Bir arama sayfasının kaynak koduna baktığınızda data-context-item-id ve data-context-item-title’nın her eser’in linki öncesinde belli bir düzende sıralandığını farkettim. Gelen HTML verisini bunlara göre parse ettim ve eser’in linki ortaya çıkardım. Elimde http://www.youtube.com/watch?v=axxaax gibi bir link oluştu.
Snipmp3 sitesi, youtube linkini alıp, java applet kullanarak o an mp3’e çevirip bilgisayara indirme imkanı sunuyor. O sitede snipmp3.com/?url=aranacakterim mantığında çalışıyor. Daha önce elde ettiğim youtube linkini buradaki url’den get ile gönderip gelen sayfayı iframe ile ekranımda gösteriyorum.
Projenin Tema’sını Fizy’den offline explorer ile aldım ve projeyi php de yazdım.
Böylece şarkının isminden direk mp3’ü indirebilecek bir proje tamamlanmış oluyor. Projede birçok adım’ı atlayıp kısaca anlattığımı farkındayım, umarım yararlı olur. Dipnot olarak bildirmeliyim: Projeyi tabi ki yasa dışı müzik indirmek gibi bir gaye ile değil; proje yapıp öğrenmek ve uygulamak için yaptım.
Projeye Geçici Bir Süre: http://www.fuyapayzeka.com/mp3 adresinden ulaşabilirsiniz.
Problemler
Yer Tesbiti; Projeyi yayımladığım server Almanya’da bulunuyor. Youtube ip aralığından kullanıcının hangi ülke’den girdiğini tespit edip arama sonuçlarını ona göre düzenliyor. Böylece almanya sınırlarından türkçe arama yapmanız çokda verimli olmuyor. Bunun için query’e türkçe-türk dil seçeneği eklenebilir
Java Applet Kullanıcı İzni: Java Applet’in çalışması için kullanıcının izin vermesi gerekiyor, bu noktada her kullanıcı buna alışık olup izin vermeyebiliyor. Bu problemin şimdilik bir çözümü yok
Sıralama: Projede Youtube listesinde ilk çıkan video’yu alıyor; ama istenilen video o olmayabilir, maalesef şimdiki seçme şansı yok; ama geliştirebilir.