Code-Makers ha revivido. It's alive! Bienvenidos! Presentate aca!

Jason [Youtube Downloader] - C# | Actualización: V2.5 Tema Solucionado

Postea tu proyecto propio y comentanos de que se trata y deci de donde lo podemos bajar (ej, github)
Avatar de Usuario
JohnConnor
Nos vamos conociendo
Nos vamos conociendo
Mensajes: 89
Registrado: Mar Ene 05, 2016 12:59 am
Ubicación: Argentina
Contactar:

Jason [Youtube Downloader] - C# | Actualización: V2.5

Mensajepor JohnConnor » Lun Mar 14, 2016 2:07 am

Ultima Versión: Actualización: Jason's Mp3 Youtube Downloader V2.5.1

Actualización: Jason's ogg Youtube Downloader V2.1

Hoy hago entrega de la versión 2.1 de Jason's ogg, con una nueva interfaz y nuevas funciones. Ahora si se parece a una aplicacion. :lol:

Imagen


Imagen


Imagen


Imagen


Descargas escribió:
Jason's Full Installer + Microsoft .Net Framework
Instalador que incluye Microsoft .Net Framework y genera icono en escritorio.
Cuando terminas de instalar tenes .Net, DevExpress y Jaon's ogg instalado en tu pc.
Imagen


Jason's Portable (No .Net)
Versión portable, comprimida en WinRar. Esta version no incluye Microsoft
.Net Framework.
Para ejecutar correctamente Jason's ogg abra el archivo "arrancador.cs" asi
se evitan problemas con los permisos.
Imagen


Jason's Visual Studio C# Project
No se porque hay un antivirus de VirusTotal que cualquier programa en C# lo toma
como Virus. Por eso agrego el proyecto tambien asi lo pueden compilar en casa. ;)
Imagen


Microsoft .NET Framework 4.5.2 (Web Installer)
The Microsoft .NET Framework 4.5.2 is a highly compatible, in-place update to the Microsoft .NET Framework 4,
Microsoft .NET Framework 4.5 and Microsoft .NET Framework 4.5.1. The web installer is a small package that
automatically determines and downloads only the components applicable for a particular platform.
Imagen

Bueno el código se alargo bastante y la verdad ya se me hizo una laguna.
[+] Form1.cs

Código: Seleccionar todo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Web;
using System.Net;
using System.IO;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.Media;
using System.Globalization;

