記録

C# でYOUTUBEダウンロードもどきを作ってみました。


C# でYOUTUBEダウンロードもどきを作ってみました。ライブラリを使用しているので、結局、楽に作れるわけです。ホントに有り難いものです。YOUTUBEやニコニコ動画をダウンロードするソフトが売られていますけど、おそらくソフトウェアプログラマーは買うことはないだろうなと言う印象を作ってみて思いましたね。

【表示する】buttonを押下後、【ダウンロードする】を押さないとダウンロード出来ない仕様に変更してます。

ライブラリにこちらのライブラリを使用しております。
https://www.nuget.org/packages/VideoLibrary/

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.Text.RegularExpressions;
using VideoLibrary;
namespace YOUTUBEDownloadEv2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate(textBox1.Text);
        }
        private void button2_Click(object sender, EventArgs e)
        {
            button1.Visible = false;
            button2.Visible = false;
            backgroundWorker1.RunWorkerAsync();
        }
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            backgroundWorker1.ReportProgress(10);
            webBrowser1.Navigate(textBox1.Text);
            backgroundWorker1.ReportProgress(30);
            string pat = @"\?v=([^&]+)";
            string YouTubeid = textBox1.Text;
            Regex r = new Regex(pat, RegexOptions.IgnoreCase);
            Match m = r.Match(YouTubeid);
            string Yid = m.Groups[1].ToString();
            webBrowser1.Navigate(textBox1.Text);
            backgroundWorker1.ReportProgress(50);
            if (Yid != "")
            {
                backgroundWorker1.ReportProgress(70);
                var VedioUrl = "https://www.youtube.com/embed/" + Yid + ".mp4";
                var youTube = YouTube.Default;
                var video = youTube.GetVideo(VedioUrl);
                System.IO.File.WriteAllBytes(video.FullName + ".mp4", video.GetBytes());
                backgroundWorker1.ReportProgress(80);
            }
            backgroundWorker1.ReportProgress(100);
        }
        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            button1.Visible = true;
            button2.Visible = true;
            MessageBox.Show("Download完了しました");
        }
        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            // RunWorkerAsyncが呼び出された時に発生
            backgroundWorker1.DoWork +=
                new DoWorkEventHandler(backgroundWorker1_DoWork);
            // BackgroundWorkerでの処理が完了した時に発生
            backgroundWorker1.RunWorkerCompleted +=
                new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
            // 進捗があった時に発生
            backgroundWorker1.ProgressChanged +=
                new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
        }
    }
}


毎日100人超ではないけれど大体100人アクセスで200超ビュー前のページ

言霊や態度次のページ

関連記事

  1. 記録

    SNSの普及で他人が近く感じる人が増えている。

    SNSの普及で他人が近く感じる人が増えている。原因は簡単にいえば一…

  2. 記録

    死んだ馬と死んだ目は同意語カモ?

    冴えないイラストレーターの使い方をしています。さて、人はなぜ『…

  3. 記録

    不定期でnoteを始めます。

    noteに一コマ漫画を不定期で掲載する事にきめました。https…

  4. 記録

    馬鹿は莫迦の当て字。

    この頃、思うのだけど活躍している人はどこか純粋なひとが多い気がする…

  5. 記録

    いまの人工知能っていうのは意識というものは無いけれども。

    いまの人工知能っていうのは意識というものは無いけれどもマニュアルがあ…

  6. 記録

    おすすめ度の高いフリーのエディタです{Notepad++}。

    おすすめ度の高いフリーのエディタです、エディタ名がNotepad++…

PAGE TOP