For this, I first wrote a very simple way to execute a GET request and return the response (Removed all forms of error checking for brevity):
public static string ExecuteGETRequest(string url) { var request = (HttpWebRequest)WebRequest.Create(url); using (var response = (HttpWebResponse)request.GetResponse()) { var reader = new StreamReader(response.GetResponseStream()); return reader.ReadToEnd(); } }And here's the method that does the task at hand:
public static string GetYouTubeVideoTitle(string youtubeLinkUrl) { string response = ExecuteGETRequest(youtubeLinkUrl), title = response.Substring(response.IndexOf("<title>\n") + 8); title = title.Substring(0, title.IndexOf("\n")); return title.Trim(); }
Usage
var title = GetYouTubeVideoTitle("http://www.youtube.com/watch?v=TY9jN6hm3N0"); // "Wicked Lady - Ship of Ghosts (Part 1 of 2) 1972"Be wary of using this method for extracting titles because it could potentially break in the future due to changes in how YouTube renders the page with HTML; but it may be useful for quick scripts.
Checking for link validity
If you want to make sure the given link actually points to a YouTube video, you can use something like this:public static bool IsValidYoutubeLink(string youtubeLink) { // Regular expression from http://www.regexlib.com/REDetails.aspx?regexp_id=2569 return Regex.IsMatch(youtubeLink, @"^http://\w{0,3}.?youtube+\.\w{2,3}/watch\?v=[\w-]{11}"); }