namespace Jason21
{
public partial class Form1 : Form
{
List<string> Canciones = new List<string>();
List<string> urlCanciones = new List<string>();
List<string> mArchivos = new List<string>();
public bool PrimerCheck = true;
public string input;
public string[] parts1;
public string[] parts2;
public string[] parts3;
public string Titulo;
public string[] ImgP;
public string[] ImgTP;
public string[] ImgTP2;
public string[] ImgT;
public string[] videoID;

// v1.1 Reformas
public int intentoDescarga;
public int maxIntentos;
public string ultimaURL;
public int uU = 0;

// v2.0 Reformas
public string urlADS;

//v2.1 Reformas
public string archivo_Configuracion;
public string CarpetaDescargas;
public float megaBytesGlobal;
public int sDescargas = 0;
public bool Cancelar_Busqueda = false;
public string ultimaPestana = "controlBuscar";
public int tDescargas = 0;
public int fDescargas = 0;
public Form1()
{
InitializeComponent();
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser2.ScriptErrorsSuppressed = true;
listBox1.MouseDoubleClick += new MouseEventHandler(listBox1_DoubleClick);
lista_Biblioteca.MouseDoubleClick += new MouseEventHandler(lista_Biblioteca_DoubleClick);
// Control_Pestanas.SelectedPageChanged += new TabControlCancelEventHandler(Control_Pestanas_Selecting);

}

private void Form1_Load(object sender, EventArgs e)
{
archivo_Configuracion = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\JasonConfig.config");
CheckConfig();
ListarCanciones();
intentoDescarga = 2;
boton_CancelarBusqueda.Enabled = false;
Application.DoEvents();
ListarCanciones();
Application.DoEvents();
webBrowser2.Navigate("http://jason.esy.es/");
}





private void boton_Buscar_Click(object sender, EventArgs e)
{
boton_Buscar.Enabled = false;
boton_CancelarBusqueda.Enabled = true;
Canciones.Clear();
urlCanciones.Clear();
listBox1.Items.Clear();
Cancelar_Busqueda = false;
for (int i = 1; i <= (int)input_pagBusqueda.Value; i++)
{
if (Cancelar_Busqueda)
{
i = 100;
}
else
{
Buscar_Agregar(inputText_Buscar.Text, i);
}
}
}

public void Buscar_Agregar(string Busqueda, int Pagina)
{
Control_Pestanas.SelectedPageIndex= 0;
webBrowser1.Navigate("https://www.youtube.com/results?search_query=" + Busqueda + "&page=" + Pagina);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
HtmlElementCollection theElementCollection = default(HtmlElementCollection);
theElementCollection = webBrowser1.Document.GetElementsByTagName("a");
foreach (HtmlElement curElement in theElementCollection)
{
if (curElement.GetAttribute("classname") == "yt-uix-sessionlink yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 spf-link ")
{
bool esLista = curElement.GetAttribute("href").Contains("list");
if (!esLista)
{
listBox1.Items.Add(curElement.GetAttribute("InnerText"));
urlCanciones.Add(curElement.GetAttribute("href"));
}
}
}
}

private void boton_CancelarBusqueda_Click(object sender, EventArgs e)
{
boton_CancelarBusqueda.Enabled = false;
boton_Buscar.Enabled = true;
Cancelar_Busqueda = true;
}


private void listBox1_DoubleClick(object sender, MouseEventArgs e)
{
if (sDescargas <= 3)
{
ConvertirCancion(sender, e);
}
else
{
MessageBox.Show("The free version does not allow many downloads.");
}
}
public void ConvertirCancion(object sender, MouseEventArgs e)
{
int index = this.listBox1.IndexFromPoint(e.Location);
int urlB = listBox1.SelectedIndex;
label_ArchivosDescargados.Text = tDescargas.ToString();
if (index != System.Windows.Forms.ListBox.NoMatches)
{
tabControl1.SelectedIndex = 1;
lista_Descargas.Items.Add(listBox1.SelectedItem);
label_EstadoDescarga.Text = "It becoming! please, be patient...";
label_LocacionDescarga.Text = urlCanciones[urlB];
webBrowser1.Navigate(urlCanciones[listBox1.SelectedIndex]);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
try
{
input = webBrowser1.DocumentText;
parts1 = input.Split(new string[] { "type=audio" }, StringSplitOptions.None);
maxIntentos = parts1.Count();
parts2 = parts1[intentoDescarga].Split(new string[] { "url=" }, StringSplitOptions.None);
parts3 = parts2[1].Split(new string[] { "\\" }, StringSplitOptions.None);
Titulo = webBrowser1.Document.Title.Replace(" - YouTube", "");
label_EstadoDescarga.Text = "Successful conversion";
label_NombreDescarga.Text = Titulo + ".ogg";
videoID = urlCanciones[listBox1.SelectedIndex].Split(new string[] { "=" }, StringSplitOptions.None);
webBrowser1.Navigate("about:blank");
Application.DoEvents();
DescargarCancion();
}
catch
{
fDescargas ++;
label_DescargasFallidas.Text = fDescargas.ToString();
label_EstadoDescarga.Text = "Error becoming file - try again later.";
label_NombreDescarga.Text = Titulo + ".ogg\"";
webBrowser1.Navigate("about:blank");
}
}
}

public void DescargarCancion()
{
label_EstadoDescarga.Text = "Downloading...";
WebClient Client = new WebClient();
Client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
Client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
Client.DownloadFileAsync(new Uri((HttpUtility.UrlDecode(parts3[0]))), (CarpetaDescargas + "/" + Titulo + ".ogg").Replace("?", ""));
Application.DoEvents();
sDescargas++;
}

public void FalloDescarga()
{
fDescargas++;
sDescargas--;
label_DescargasFallidas.Text = fDescargas.ToString();
label_NombreDescarga.Text = intentoDescarga.ToString() + " - Error : \"" + Titulo + ".ogg\" is protected by copyright.";
File.Delete(CarpetaDescargas + "/" + Titulo + ".ogg");
Application.DoEvents();
/* System.Threading.Thread.Sleep(2000);
this.intentoDescarga += 1;
if (intentoDescarga > 1)
{
ConvertirCancion(null, null);
}
if (intentoDescarga > maxIntentos - 2)
{
intentoDescarga = 1;
}
*/
}
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
int Porciento = ((int)e.BytesReceived * 100) / ((int)e.TotalBytesToReceive);
label_ArchivosDescargando.Text = sDescargas.ToString();
try
{
progressBar1.Maximum = (int)e.TotalBytesToReceive / 100;
progressBar1.Value = (int)e.BytesReceived / 100;
double megaBytesT = ((double)e.TotalBytesToReceive / 1024) / (1024);
double megaBytesR = ((double)e.BytesReceived / 1024) / (1024);
}
catch
{
label_EstadoDescarga.Text = " Downloading - " + Titulo;
}

try
{

progressBar1.Maximum = (int)e.TotalBytesToReceive / 100;
progressBar1.Value = (int)e.BytesReceived / 100;
double megaBytesT = ((double)e.TotalBytesToReceive / 1024) / (1024);
megaBytesGlobal = (float)megaBytesT;
double megaBytesR = ((double)e.BytesReceived / 1024) / (1024);
if (megaBytesT <= (float)0.5)
{
FalloDescarga();
}
else
{
label_EstadoDescarga.Text = " Downloading " + Porciento + " %";
label_MBr.Text = megaBytesR.ToString().Substring(0, 4) + "Mb.";
label_MBt.Text = megaBytesT.ToString().Substring(0, 4) + "Mb.";
}
}
catch
{
Application.DoEvents();
}
}

void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{

if (e.Error != null)
{
FalloDescarga();
}
else
{
string Cancion = CarpetaDescargas + "\\" + Titulo + ".ogg";
if (megaBytesGlobal <= (float)0.5)
{
label_EstadoDescarga.Text = "Unknow error";
}
else
{
sDescargas--;
tDescargas++;
label_ArchivosDescargando.Text = sDescargas.ToString();
label_ArchivosDescargados.Text = tDescargas.ToString();
label_EstadoDescarga.Text = "Download completed";
}

if (checkBox_AbrirFinal.Checked)
{
Process.Start(CarpetaDescargas); //, string.Format("/select,\"{0}\"", Titulo + ".ogg"));
Application.DoEvents();
SendKeys.Send(Titulo);
}


if (checkBox_PlayFinal.Checked)
{

Process.Start(Cancion);
Application.DoEvents();
}
}
}

public void ListarCanciones()
{
if (!PrimerCheck)
{
mArchivos.Clear();
lista_Biblioteca.Items.Clear();
}
string[] archivos = Directory.GetFiles(CarpetaDescargas, "*.*", SearchOption.TopDirectoryOnly);
if (archivos.Length >= 1)
{
foreach (string nombre in archivos)
{
bool esOGG = nombre.Contains(".ogg");
bool esMP3 = nombre.Contains(".mp3");
bool filtro = nombre.ToLower().Contains(textBox_Library_Filter.Text.ToLower());
if (esOGG && filtro || esMP3 && filtro)
{

mArchivos.Add(nombre);
lista_Biblioteca.Items.Add(nombre.Replace(CarpetaDescargas + "\\", "") + " - Location: " + nombre);

}
}
}
PrimerCheck = false;
}

public void CheckConfig()
{
bool abrirFinal = archivo_Configuracion.Contains("openonfinish=true");
bool playFinal = archivo_Configuracion.Contains("playonfinish=true");
bool usarMyMusic = archivo_Configuracion.Contains("usemymusic=true");
if (abrirFinal)
{
usar_MyMusic.Checked = true;
}
else
{
usar_MyMusic.Checked = false;
}
if (playFinal)
{
usar_OtraCarpeta.Checked = true;
}
else
{
usar_OtraCarpeta.Checked = false;
}
if (usarMyMusic)
{
usar_MyMusic.Checked = true;
usar_OtraCarpeta.Checked = false;
elegir_Carpeta.Enabled = false;
CarpetaDescargas = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
textBox_PathChoice.Text = CarpetaDescargas;
textBox_PathChoice.Enabled = false;
}
else if (!usarMyMusic)
{
usar_MyMusic.Checked = false;
usar_OtraCarpeta.Checked = true;
elegir_Carpeta.Enabled = true;
CarpetaDescargas = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\Downpath.config");
textBox_PathChoice.Text = CarpetaDescargas;
}
}



// FIN FIN FIN FIN
















private void checkEdit8_CheckedChanged(object sender, EventArgs e)
{

}

private void groupControl4_Paint(object sender, PaintEventArgs e)
{

}

private void comboBox_Filter_Library_type_SelectedIndexChanged(object sender, EventArgs e)
{

}

private void checkBox_AbrirFinal_CheckedChanged(object sender, EventArgs e)
{
if (checkBox_AbrirFinal.Checked)
{
archivo_Configuracion = archivo_Configuracion.Replace("openonfinish=false", "openonfinish=true");
}
else if (!checkBox_AbrirFinal.Checked)
{
archivo_Configuracion = archivo_Configuracion.Replace("openonfinish=true", "openonfinish=false");
}
}

private void checkBox_PlayFinal_CheckedChanged(object sender, EventArgs e)
{
if (checkBox_PlayFinal.Checked)
{
archivo_Configuracion = archivo_Configuracion.Replace("playonfinish=false", "playonfinish=true");
}
else if (!checkBox_PlayFinal.Checked)
{
archivo_Configuracion = archivo_Configuracion.Replace("playonfinish=true", "playonfinish=false");
}
}

private void usar_MyMusic_CheckedChanged(object sender, EventArgs e)
{
if (usar_MyMusic.Checked && archivo_Configuracion.Contains("usemymusic=false"))
{
archivo_Configuracion = archivo_Configuracion.Replace("usemymusic=false", "usemymusic=true");
usar_OtraCarpeta.Checked = false;
textBox_PathChoice.Enabled = false;
elegir_Carpeta.Enabled = false;
CarpetaDescargas = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
textBox_PathChoice.Text = CarpetaDescargas;
using (StreamWriter ArchivoDownpath = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\Downpath.config"))
{
ArchivoDownpath.Write("");
}
}
}

private void usar_OtraCarpeta_CheckedChanged(object sender, EventArgs e)
{
if (usar_OtraCarpeta.Checked && archivo_Configuracion.Contains("usemymusic=true"))
{
archivo_Configuracion = archivo_Configuracion.Replace("usemymusic=true", "usemymusic=false");
usar_MyMusic.Checked = false;
textBox_PathChoice.Enabled = true;
elegir_Carpeta.Enabled = true;
}
}

private void boton_AplicarConfig_Click(object sender, EventArgs e)
{
using (StreamWriter ArchivoConfig = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\JasonConfig.config"))
{
ArchivoConfig.Write(archivo_Configuracion);
}
if (usar_MyMusic.Checked)
{
Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
}
else
{
CarpetaDescargas = textBox_PathChoice.Text;
}
//continuar
using (StreamWriter ArchivoDownpath = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\Downpath.config"))
{
ArchivoDownpath.Write(CarpetaDescargas);
}
}

private void boton_Reset_Click(object sender, EventArgs e)
{
using (StreamWriter ArchivoConfig = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\JasonConfig.config"))
{
ArchivoConfig.Write("openonfinish=true;playonfinish=false;usemymusic=true;otherpath:();");
archivo_Configuracion = ("openonfinish=true;playonfinish=false;usemymusic=true;otherpath:();");
CarpetaDescargas = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
}

CheckConfig();

using (StreamWriter ArchivoDownpath = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\Downpath.config"))
{
ArchivoDownpath.Write("");
}
}

private void elegir_Carpeta_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
textBox_PathChoice.Text = folderBrowserDialog1.SelectedPath;
}
}

private void simpleButton3_Click(object sender, EventArgs e)
{
lista_Descargas.CheckedItems.OfType<string>().ToList().ForEach(lista_Descargas.Items.Remove);
}

private void simpleButton4_Click(object sender, EventArgs e)
{
lista_Descargas.Items.Clear();
}

private void link_AbrirCarpeta_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start(CarpetaDescargas);
}


private void lista_Biblioteca_DoubleClick(object sender, EventArgs e)
{
try {
Process.Start(mArchivos[lista_Biblioteca.SelectedIndex]);
} catch
{
Process.Start(mArchivos[lista_Biblioteca.SelectedIndex]);
}
}
private void lista_Descargas_DoubleClick(object sender, EventArgs e)
{
try
{
textBox_Library_Filter.Text = lista_Biblioteca.SelectedItem.ToString();
}
catch
{
textBox_Library_Filter.Text = lista_Biblioteca.SelectedItem.ToString();
}
}


private void textBox_Library_Filter_TextChanged(object sender, EventArgs e)
{
ListarCanciones();
}

private void control_Biblioteca_Paint(object sender, PaintEventArgs e)
{
// ListarCanciones();
if (ultimaPestana != "controlBiblioteca")
{
ListarCanciones();
} else
{
Application.DoEvents();
}

}

private void lista_Biblioteca_SelectedIndexChanged(object sender, EventArgs e)
{

}

private void label13_Click(object sender, EventArgs e)
{

}

private void lista_Descargas_SelectedIndexChanged(object sender, EventArgs e)
{

}
}
}



El "arrancador.cs" es para iniciar el programa con permisos de administrador, de lo contrario daría muchos errores.

Código: Seleccionar todo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Web;
using System.Net;
using System.IO;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.Media;
using System.Globalization;
using Microsoft.Win32;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}



