C# YouTubeのMP4のダウンロード

ゆーすけべーさんの日記でYouTubnのMP4をダウンロードするPerlのスクリプトを公開している。
それをC#で書いてみた。いまさらって感じですが・・・。

---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Net;
using System.IO;
using System.Web;

namespace GetYouTubeMp4
{
class Program
{
// 引数にMp4をダウンロードしたいYouTubeのURLを指定して実行する
static void Main(string[] args)
{
try
{
WebClient webClient = new WebClient();
Stream stream = webClient.OpenRead(args[0].ToString());
StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("Shift_JIS"));
Regex regex = new Regex("video_id=(.+?)&.*?&t=(.+?)&");
Match match = regex.Match(streamReader.ReadToEnd());
if (match.Success)
{
//生成したYouTubeのMp4のパスからYouTubeの動画のID名で保存する
webClient.DownloadFile(string.Format("http://www.youtube.com/get_video?video_id={0}&t={1}&fmt=18", match.Groups[1], match.Groups[2]),
string.Format("{0}.mp4", match.Groups[1].ToString()));
Console.WriteLine("Success Download:{0}", args[0].ToString());
}
else
{
Console.WriteLine("Fail Download:{0}", args[0].ToString());
}
stream.Close();
streamReader.Close();
webClient.Dispose();
}
catch (Exception exception)
{
Console.WriteLine("Exception:{0}", exception.ToString());
}
}
}
}
---------------------------------------------------------------------
■exeの場所
上記のソースをコンパイルしたexeは以下の場所にあります。



.NetFramework 2.0のRuntimeがインストールされいている場所であれば動くはずです。

使い方
・コマンドプロンプトを開いてください。
・exeのおいてある場所まで移動してください。
・ダウンロードしたいYouTubeのURLを指定してコマンドを実行してください。
例) GetYouTubeMp4.exe http://www.youtube.com/watch?v=SO1ALWtEQMg 
 

■参考にしたページ
ゆーすけーべーさんの日記 PerlでYouTubeのmpeg4を直接ダウンロードする

それにしてもゆーすけべーさんはすごいなぁ・・。いくつも便利なサービスをあっというまに作ってしまうんだから・・・

2009/09/13 追記
このコマンドはYoutubeの仕様がかわったので使えない。

コメント

このブログの人気の投稿

Visual studio C++のコンパイル時の警告C4566の対応方法

[Windows 10] Any player DVD 変換