我想從YouTube下載視頻。我想如何從YouTube獲取視頻下載鏈接?
http://www.youtube.com/watch?v=Fwa_GvIBH38&feature=feedrec_grec_index
要
http://o-o.preferred.btcl-dac1.v6.lscache4.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Csource%2Calgorithm%2Cburst%2Cfactor%2Ccp&fexp=914016%2C904443&algorithm=throttle-factor&itag=34&ip=58.0.0.0&burst=40&sver=3&signature=82D07EBDBED8BC79D08AEE3F90B1473E44D4065E.88AB21BBB9E2D252B65FE6C419CD7867CDE8815C&source=youtube&expire=1322694000&key=yt1&ipbits=8&factor=1.25&cp=U0hRR1ZUUl9FSkNOMV9OTlZBOmRXLUt2VHYwWVY2&id=1706bf1af2011f7f&ptchn=collegehumor&ptk=collegehumor
我上面從IDM鏈接。
我從一個網站獲得兩種方法來獲得上述鏈接。
//this methods get's the download link for youtube videos in mp4 format.
public string url(string url)
{
string html = getYoutubeHtml(url);
HtmlAgilityPack.HtmlDocument hDoc = new HtmlDocument();
hDoc.LoadHtml(html);
HtmlNode node = hDoc.GetElementbyId("movie_player");
string flashvars = node.Attributes[5].Value;
string _url = Uri.UnescapeDataString(flashvars);
string[] w = _url.Split('&');
string link = "";
bool foundUrlMap = false;
for (int i = 0; i < w.Length; i++)
{
if (w[i].Contains("fmt_url_map="))
{
foundUrlMap = true;
link += w[i].Split('|')[1];
}
if (foundUrlMap)
{
//add the parameters to the url
link += "&" + w[i];
if (w[i].Contains("id="))
{
link = link.Split(',')[0];
//change the array index for different formats
break;
}
}
}
link = link.Split('|')[1] + "&title=out";
System.Windows.MessageBox.Show(link);
return link;
}
//this method downloads the html code from the youtube page.
private string getYoutubeHtml(string url)
{
string html = "";
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
TextReader reader = new StreamReader(response.GetResponseStream());
string line = "";
while ((line = reader.ReadLine()) != null)
{
html += line;
}
return html;
}
這不是work.ing
它沒有找到fmt_url_map=
的瓦特
所以現在我能做什麼裏面?
嘗試轉換[這個問題的回答(http://stackoverflow.com/questions/6015962/how-直接加載流這個解決方案不起作用。C# – Blender
該解決方案不起作用。 – Vero009
您是否已將其轉換? – Blender