private void Form1_Load_1(object sender, EventArgs e)
{
CheckNetFramework();
ProcessStartInfo info = new ProcessStartInfo(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\Jason21.exe");
info.UseShellExecute = true;
info.Verb = "runas";
Process.Start(info);
System.Windows.Forms.Application.Exit();
}
public void CheckNetFramework()
{
string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
{
for (int i = 0; i <= (int)rk.GetSubKeyNames().Length - 1; i++)
{
if (rk.GetSubKeyNames()[i].Contains("Microsoft .Net"))
{
MessageBox.Show(rk.GetSubKeyNames()[i].ToString());
}
}
//return rk.GetSubKeyNames().Contains("Microsoft .NET Framework");
}

}
}
}





Versiones Anteriores:

Bueno, antes puse el Jason's ogg que solo podías descargar pegando la url de youtube. Ahora le agregue un buscador y un par de ListBox.
La idea de ponerlo acá es que el proyecto no sea solo mio, ya que tiene varias fallas y varias mejoras por hacer (fuera de mi alcance), por ejemplo, no conozco ninguna librería de sonidos para usar con C#. el que quiere participa acá .
No piensen que van a tener que trabajar jaja, sino que cuando comenten, ayuden, den ideas se va a acreditar ;)

Dejo algunas imágenes:
Imagen Imagen Imagen

