none
YoutubeExtractor en CMD RRS feed

  • Pregunta

  • hola a todos nuevamente, investigando en internet encontre este nugget muy particular que te permite descargar videos y convertir videos a mp3, lo que ocurre es que usando el ejemplo copie y pegue en un nuevo proyecto de CMD y me dio error , es posible que no necesariamente se tenga hacer en un form? ya que hay muchos tutoriales, pero me interesa es en linea de comandos (ventanita negra) cmd. si es asi como se plantearia la resolucion.

    string link = "insert youtube link";
    IEnumerable<VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(link);
    VideoInfo video = videoInfos
        .First(info => info.VideoType == VideoType.Mp4 && info.Resolution == 360);
    if (video.RequiresDecryption)
    {
        DownloadUrlResolver.DecryptDownloadUrl(video);
    }
    
    var videoDownloader = new VideoDownloader(video, Path.Combine("D:/Downloads", video.Title + video.VideoExtension));
    
    videoDownloader.DownloadProgressChanged += (sender, args) => Console.WriteLine(args.ProgressPercentage);
    
    videoDownloader.Execute();
    
    
    ----------------parte de mp3------------------------------
    
    VideoInfo video = videoInfos
        .Where(info => info.CanExtractAudio)
        .OrderByDescending(info => info.AudioBitrate)
        .First();
    
    if (video.RequiresDecryption)
    {
        DownloadUrlResolver.DecryptDownloadUrl(video);
    }
    
    var audioDownloader = new AudioDownloader(video, Path.Combine("D:/Downloads", video.Title + video.AudioExtension));
    
    audioDownloader.DownloadProgressChanged += (sender, args) => Console.WriteLine(args.ProgressPercentage * 0.85);
    audioDownloader.AudioExtractionProgressChanged += (sender, args) => Console.WriteLine(85 + args.ProgressPercentage * 0.15);
    
    /*
     * Execute the audio downloader.
     * For GUI applications note, that this method runs synchronously.
     */
    audioDownloader.Execute();

    dejo la web para mayor referencia https://github.com/flagbug/YoutubeExtractor

    quiero colocarlo en consola de sistema para manipularlo con un sinthzspeech para dar la orden de "descargar video"

    lunes, 27 de noviembre de 2017 17:40

Respuestas

  • hola

    >>usando el ejemplo copie y pegue en un nuevo proyecto de CMD y me dio error

    que dice el mensaje de error ?

    esta seguro que la libreria esta actualizada y es compatible con la api que expone youtube, porque recuerda que si la libreria es una version antigua puede que no sea compatible con nuevas versiones de youtube

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    lunes, 27 de noviembre de 2017 17:59

Todas las respuestas

  • hola

    >>usando el ejemplo copie y pegue en un nuevo proyecto de CMD y me dio error

    que dice el mensaje de error ?

    esta seguro que la libreria esta actualizada y es compatible con la api que expone youtube, porque recuerda que si la libreria es una version antigua puede que no sea compatible con nuevas versiones de youtube

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    lunes, 27 de noviembre de 2017 17:59
  • tiene sentido tu respuesta dejame probar haciendo el ejemplo que sale en youtube y probando bajar un video a ver si funciona, el error es que me cerraba la aplicacion cuadno la corria desde el visual, pruebo y regreso
    lunes, 27 de noviembre de 2017 22:59
  • en efecto termine de hacer el codigo siguiendo el tutorial , el programa corre pero no descarga y genera un error q no entiendo, te dejo el codigo y el video del cual me guie, y si es que ya esa dll no sirve para la fecha actual... tendre que descartarlo.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using YoutubeExtractor;
    
    namespace DownloadYouTube
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                cboResolution.SelectedIndex = 0;
            }
    
            private void btnDownload_Click(object sender, EventArgs e)
            {
                progressBar.Minimum = 0;
                progressBar.Maximum = 100;
                IEnumerable<VideoInfo> videos = DownloadUrlResolver.GetDownloadUrls(txtUrl.Text);
                VideoInfo video = videos.First(p => p.VideoType == VideoType.Mp4 && p.Resolution == Convert.ToInt32(cboResolution.Text));
                if (video.RequiresDecryption)
                    DownloadUrlResolver.DecryptDownloadUrl(video);
                VideoDownloader downloader = new VideoDownloader(video, Path.Combine(Application.StartupPath + "\\", video.Title + video.VideoExtension));
                downloader.DownloadProgressChanged += Downloader_DownloadProgressChanged;
                Thread thread = new Thread(() => { downloader.Execute(); }) { IsBackground = true };
                thread.Start();
            }
    
            private void Downloader_DownloadProgressChanged(object sender, ProgressEventArgs e)
            {
                Invoke(new MethodInvoker(delegate ()
                {
                    progressBar.Value = (int)e.ProgressPercentage;
                    lblPercentage.Text = $"{string.Format("{0:0.##", e.ProgressPercentage)}%";
                    progressBar.Update();
                }));
            }
        }
    }
     

    https://www.youtube.com/watch?v=TnG3urCD_m0

    esto esta basado en windows forms no

    wpf y mucho menos cmd(que es el que interesa aunque el wpf para poder agregar una barra visible y poder monitorear el progreso e la descarga, aunque en cmd seria tambien interesanto si es posible hacerlo)


    lunes, 27 de noviembre de 2017 23:23
  • hola has revisado que no se falta de un codec? descarga el k-lite y revisa bien el codigo de git si necesita alguna dependencia, anyway here's another 

    aca hay otro codigo que descarga video de youtube que me parecio bueno https://github.com/jeckman/YouTube-Downloader

    martes, 28 de noviembre de 2017 13:29