9 Şubat 2008 Cumartesi

Youtube Downloader C# Kaynak Kodu ve Programı

YouTube resmi olarak videoların indirilmesine olanak vermese de çeşitli yollardan videoyu bilgisayarınıza kaydedebilirsiniz. Ben de bu kervana katılarak biraz araştırma yaptım ve şu sonuca ulaştım.

Diyelim ki youtube linkimiz şu olsun:
http://www.youtube.com/watch?v=Y8FDHASfnGM

Videonun bulunduğu youtube linkini flashget gibi bir programla indirip sayfanın kaynak kodunu incelediğimizde karşımızda şöyle bir kod parçacığı görülebilir:

var swfArgs = {"e": "h", "sourceid": "y", "video_id": "Y8FDHASfnGM", "l": 245, "sk": "hKFaUYE3pk5fS2U5jC2t_gU", "t": "OEgsToPDskLWYeQ6SMn1GDItowKg2F-f", "hl": "en", "plid": "AARFsZaHqHSrKNdwAAAAoAQMYAA", "sdetail": "p%3A"};

Bu kodu biraz daha açarsak:

video_id:Y8FDHASfnGM
l:245
t:OEgsToPDskLWYeQ6SMn1GDItowKg2F-f


Dolayısıyla video download linkimiz de şu oluyor:
http://youtube.com/get_video?video_id=Y8FDHASfnGM&l=245&t=OEgsToPDskLWYeQ6SMn1GDItowKg2F-f

Programımız da tamamen burda anlatılan mantığa göre çalışıyor. Yani ilk önce videonun bulunduğu sayfanın kaynak kodları string türünde bir değişkene yükleniyor. Daha sonra içinden çeşitli string işleme yöntemleriyle video linki oluşturuluyor.




Programın ekran görüntüsü:

Kullanılabilir Program için TIKLAYIN
Kaynak Kodları için TIKLAYIN

Not: Proje Visual Studio 2008 ortamında hazırlandı.

Evet gerisi size kalmış arkadaşlar. Programı indirip inceleyerek mantığını öğrenebilirsiniz.

C# ile Windows Live Messenger için Add-in (Eklenti) Yazmak

MSN Messenger programı bilgisayara ilk kurulduğunda add-ins özelliği kapalı olarak gelir. Bunu açmak için ilk etapta şu işlemleri yapmamız gerekir. Daha sonra da add-ins yazma işlemine geçelim.

1. Başlat -> Çalıştır -> regedit komutunu girin.
2. Ekrana gelen Registry Editöründe HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger kısmına gelin ve AddInFeatureEnabled adında bir DWORD anahtarı ekleyin. Daha sonra bu anahtara 1 değerini verin.
3. Bu işlemlerden sonra yazdığımız add-ins "i messengerde kullanabileceğiz.
Şimdi Add-Ins yazma işlemimize geçelim.

o İlk etapta Visual Studio 'da bir Class Library projesi oluşturun.

o Projenin ismi messengerde kullanılacak add-ins ismi ile aynı olmak zorundadır. (Ör: MusaitDegil)

o Şimdi projeye reference eklememiz gerekiyor. Solution Explorer kısmındaki References kısmına sağ tıklayıp Add Reference tıklıyoruz. Gelen pencerede Brose sekmesini açıp “C:\Program Files\Windows Live\Messenger\MessengerClient.dll” bulup ekliyoruz.

o Projeye bir sınıf ekliyoruz. Sınıfın ismi diyelimki Addin olsun.

o Solution Explorer kısmındaki proje ismini sağ tıklayıp Properties tıklıyoruz. Açılan pencerede Assembly name kısmındaki ismi şu şekilde değiştiriyoruz: ProjeAdı.ClassAdı
Örneğimizde şöyle oldu: MusaitDegil.Addin

o Sınıfımızın başına using Microsoft.Messenger; ekliyoruz.

C# kodumuz (Visual Studio 2008 Projesi): İNDİR

Kodumuzu yazıp derledikten sonra sıra messeneger için bu DLL ‘i add-in olarak eklemeye geldi.

1. MSN Messenger ’da Araçlar -> Seçenekler kısmını açın.
2. Gelen pencerede eklentiler sekmesine gelin.
3. Messenger’a Ekle butonuna tıklayın ve derlediğiniz DLL dosyasını seçin.
4. Daha sonra Uygula ve Tamam butonlarına basın.

Böylelikle add-in messengere eklenmiş oldu.
Add-in ’i kullanacağımız zaman Messenger ’da resimdeki gibi seçerek eklentiyi aktif hale getirin.

Eklentimizin çalışıyor mu bakalım:


Şimdi MessengerClient.dll dosyasını inceleyelim:


Şimdi de MessengerClient.dll dosyasındaki eventleri inceleyelim.



Not: Anlatılanlar Windows Live Messenger 8.1 ve 8.5 sürümleri için geçerlidir.

Java Uygulamayı .NET Platformuna Çevirme

Arkadaslar IKVM.Net ile jar uzantılı dosyalarınızı yani JAVA platformu için yazılan bir uygulamayı .NET platformunda kullanabilmeniz için yapmanız gereken işlemleri göstereceğim.

Öncelikle IKVM.Net için download linkini vereyim:
http://sourceforge.net/project/showfiles.php?group_id=69637&package_id=68631

Burdan IKVM.Net ’in hem kaynak kodunu hem de çalışabilir *.exe dosyalarını indirebilirsiniz.

Şimdi jar dosyamızı nasıl .NET için uygun hale getireceğimizi anlatıyorum:

Başlat -> Çalıştır -> cmd

Açılan konsol ekranında "ikvmc.exe" dosyamızın bulunduğu yola (path) gidiyoruz. Çevirilecek olan jar dosyasını da "ikvmc.exe" dosyasının yanına kopyalıyoruz. Konsol ekranına şu kodu yazıyoruz:

ikvmc hello.jar

Not: Eğer mono kullanıyorsanız ikvmc ’ye GNU Classpath dll ’in nerde oldugunu göstermek zorundasınız. Yani kullanımı şu şekilde değişmiş olacak:

ikvmc -reference:/usr/lib/IKVM.GNU.Classpath.dll hello.jar

Yazıp entere basıyoruz. hello.jar dosyasının yanında hello.exe ya da hello.dll isminde bi dosya oluşmuş olacaktır. Bu dosya bizim .Net platformu için uygun olan dosyamızdır. Yalnız bu dosyayı projenizde kullanabimeniz için projenize indirdiğiniz klasordeki DLL leri de reference olarak göstermelisiniz ya da içine kopyalamalısınız.

Daha fazla bilgi için burayı inceleyebilirsiniz:
http://www.ikvm.net/userguide/tutorial.html#Convert+a+Java+Application+to+.NET