bueno como les dije, no es doble post. este lo pongo como proyecto y el código lo pongo aca: viewtopic.php?f=12&t=66

Para los que lo quieran probar adjuntos los links del ejecutable y el proyecto.
EXE: https://mega.nz/#!MQJA3AwT!06x3H4yr-r0C ... uTKsFAKJT8
Proyecto VS: https://mega.nz/#!BNh3FShL!nTGDtAizgvAQ ... 9B3dSuqEYY


Lo primero a mejorar es la búsqueda de la url que da youtube (una url larga que da al audio), que para obtenerla corta cadenas de texto con string.Split. pero solo funciona en algunas videos, todavía no descubro por que pero creo que requiere otro tipo de autenticacion ya que solo pasa cuando los videos son de Vevo o EMI music, osea oficiales o cuando el autor es muy "famoso" y pide a google que se cuiden sus autorias.
Lo ideal seria el uso de un pregMatch y extractMatch.

Lo segundo serian menúes y contextmenues.

Lo tercero es que cuando la url queda "en blanco" (cuando es un vídeo de Vevo por ej) Jason dice que a descarga esta completa y deja un archivo vació (0 bytes). Estoy trabajando en eso en este momento.

y por ultimo habría que agregarle la función de cancelar una descarga.


Bueno por ahora eso es todo! ya saben, hasta la mínima idea sera tenida en cuenta.

Saludos!
Última edición por JohnConnor el Vie Mar 25, 2016 7:57 pm, editado 8 veces en total.


Imagen

EL QUE NO DICE LA VERDAD, ES PORQUE ESTA MINTIENDO
Avatar de Usuario
ni0
Arquitecto
Mensajes: 121
Registrado: Mar Nov 17, 2015 4:07 pm

Re: Jason [Youtube Downloader] - C#

Mensajepor ni0 » Lun Mar 14, 2016 1:28 pm

Que bueno che! Gracias :D

Te parece dejar el link al ejecutable en este post tambien?
Usas github o algun repositorio? si es asi, te parece poner el link aca tambien? Y si no es asi, te recomendaria que lo hagas tambien, asi tenes un control de los cambios y otros pueden colaborar :D

Saludos.
ni0 escribió:como te habras dado cuenta para Stallman, Linus y todos los que los siguen se refieren al hacking a la accion de programar porque les (nos?) da orgasmos (cuak cuak)

ni0 [at] code-makers [dot] es
Avatar de Usuario
JohnConnor
Nos vamos conociendo
Nos vamos conociendo
Mensajes: 89
Registrado: Mar Ene 05, 2016 12:59 am
Ubicación: Argentina
Contactar:

Re: Jason [Youtube Downloader] - C#

Mensajepor JohnConnor » Lun Mar 14, 2016 10:45 pm

ni0 escribió:Te parece dejar el link al ejecutable en este post tambien?

Agregados. 8-)
ni0 escribió:Usas github o algun repositorio? si es asi, te parece poner el link aca tambien? Y si no es asi, te recomendaria que lo hagas tambien, asi tenes un control de los cambios y otros pueden colaborar :D


Jamas lo había usado (solo lo sentí nombrar) pero no tenia idea lo que era. Ahora que me decís estoy explorando y la verdad es genial, cuando tenga todo listo agrego el proyecto en github.

Saludos!
Imagen

EL QUE NO DICE LA VERDAD, ES PORQUE ESTA MINTIENDO
Avatar de Usuario
JohnConnor
Nos vamos conociendo
Nos vamos conociendo
Mensajes: 89
Registrado: Mar Ene 05, 2016 12:59 am
Ubicación: Argentina
Contactar:

Re: Jason [Youtube Downloader] - C# | Jason's Mp3 2.5

Mensajepor JohnConnor » Mar Mar 22, 2016 12:07 am

Actualización: Jason's Mp3 Youtube Downloader V2.5

Jason's ogg ahora se llama Jason's Mp3 ya que se mejoro y descarga las canciones en Mp3.

Mejoras de la versión 2.5:
° Se agrego función Reproducir y Descargar.
° Descarga los archivos en Mp3.
° Se agrego Reproductor propio.
° Se agregaron menúes contextuales.
° Se agrego sala de chat.



Link descarga Instalador (SETUP.EXE): https://mega.nz/#!JEZWlKgI!wNLI_aFZjvD2 ... nB_JGCg48s

Contraseña:

