c# - Why when trying to upload a video file to youtube i'm getting InvalidCredentialsException? -
this code in form1:
using system; using system.collections.generic; using system.componentmodel; using system.data; using system.drawing; using system.linq; using system.text; using system.windows.forms; using system.io; using google.gdata.client; using google.gdata.extensions; using google.gdata.youtube; using google.gdata.extensions.mediarss; using google.youtube; namespace youtube_manager { public partial class form1 : form { youtuberequestsettings settings; youtuberequest request; string username = "myusername", password = "mypass", devkey = "mydevkey"; string filename, filetype, filemime; public string devkey { { return devkey; } set { devkey = value; } } public string password { { return password; } set { password = value; } } public string username { { return username; } set { username = value; } } public form1() { initializecomponent(); } private void form1_load(object sender, eventargs e) { devkey = devkey; password = password; username = username; settings = new youtuberequestsettings("youtube_manager", devkey, username, password); request = new youtuberequest(settings); if (cmbcat.items.count > 0) { cmbcat.selectedindex = 0; } if (cmbprivacy.items.count > 0) { cmbprivacy.selectedindex = 0; } } public void uploadvideo() { video video = new video(); video.title = txttitle.text; video.tags.add(new mediacategory(cmbcat.selecteditem.tostring(), youtubenametable.categoryschema)); video.keywords = txtkeywords.text; if (cmbprivacy.selectedindex == 1) video.private = true; else video.private = false; getfilemime(); video.mediasource = new mediafilesource(filename, filemime); request.upload(video); messagebox.show("successfully uploaded"); } public void getfilemime() { switch (filetype) { case "flv": filemime = "video/x-flv"; break; case "avi": filemime = "video/avi"; break; case "3gp": filemime = "video/3gpp"; break; case "mov": filemime = "video/quicktime"; break; default: filemime = "video/quicktime"; break; } } private void btnchoosefile_click(object sender, eventargs e) { string tmp; choosefile.showdialog(); tmp = choosefile.filename; txtfilepath.text = tmp; string[] title = tmp.split('\\'); int = title.getupperbound(0); string temp = title[i]; string[] title1 = temp.split('.'); txttitle.text = title1[0]; filename = tmp.replace("\\", "\\\\"); filetype = title1[1]; } private void button1_click(object sender, eventargs e) { dialogresult result = messagebox.show("by clicking 'upload,' " + "you certify own rights content or authorized" + "by owner make content publicly available on youtube, , otherwise" + "complies youtube terms of service located @ http://www.youtube.com/t/terms", "aggrement", messageboxbuttons.yesno, messageboxicon.question); if (result == dialogresult.yes) { uploadvideo(); } } private void button2_click(object sender, eventargs e) { this.close(); } } }
the exception on line:
request.upload(video);
in google development site created application called youtube uploader. , key i'm using in c# app client id ending with: apps.googleusercontent.com
but i'm not sure right key. user name i'm using gmail email use log in youtube. , password.
in code cmbcat , cmbprivacy comboboxes.
this exception message:
google.gdata.client.invalidcredentialsexception unhandled hresult=-2146233088 message=invalid credentials source=google.gdata.client stacktrace: @ google.gdata.client.utilities.queryclientlogintoken(gdatacredentials gc, string servicename, string applicationname, boolean fusekeepalive, iwebproxy proxyserver, uri clientloginhandler) @ google.gdata.client.gdatagauthrequest.queryauthtoken(gdatacredentials gc) @ google.gdata.client.gdatagauthrequest.ensurecredentials() @ google.gdata.client.gdatarequest.ensurewebrequest() @ google.gdata.client.gdatagauthrequest.ensurewebrequest() @ google.gdata.client.gdatagauthrequest.copyrequestdata() @ google.gdata.client.gdatagauthrequest.execute(int32 retrycounter) @ google.gdata.client.gdatagauthrequest.execute() @ google.gdata.client.mediaservice.entrysend(uri feeduri, atombase baseentry, gdatarequesttype type, asyncsenddata data) @ google.gdata.client.service.insert(uri feeduri, atomentry newentry, asyncsenddata data) @ google.gdata.client.service.insert[tentry](uri feeduri, tentry entry) @ google.gdata.youtube.youtubeservice.upload(string username, youtubeentry entry) @ google.youtube.youtuberequest.upload(string username, video v) @ google.youtube.youtuberequest.upload(video v) @ youtube_manager.form1.uploadvideo() in d:\c-sharp\youtube_manager\youtube_manager\youtube_manager\form1.cs:line 81 @ youtube_manager.form1.button1_click(object sender, eventargs e) in d:\c-sharp\youtube_manager\youtube_manager\youtube_manager\form1.cs:line 122 @ system.windows.forms.control.onclick(eventargs e) @ system.windows.forms.button.onclick(eventargs e) @ system.windows.forms.button.onmouseup(mouseeventargs mevent) @ system.windows.forms.control.wmmouseup(message& m, mousebuttons button, int32 clicks) @ system.windows.forms.control.wndproc(message& m) @ system.windows.forms.buttonbase.wndproc(message& m) @ system.windows.forms.button.wndproc(message& m) @ system.windows.forms.control.controlnativewindow.onmessage(message& m) @ system.windows.forms.control.controlnativewindow.wndproc(message& m) @ system.windows.forms.nativewindow.debuggablecallback(intptr hwnd, int32 msg, intptr wparam, intptr lparam) @ system.windows.forms.unsafenativemethods.dispatchmessagew(msg& msg) @ system.windows.forms.application.componentmanager.system.windows.forms.unsafenativemethods.imsocomponentmanager.fpushmessageloop(intptr dwcomponentid, int32 reason, int32 pvloopdata) @ system.windows.forms.application.threadcontext.runmessageloopinner(int32 reason, applicationcontext context) @ system.windows.forms.application.threadcontext.runmessageloop(int32 reason, applicationcontext context) @ system.windows.forms.application.run(form mainform) @ youtube_manager.program.main() in d:\c-sharp\youtube_manager\youtube_manager\youtube_manager\program.cs:line 18 @ system.appdomain._nexecuteassembly(runtimeassembly assembly, string[] args) @ system.appdomain.executeassembly(string assemblyfile, evidence assemblysecurity, string[] args) @ microsoft.visualstudio.hostingprocess.hostproc.runusersassembly() @ system.threading.threadhelper.threadstart_context(object state) @ system.threading.executioncontext.runinternal(executioncontext executioncontext, contextcallback callback, object state, boolean preservesyncctx) @ system.threading.executioncontext.run(executioncontext executioncontext, contextcallback callback, object state, boolean preservesyncctx) @ system.threading.executioncontext.run(executioncontext executioncontext, contextcallback callback, object state) @ system.threading.threadhelper.threadstart() innerexception:
clientlogin (login , password) deprecated of april 20, 2012 , turned off on may 26 2015. code not longer work need switch using oauth2.
i recomed use new google client library
Comments
Post a Comment