Sign in to YouTube using WebRequests in C #

I am new to using WebRequests in C # and would like some help to go into YouTube and store cookies in a cookie container. Any help would be greatly appreciated.

+4
source share
1 answer

If you use the .NET client library (http://code.google.com/p/google-gdata/), then if necessary, you will need authentication using the credentials you provided:

https://developers.google.com/youtube/2.0/developers_guide_dotnet#Authentication

GData in C #

When using the GData API there is no explicit method of logging out, you can invalidate the token, but it will expire after a while if you do not use it. Specific information on how to invalidate the token varies according to the accepted authentication mechanism (OAuth, AuthSub, ClientLogin).

You can also refer to this article on CodeProject, Manage YouTube with C # and Youtube API 1.6

YouTubeService service = new YouTubeService(); service.setUserCredentials(txtUser.Text , txtPassword.Text); try { service.QueryClientLoginToken(); } catch(System.Net.WebException e) { MessageBox.Show(e.Message); } 

ADDED: I changed the code below to fit your requirements.

 class YouTube { public void Login() { HttpWebRequest request = GetNewRequest("https://accounts.google.com/ServiceLoginAuth", cookies); request.Referer = "https://accounts.google.com/ServiceLogin?passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26feature%3Dsign_in_button%26nomobiletemp%3D1%26hl%3Den_US%26next%3D%252F&uilel=3&hl=en_US&service=youtube"; request.Host = "accounts.google.com"; Dictionary<string, string> parameters = new Dictionary<string, string>{ {"continue","https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26feature%3Dsign_in_button%26nomobiletemp%3D1%26hl%3Den_US%26next%3D%252F"}, {"service","youtube"},{"uilel","3"},{"dsh","157212168103955870"},{"hl","en_US"}, {"GALX","PTqcwpZb2aE"},{"pstMsg","1"},{"dnConn",""}, {"checkConnection","youtube%3A248%3A1"}, {"checkedDomains","youtube"}, {"timeStmp",""}, {"secTok",""}, {"Email","username"}, {"Passwd","password"}, {"signIn","Sign+in"}, {"PersistentCookie","yes"}, {"rmShown","1"}}; HttpWebResponse response = MakeRequest(request, cookies, parameters); response.Close(); } private static CookieContainer cookies = new CookieContainer(); private static HttpWebRequest GetNewRequest(string targetUrl, CookieContainer SessionCookieContainer) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(targetUrl); request.CookieContainer = SessionCookieContainer; request.AllowAutoRedirect = false; return request; } private static HttpWebResponse MakeRequest(HttpWebRequest request, CookieContainer SessionCookieContainer, Dictionary<string, string> parameters = null) { request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5Accept: */*"; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; request.CookieContainer = SessionCookieContainer; request.AllowAutoRedirect = false; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; string postData = string.Empty; foreach (KeyValuePair<String, String> parametro in parameters) { if (postData.Length == 0) postData += String.Format("{0}={1}", parametro.Key, parametro.Value); else postData += String.Format("&{0}={1}", parametro.Key, parametro.Value); } byte[] postBuffer = UTF8Encoding.UTF8.GetBytes(postData); using (Stream postStream = request.GetRequestStream()) { postStream.Write(postBuffer, 0, postBuffer.Length); } HttpWebResponse response = request.GetResponse() as HttpWebResponse; SessionCookieContainer.Add(response.Cookies); while (response.StatusCode == HttpStatusCode.Found) { response.Close(); request = GetNewRequest(response.Headers["Location"], SessionCookieContainer); response = (HttpWebResponse)request.GetResponse(); SessionCookieContainer.Add(response.Cookies); } return response; } } 

Link: http://social.msdn.microsoft.com/Forums/pl-PL/ncl/thread/40d249b5-a9ad-4068-8853-629fb20584a0

+4
source

Source: https://habr.com/ru/post/1438610/


All Articles