Código: Seleccionar todo

www.code-makers.es


[video]


Link Proyecto JASON21 (RAR): https://mega.nz/#!tBJUXBRC!3aWn9kT7z5I6 ... KOGljEQ3Ok

Código: Seleccionar todo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Web;
using System.Net;
using System.IO;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.Media;
using System.Globalization;
using WMPLib;

namespace Jason21
{
public partial class Form1 : Form
{
List<string> Canciones = new List<string>();
List<string> urlCanciones = new List<string>();
List<string> mArchivos = new List<string>();
List<string> listaRepArray = new List<string>();
public bool PrimerCheck = true;
public string input;

public string Titulo;
public string[] ImgP;
public string[] ImgTP;
public string[] ImgTP2;
public string[] ImgT;
public string[] videoID;

// v1.1 Reformas
public int intentoDescarga;
public int maxIntentos;
public string ultimaURL;
public int uU = 0;

// v2.0 Reformas
public string urlADS;

//v2.1 Reformas
public string archivo_Configuracion;
public string CarpetaDescargas;
public float megaBytesGlobal;
public int sDescargas = 0;
public bool Cancelar_Busqueda = false;
public string ultimaPestana = "controlBuscar";
public int tDescargas = 0;
public int fDescargas = 0;
public string ordenarPor = "sp=CAA%253D";
public bool bloqDescarga = false;

public int Biblioteca_TotalArchivos = 0;
public int Biblioteca_MostrandoArchivos = 0;
public Form1()
{
InitializeComponent();
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser2.ScriptErrorsSuppressed = true;
webBrowser3.ScriptErrorsSuppressed = true;
listBox1.MouseDoubleClick += new MouseEventHandler(listBox1_DoubleClick);
lista_Biblioteca.MouseDoubleClick += new MouseEventHandler(lista_Biblioteca_DoubleClick);
CreateContextMenu();

}


private void Form1_Load(object sender, EventArgs e)
{
archivo_Configuracion = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\JasonConfig.config");
CheckConfig();
ListarCanciones();
intentoDescarga = 2;
boton_CancelarBusqueda.Enabled = false;
Application.DoEvents();
ListarCanciones();
Application.DoEvents();
webBrowser2.Navigate("http://jason.esy.es/");
Control_Pestanas.SelectedPageIndex = 0;
webBrowser3.Navigate("https://tlk.io/jasonscommunity");
}


private void boton_Buscar_Click(object sender, EventArgs e)
{
boton_Buscar.Enabled = false;
boton_CancelarBusqueda.Enabled = true;
Canciones.Clear();
urlCanciones.Clear();
listBox1.Items.Clear();
Cancelar_Busqueda = false;
for (int i = 1; i <= (int)input_pagBusqueda.Value; i++)
{
if (Cancelar_Busqueda)
{
i = 100;
}
else
{
Buscar_Agregar(inputText_Buscar.Text, i);
}
}
boton_Buscar.Enabled = true;
boton_CancelarBusqueda.Enabled = false;
}

public void Buscar_Agregar(string Busqueda, int Pagina)
{
Control_Pestanas.SelectedPageIndex= 0;
webBrowser1.Navigate("https://www.youtube.com/results?search_query=" + Busqueda + "&page=" + Pagina + "&" + ordenarPor);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
HtmlElementCollection theElementCollection = default(HtmlElementCollection);
theElementCollection = webBrowser1.Document.GetElementsByTagName("a");
foreach (HtmlElement curElement in theElementCollection)
{
if (curElement.GetAttribute("classname") == "yt-uix-sessionlink yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 spf-link ")
{
bool esLista = curElement.GetAttribute("href").Contains("list");
if (!esLista)
{
listBox1.Items.Add(curElement.GetAttribute("InnerText"));
urlCanciones.Add(curElement.GetAttribute("href"));
}
}
}
}

private void boton_CancelarBusqueda_Click(object sender, EventArgs e)
{
boton_CancelarBusqueda.Enabled = false;
boton_Buscar.Enabled = true;
Cancelar_Busqueda = true;
}


private void listBox1_DoubleClick(object sender, MouseEventArgs e)
{
if (sDescargas <= 3)
{
ConvertirCancion();
}
else
{
MessageBox.Show("The free version does not allow many downloads.");
}
}
public void ConvertirCancion()
{
if (bloqDescarga)
{
MessageBox.Show("Wait");
return;
}

int urlB = listBox1.SelectedIndex;
label_ArchivosDescargados.Text = tDescargas.ToString();

tabControl1.SelectedIndex = 1;
lista_Descargas.Items.Add(listBox1.SelectedItem);
info_descargando.Text = "It becoming!please, be patient...";
label_EstadoDescarga.Text = "It becoming! please, be patient...";
label_LocacionDescarga.Text = urlCanciones[urlB];
webBrowser1.Navigate("http://www.youtube-mp3.org/es");
//urlCanciones[listBox1.SelectedIndex]
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
webBrowser1.Document.GetElementById("youtube-url").InnerText = urlCanciones[urlB];
Application.DoEvents();

webBrowser1.Document.GetElementById("submit").InvokeMember("Click");
HtmlElementCollection links = webBrowser1.Document.GetElementsByTagName("a");

Application.DoEvents();
int esp = 0;
while (esp < 5000000)
{
Application.DoEvents();
bloqDescarga = true;
esp++;
}
bloqDescarga = false;

Titulo = listBox1.SelectedItem.ToString();
//MessageBox.Show("Iniciando descarga.");
foreach (HtmlElement link in links)
{
if (link.InnerText == "Descargar")
{
if (link.GetAttribute("href").Length > 100)
{
string urlDescarga = (link.GetAttribute("href"));
info_descargando.Text = "Successful conversion " + Titulo + ".mp3";
label_EstadoDescarga.Text = "Successful conversion";
label_NombreDescarga.Text = Titulo + ".mp3";
videoID = urlCanciones[listBox1.SelectedIndex].Split(new string[] { "=" }, StringSplitOptions.None);
webBrowser1.Navigate("about:blank");
Application.DoEvents();
DescargarCancion(urlDescarga);
}
}
}
}

public void DescargarCancion(string urlD)
{
label_NombreDescarga.Text = Titulo + ".mp3";
label_EstadoDescarga.Text = "Downloading...";
info_descargando.Text = "Donwloading: " + Titulo + ".mp3";
WebClient Client = new WebClient();
Client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
Client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
Client.DownloadFileAsync(new Uri(urlD), (@"" + CarpetaDescargas + "/" + Titulo + ".mp3").Replace("?", ""));
Application.DoEvents();
sDescargas++;
}

public void FalloDescarga()
{
fDescargas++;
sDescargas--;
label_DescargasFallidas.Text = fDescargas.ToString();
label_NombreDescarga.Text = intentoDescarga.ToString() + " - Error : \"" + Titulo + ".ogg\"";
info_descargando.Text = label_NombreDescarga.Text;
File.Delete(CarpetaDescargas + "/" + Titulo + ".ogg");
Application.DoEvents();
}


void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
int Porciento = ((int)e.BytesReceived * 100) / ((int)e.TotalBytesToReceive);
label_ArchivosDescargando.Text = sDescargas.ToString();
try
{
progressBar1.Maximum = (int)e.TotalBytesToReceive / 100;
progressBar1.Value = (int)e.BytesReceived / 100;
double megaBytesT = ((double)e.TotalBytesToReceive / 1024) / (1024);
double megaBytesR = ((double)e.BytesReceived / 1024) / (1024);
}
catch
{
label_EstadoDescarga.Text = " Downloading - " + Titulo;
}

try
{
progressBar1.Maximum = (int)e.TotalBytesToReceive / 100;
progressBar1.Value = (int)e.BytesReceived / 100;
double megaBytesT = ((double)e.TotalBytesToReceive / 1024) / (1024);
megaBytesGlobal = (float)megaBytesT;
double megaBytesR = ((double)e.BytesReceived / 1024) / (1024);
if (megaBytesT <= (float)0.5)
{
FalloDescarga();
}
else
{
label_EstadoDescarga.Text = " Downloading " + Porciento + " %";
label_MBr.Text = megaBytesR.ToString().Substring(0, 4) + "Mb.";
label_MBt.Text = megaBytesT.ToString().Substring(0, 4) + "Mb.";
}
}
catch
{
Application.DoEvents();
}
}

void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{

if (e.Error != null)
{
FalloDescarga();
}
else
{
string Cancion = CarpetaDescargas + "\\" + Titulo + ".mp3";
if (megaBytesGlobal <= (float)0.5)
{
label_EstadoDescarga.Text = "Unknow error";
info_descargando.Text = "Unknnow error";
}
else
{
sDescargas--;
tDescargas++;
label_ArchivosDescargando.Text = sDescargas.ToString();
label_ArchivosDescargados.Text = tDescargas.ToString();
label_EstadoDescarga.Text = "Download completed";
info_descargando.Text = "Download completed";
}

if (checkBox_AbrirFinal.Checked)
{
Process.Start(CarpetaDescargas); //, string.Format("/select,\"{0}\"", Titulo + ".ogg"));
Application.DoEvents();
SendKeys.Send(Titulo);
}


if (checkBox_PlayFinal.Checked)
{

ReproductorIntegrado.URL = Cancion;
ReproductorIntegrado.Ctlcontrols.play();
Application.DoEvents();
}
}
}

public void ListarCanciones()
{
Biblioteca_MostrandoArchivos = 0;
Biblioteca_TotalArchivos = 0;
if (!PrimerCheck)
{
mArchivos.Clear();
lista_Biblioteca.Items.Clear();

}
string[] archivos = Directory.GetFiles(CarpetaDescargas, "*.*", SearchOption.TopDirectoryOnly);
if (archivos.Length >= 1)
{
Biblioteca_TotalArchivos = archivos.Length;
cantidad_Archivos.Text = Biblioteca_TotalArchivos.ToString();
foreach (string nombre in archivos)
{
bool esOGG = false; // nombre.Contains(".ogg");
bool esMP3 = nombre.Contains(".mp3");
bool filtro = nombre.ToLower().Contains(textBox_Library_Filter.Text.ToLower());
if (textBox_Library_Filter.Text.Length > 0)
{
filtro_Palabras.Text = textBox_Library_Filter.Text;
}
else
{
filtro_Palabras.Text = "none";
}
if (esOGG && filtro || esMP3 && filtro)
{

mArchivos.Add(nombre);
lista_Biblioteca.Items.Add(nombre.Replace(CarpetaDescargas + "\\", "") + " - Location: " + nombre);
Biblioteca_MostrandoArchivos++;
cantidad_Mostrando.Text = Biblioteca_MostrandoArchivos.ToString();

}
}
}
bibioteca_carpetaDescargas.Text = CarpetaDescargas;
PrimerCheck = false;
}

public void CheckConfig()
{

bool abrirFinal = archivo_Configuracion.Contains("openonfinish=true");
bool playFinal = archivo_Configuracion.Contains("playonfinish=true");
bool usarMyMusic = archivo_Configuracion.Contains("usemymusic=true");
if (abrirFinal)
{
checkBox_AbrirFinal.Checked = true;
}
else
{
checkBox_AbrirFinal.Checked = false;
}
if (playFinal)
{
checkBox_PlayFinal.Checked = true;
}
else
{
checkBox_PlayFinal.Checked = false;
}
if (usarMyMusic)
{
usar_MyMusic.Checked = true;
usar_OtraCarpeta.Checked = false;
elegir_Carpeta.Enabled = false;
CarpetaDescargas = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
textBox_PathChoice.Text = CarpetaDescargas;
textBox_PathChoice.Enabled = false;
}
else if (!usarMyMusic)
{
usar_MyMusic.Checked = false;
usar_OtraCarpeta.Checked = true;
elegir_Carpeta.Enabled = true;
CarpetaDescargas = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\Downpath.config");
if (CarpetaDescargas == "")
{
CarpetaDescargas = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);

}
textBox_PathChoice.Text = CarpetaDescargas;
}
}



