C# Console açık kaynak kod video indirme uygulaması
Daha önce webrequest kullanımını göstermek için izleseneden video linkini almak için yaptığım programa download etme ve youtube'u da eklememle birlikle farklı bir açık kaynak kod program ortaya çıkardım. Programın kaynak kodunu yine sizlerle paylaşmaktan memnunum.
Kod özellikleri
- C# Console Copy to Clipboard : konsole uygulamasından kopyalanmış text i okutma ve yazdırma
- C# WebRequest : C# webrequest ile site içeriğini okutmak
- C# WebClient : C# webclient ile http den dosya indirme
Program özellikleri v0.2
- Dilerseniz indirme özelliği
- Bağlantı hata düzeltmeleri
Program özellikleri v0.1
- Youtube ve izlesene video indirme linkini almak
- Videoyu indirmek
Açık Kaynak kodu
// gerekli headerlar
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Windows.Forms;
namespace Examples.System.Net
{
public class WebRequestGetOrnek
{
// http://mustafaturan.net/
[STAThread]
public static void Main()
{
Console.Title = "IndirSakla.com";
Console.ForegroundColor = ConsoleColor.Yellow;
Console.BackgroundColor = ConsoleColor.Red;
while (true)
{
// uri için istek belirtin.
Console.WriteLine("Youtube.com & izlesene.com videolarını indirme programına hoşgeldiniz.");
Console.Write("Linki kopyalayıp enter tuşuna basın!");
Console.ReadLine();
string v_link = "";
try
{
// linki clipboard dan almak (hafızadan)
v_link = Clipboard.GetText().ToString();
}
catch
{
Console.Clear();
Console.WriteLine("Geçersiz link!");
continue;
}
WebRequest request;
try
{
request = WebRequest.Create(v_link);
}
catch
{
Console.Clear();
Console.WriteLine("Geçersiz link!");
continue;
}
// Yanıtı alın. başına (HttpWebResponse) koyduk çünkü veri tipleri farklı
HttpWebResponse response;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (Exception e)
{
Console.Clear();
Console.WriteLine("HATA: \n" + e.Message.ToString() + "\n");
response = null;
continue;
}
// Durumu ekrana bastırın.
Console.WriteLine(response.StatusDescription);
// Sunucu tarafından gönderilen stream'i alın.
Stream dataStream = response.GetResponseStream();
// StreamReader ile stream i okutun
StreamReader reader = new StreamReader(dataStream);
// İçeriği okutun.
string responseFromServer = reader.ReadToEnd();
string download_link = "";
string file_name = "";
string video_id = "", sk, t;
try
{
if (v_link.Contains("youtube.com") && v_link.Contains("?v="))
{// youtube için
responseFromServer = responseFromServer.Substring(responseFromServer.IndexOf("var fullscreenUrl = "));
responseFromServer = responseFromServer.Substring(0, responseFromServer.IndexOf("';"));
video_id = responseFromServer.Substring(responseFromServer.IndexOf("video_id=") + 9, responseFromServer.IndexOf("&l=") - responseFromServer.IndexOf("video_id=") - 9);
sk = responseFromServer.Substring(responseFromServer.IndexOf("sk=") + 3, responseFromServer.IndexOf("&fmt_map=") - responseFromServer.IndexOf("sk=") - 3);
t = responseFromServer.Substring(responseFromServer.IndexOf("t=") + 2, responseFromServer.IndexOf("&hl=") - responseFromServer.IndexOf("t=") - 2);
download_link = "http://www.youtube.com/get_video.php?video_id=" + video_id + "&sk=" + sk + "&t=" + t;
}
else
{// izlesene için
download_link = responseFromServer.Substring(responseFromServer.IndexOf("so.addVariable(") + 24, responseFromServer.IndexOf(".flv") - responseFromServer.IndexOf("so.addVariable(") - 24) + ".flv";
}
}
catch
{
Console.Clear();
Console.WriteLine("İndirme linki bulunamadı!");
continue;
}
// İçeriği gösterin.
Console.Write("Linkiniz hazır dilediğiniz yere yapıştırabilirsiniz, ekranı temizlemek için bir tuşa basarak devam edin!\n\n");
Console.WriteLine(download_link);
// Stream'i ve yanıtları temizleyin(kapatın).
reader.Close();
dataStream.Close();
response.Close();
try
{
Clipboard.SetText(download_link + ".flv");
}
catch
{
Console.WriteLine("Lütfen tekrar deneyiniz. Link kopyalanamadı!");
}
try
{
WebClient client = new WebClient();
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
if (v_link.Contains("youtube.com") && v_link.Contains("?v="))
{
file_name = video_id + ".flv";
}
else
{// video görünen adı
file_name = download_link.Substring(download_link.LastIndexOf("/") + 1);
}
if (File.Exists(file_name))
{// video daha önce indirilmişse silinsin mi?
Console.WriteLine("Dosya " + file_name + " zaten mevcut!. Silinsin mi? e/h: ");
if (Console.ReadLine().Equals("e"))
{
File.Delete(file_name);
}
else
{
Console.Clear();
continue;
}
}
// indirmek için gerekli kod(download etmek)
Console.WriteLine("Dosya Adı: " + file_name + " İndirilsin mi? e/h: ");
if (Console.ReadLine().Equals("e"))
{
Console.WriteLine("İndiriliyor...");
client.DownloadFile(download_link, file_name);
}
else
{
client = null;
Console.Clear();
continue;
}
// temizlik yapalım
client = null;
// bilgi verelim
Console.WriteLine("Videonuz indi! İyi seyirler...");
}
catch
{
// fazla söze gerek yok yola devam :)
}
Console.ReadLine();
Console.Clear();
}
}
}
}
Kopyalama Lisansları
GPL ve MIT
İndirme linkleri
- Sadece Kodu indir v0.2: http://mustafaturan.net/download/videodownloader/indirsakla_v0.2.txt
- Programı indir v0.2: http://mustafaturan.net/download/videodownloader/indirsakla_v0.2.rar
- Kodu indir: http://mustafaturan.net/download/videodownloader/videodownloader_v0.1.rar
- Programı indir: http://mustafaturan.net/download/videodownloader/indirsakla_v0.1.rar
Görüntülenme: 818 |
5/5 : 5