C# Download Uygulaması Hakkında Görüşleriniz
-
Öncelikle merhabalar,
Kafamda şöyle bir uygulama var.Youtube hayatımda önemli bir yere sahip günün büyük bir bölümünü burada geçiriyorum.Amacım playlistlerdeki 70 80 adet videoyu indirebilecek bir uygulama yapmak.
Fikir olarak şöyle yapmayı düşünüyorum.
Öncelikle youtube kanalından http://www.youtube.com/user/SolidWize/videos?sort=dd&view=0&shelf_id=3 örneğin bu kanaldan video linklerini çekip bir diziye yada listboxa atmak.(Bunun için hangi sınıfı kullanmalıyım?)
Sonrasında keepvid.com'a listboxtaki video linklerini buraya input ettirip linkleri almak.Ve son olarak Dosyayı download etmek.Burda önemli husus videoların hepsinin aynı anda değilde biri bittikten sonra diğerine başlaması araştırabileceğim konu başlıklarını yazabilirseniz çok müteşekkür olurum.Şimdiden teşekkürler.
-
playlist linkinden o playlistteki tüm urlları çeken regex
'(?i)data-video-id="([\w\W]*?)"'
burdan çektiklerin ID, başına youtube.com/watch?v= ekleyeceksin
edit1: bununla arasıra kontrol edersin işte playlist'i.
indirmek için de youtube-dl kullan: http://rg3.github.io/youtube-dl/
örnek command line: youtube-dl -g YOUTUBEURL = sadece direk indirme linkini alır.
youtube-dl YOUTUBEURL = direk kafasına göre orta karar kalitede bi versiyonunu çeker
kalite belirtmek istersen: -f 22/17/18 şeklinde sıralama koyabilirsin, (önce varsa 22 yoksa 17 falan)
youtube format list: http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs
dafta teşekkürler.
not: multithreading kullanmadığın sürece zaten biri bitmeden diğeri başlamaz.
FCN tarafından 11/Kas/13 15:56 tarihinde düzenlenmiştir -
selamlar,
boşuna kendini yorma hocam :) bu tarz sistemler için he zaman yazılmış api/wrapper lara bak..
normalde paylaşmazdım ama tahribat için paylaşmada sıkıntı yok..
1- youtube arama
ilk olarak arama için youtube un apisini kullanacaksın. 2.0 ve 3.0 lık versiyonları var ve arama yapmak için bir kaç yol var. önce kendine bir developer hesabı açman gerek ve oradaki iki keyi youtube apisine entegre etmen gerek. playlist leri de arama yaptırabiliyorsun istediğin kategoride v.s.
burda detayları bulabilirsin
https://developers.google.com/youtube/2.0/developers_guide_dotnet?hl=tr&csw=1
ve buna da bakabilirsin
http://youtubeapi.codeplex.com/
2- download etme
youtube algoritması belirli sürede bir değişmekte o yüzden programında bir güncelleme olması gerek. atıyorum 2 ayda bir değişiyor o zaman da sıkıntı çıkıyor indirmelerde. bunu düşünerek programı otomatik güncelleştirebilecek şekilde yap..
download için keepvid gibi bi şey kullanmak yerine yazılmış bir wrapper ı kullanabilirsin
http://ssyoutubedownloader.codeplex.com/
ya da
http://ytdownloadextension.codeplex.com/
http://fastyoutubedownloader.codeplex.com/ (wpf)
http://youtubefisher.codeplex.com/
3- seri indirme
bunun içinde uygulamanı multi-thread tabanlı yapman gerek. aynı anda birden fazla da indirebilirsin ya da biri bitince birini çalıştırabilirsin. bunun için ilk olarak theadpool u araştır onunla yapabilirsin. download ın bittiğini anlamak için kullanacağın youtube downloader wrapperindeki finished, completed gibi eventler içinde tekrar ilgili download fonksiyonunu çağıracaksın thread ile. bunun için bir event ve delegate de yazabilirsin..
kolay gelsin