// FIN FIN FIN FIN
















private void checkEdit8_CheckedChanged(object sender, EventArgs e)
{
if (checkEdit8.Checked)
{
radioButton1.Enabled = false;
radioButton2.Enabled = false;
radioButton3.Enabled = false;
radioButton4.Enabled = false;
ordenarPor = "sp=CAISAhgB";
} else
{
radioButton1.Checked = true;
ordenarPor = "sp=CAA%253D";
radioButton1.Enabled = true;
radioButton2.Enabled = true;
radioButton3.Enabled = true;
radioButton4.Enabled = true;
}

}





private void checkBox_AbrirFinal_CheckedChanged(object sender, EventArgs e)
{
if (checkBox_AbrirFinal.Checked)
{
archivo_Configuracion = archivo_Configuracion.Replace("openonfinish=false", "openonfinish=true");
}
else if (!checkBox_AbrirFinal.Checked)
{
archivo_Configuracion = archivo_Configuracion.Replace("openonfinish=true", "openonfinish=false");
}
}

private void checkBox_PlayFinal_CheckedChanged(object sender, EventArgs e)
{
if (checkBox_PlayFinal.Checked)
{
archivo_Configuracion = archivo_Configuracion.Replace("playonfinish=false", "playonfinish=true");
}
else if (!checkBox_PlayFinal.Checked)
{
archivo_Configuracion = archivo_Configuracion.Replace("playonfinish=true", "playonfinish=false");
}
}

private void usar_MyMusic_CheckedChanged(object sender, EventArgs e)
{
if (usar_MyMusic.Checked && archivo_Configuracion.Contains("usemymusic=false"))
{
archivo_Configuracion = archivo_Configuracion.Replace("usemymusic=false", "usemymusic=true");
usar_OtraCarpeta.Checked = false;
textBox_PathChoice.Enabled = false;
elegir_Carpeta.Enabled = false;
CarpetaDescargas = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
textBox_PathChoice.Text = CarpetaDescargas;
using (StreamWriter ArchivoDownpath = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\Downpath.config"))
{
ArchivoDownpath.Write("");
}
}
}

private void usar_OtraCarpeta_CheckedChanged(object sender, EventArgs e)
{
if (usar_OtraCarpeta.Checked && archivo_Configuracion.Contains("usemymusic=true"))
{
archivo_Configuracion = archivo_Configuracion.Replace("usemymusic=true", "usemymusic=false");
usar_MyMusic.Checked = false;
textBox_PathChoice.Enabled = true;
elegir_Carpeta.Enabled = true;
}
}

private void boton_AplicarConfig_Click(object sender, EventArgs e)
{
using (StreamWriter ArchivoConfig = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\JasonConfig.config"))
{
ArchivoConfig.Write(archivo_Configuracion);
}
if (usar_MyMusic.Checked)
{
Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
}
else
{
CarpetaDescargas = textBox_PathChoice.Text;
}
//continuar
using (StreamWriter ArchivoDownpath = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\Downpath.config"))
{
ArchivoDownpath.Write(CarpetaDescargas);
}
}

private void boton_Reset_Click(object sender, EventArgs e)
{
using (StreamWriter ArchivoConfig = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\JasonConfig.config"))
{
ArchivoConfig.Write("openonfinish=true;playonfinish=false;usemymusic=true;otherpath:();");
archivo_Configuracion = ("openonfinish=true;playonfinish=false;usemymusic=true;otherpath:();");
CarpetaDescargas = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
}

CheckConfig();

using (StreamWriter ArchivoDownpath = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + @"\Jason\Downpath.config"))
{
ArchivoDownpath.Write("");
}
}

private void elegir_Carpeta_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
textBox_PathChoice.Text = folderBrowserDialog1.SelectedPath;
}
}

private void simpleButton3_Click(object sender, EventArgs e)
{
lista_Descargas.CheckedItems.OfType<string>().ToList().ForEach(lista_Descargas.Items.Remove);
}

private void simpleButton4_Click(object sender, EventArgs e)
{
lista_Descargas.Items.Clear();
}

private void link_AbrirCarpeta_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start(CarpetaDescargas);
}


private void lista_Biblioteca_DoubleClick(object sender, EventArgs e)
{
try {
listaReproduccion.Items.Add(lista_Biblioteca.SelectedItem);
listaRepArray.Add(mArchivos[lista_Biblioteca.SelectedIndex]);
ReproductorIntegrado.URL = mArchivos[lista_Biblioteca.SelectedIndex];
Control_Pestanas.SelectedPageIndex = 1;
} catch
{
Application.DoEvents();
}
}
private void lista_Descargas_DoubleClick(object sender, EventArgs e)
{
try
{
textBox_Library_Filter.Text = lista_Biblioteca.SelectedItem.ToString();
}
catch
{
textBox_Library_Filter.Text = lista_Biblioteca.SelectedItem.ToString();
}
}


private void textBox_Library_Filter_TextChanged(object sender, EventArgs e)
{
ListarCanciones();
}



private void control_Biblioteca_Paint(object sender, PaintEventArgs e)
{
CreateContextMenu();
// ListarCanciones();
if (ultimaPestana != "controlBiblioteca")
{
ListarCanciones();
} else
{
Application.DoEvents();
}

}
private void indicador3_Paint(object sender, PaintEventArgs e)
{
ultimaPestana = "controlDescargas";
CreateContextMenu();
}

private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked)
{
ordenarPor = "sp=CAM%253D";
}
}

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked)
{
ordenarPor = "sp=CAA%253D";
}
}

private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
if (radioButton3.Checked)
{
ordenarPor = "sp=CAI%253D";
}

}

private void radioButton4_CheckedChanged(object sender, EventArgs e)
{
if (radioButton4.Checked)
{
ordenarPor = "sp=CAE%253D";
}
}



private void listaReproduccion_SelectedIndexChanged(object sender, EventArgs e)
{
ReproductorIntegrado.URL = listaRepArray[listaReproduccion.SelectedIndex];
}


private void CreateContextMenu()
{
if (Control_Pestanas.SelectedPageIndex == 0)
{
ContextMenuStrip menuStrip = new ContextMenuStrip();
ToolStripMenuItem menuItem = new ToolStripMenuItem("Open on Youtube");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "openytCM";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Download file");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "downloadCM";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Play / Download");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "previewdownloadCM";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Exit");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "exitCM";
menuStrip.Items.Add(menuItem);
this.ContextMenuStrip = menuStrip;
}
if (Control_Pestanas.SelectedPageIndex == 1)
{
ContextMenuStrip menuStrip = new ContextMenuStrip();
ToolStripMenuItem menuItem = new ToolStripMenuItem("Remove file");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "removefileCM";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Exit");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "exitCM";
menuStrip.Items.Add(menuItem);
this.ContextMenuStrip = menuStrip;
}
if (Control_Pestanas.SelectedPageIndex == 2)
{
ContextMenuStrip menuStrip = new ContextMenuStrip();
ToolStripMenuItem menuItem = new ToolStripMenuItem("Cancel download");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "canceldownload";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Play preview");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "playpreviewCM";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Exit");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "exitCM";
menuStrip.Items.Add(menuItem);
this.ContextMenuStrip = menuStrip;
}
if (Control_Pestanas.SelectedPageIndex == 3)
{
ContextMenuStrip menuStrip = new ContextMenuStrip();
ToolStripMenuItem menuItem = new ToolStripMenuItem("Add to playlist");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "addtoplaylist";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Play file");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "playfileCM";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Delete");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "removefilelibraryCM";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Exit");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "exitCM";
menuStrip.Items.Add(menuItem);
this.ContextMenuStrip = menuStrip;
}
if (Control_Pestanas.SelectedPageIndex == 4)
{
ContextMenuStrip menuStrip = new ContextMenuStrip();
ToolStripMenuItem menuItem = new ToolStripMenuItem("Restore default configuration");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "restoreconfig";
menuStrip.Items.Add(menuItem);
menuItem = new ToolStripMenuItem("Exit");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "exitCM";
menuStrip.Items.Add(menuItem);
this.ContextMenuStrip = menuStrip;
}

}

void menuItem_Click(object sender, EventArgs e)
{
ToolStripItem menuItem = (ToolStripItem)sender;
if (menuItem.Name == "downloadCM")
{
ConvertirCancion();
}
if (menuItem.Name == "playfileCM")
{
ReproductorIntegrado.URL = mArchivos[lista_Biblioteca.SelectedIndex];
Application.DoEvents();
}
if (menuItem.Name == "removefilelibraryCM")
{
try {
File.Delete(mArchivos[lista_Biblioteca.SelectedIndex]);
ListarCanciones();
} catch
{
ReproductorIntegrado.Ctlcontrols.stop();
ReproductorIntegrado.URL = null;
File.Delete(mArchivos[lista_Biblioteca.SelectedIndex]);
ListarCanciones();
}
}
if (menuItem.Name == "exitCM")
{
Application.Exit();
}
if (menuItem.Name == "openytCM")
{
Process.Start(urlCanciones[listBox1.SelectedIndex]);
}
if (menuItem.Name == "playpreviewCM")
{
ReproductorIntegrado.URL = CarpetaDescargas + "/" + lista_Descargas.SelectedItem.ToString() + ".mp3";
}
if (menuItem.Name == "previewdownloadCM")
{
ConvertirCancion();
int ed = 7000000;
while(ed != 0)
{
Application.DoEvents();
ed--;
}
ReproductorIntegrado.URL = CarpetaDescargas + "/" + Titulo + ".mp3";

}
}

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
try {
listaReproduccion.CheckedItems.OfType<string>().ToList().ForEach(listaReproduccion.Items.Remove);
} catch
{
Application.DoEvents();
}
}

private void timer1_Tick(object sender, EventArgs e)
{
CreateContextMenu();
}

private void label16_Click(object sender, EventArgs e)
{
Process.Start("http://foro.code-makers.es/viewtopic.php?f=21&t=65");
}
}


}
Imagen

EL QUE NO DICE LA VERDAD, ES PORQUE ESTA MINTIENDO
Avatar de Usuario
JohnConnor
Nos vamos conociendo
Nos vamos conociendo
Mensajes: 89
Registrado: Mar Ene 05, 2016 12:59 am
Ubicación: Argentina
Contactar:

Re: Jason [Youtube Downloader] - C# | Actualización: V2.5

Mensajepor JohnConnor » Vie Mar 25, 2016 7:54 pm

Actualización V2.5.1 Jason's MP3

Hola CM!, tras la sugerencia de Elektro en elhacker.net les traigo la versión 2.5.1 de Jason's MP3.

Mejoras mas importantes:
° Descarga audio en Mp3 y videos en Mp4.
° Nueva función Reproducir & Descargar (escuchas y a la vez descargas, solo con audios)
° Reproductor multimedia integrado
° Chat ¿?
° Configuraciones
° Vista previa mientras se descarga. (solo audio)

Imagen
Imagen
Imagen
Imagen
Imagen

Descarga portable: http://www.mediafire.com/download/bm96c ... /Jason.rar
hay que descomprimirlo en achivos de programa, y ejecutar arrancadorcs.exe o Jason21.exe como administrador. lo pongo así porque sino virus total me jode ya nos se que hacer todo es virus para el...


Descarga proyecto: http://www.mediafire.com/download/vk45c ... oyecto.rar

Saludos!
Imagen

EL QUE NO DICE LA VERDAD, ES PORQUE ESTA MINTIENDO

Volver a “Proyectos Propios”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado