我想从我的java网络应用程序上传YouTube上的视频: 我希望收到(服务器端)我的authToken和表单操作,以便上传视频。
现在我正在尝试使用oAuth 2.0实现我的代码。 我有accessToken但是,当我尝试调用服务getFormUploadToken(url,object)时,响应始终是相同的“ NoLinkedYoutubeAccount错误401 ”。
我还通过谷歌支持页面http://www.youtube.com/my_account_unlink验证了该帐户,但似乎没问题。
有人对这个问题有所了解吗?
这是我的代码:
HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
JsonFactory JSON_FACTORY = new JacksonFactory();
String accessToken = "";
GoogleCredential credential = null;
credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(CLIENT_EMAIL)
.setServiceAccountScopes("http://gdata.youtube.com")
.setServiceAccountPrivateKeyFromP12File(new File(PRIVATE_KEY_PATH))
.build();
credential.refreshToken();
accessToken = credential.getAccessToken();
YouTubeService service = new YouTubeService(CLIENT_ID, DEV_KEY);
service.setAuthSubToken(accessToken, null);
VideoEntry newEntry = new YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup();
mg.setTitle(new MediaTitle());
mg.getTitle().setPlainTextContent("My Test Movie");
URL uploadUrl = new URL("http://gdata.youtube.com/action/GetUploadToken");
FormUploadToken token = service.getFormUploadToken(uploadUrl, newEntry);
非常感谢, 艾伯特三世
答案 0 :(得分:4)
如错误所示,您尚未将帐户凭据与youtube相关联。
你可以解决这个问题: - 使用www.youtube.com上的应用程序中使用的帐户进行连接 - 尝试上传视频 - 当youtube询问时设置姓名和姓氏,并处理链接到gmail。
完成!我在使用我的应用程序使用Firefox上传视频之前尝试过。
答案 1 :(得分:3)
您无法将YouTube频道与服务帐户相关联,并且您尝试在服务帐户的上下文中进行上传。
您应该使用您实际要上传到的帐户登录浏览器,而不是使用服务帐户,而是通过OAuth 2流程并授权访问权限。
我了解使用服务帐户的好处,但目前尚未设置YouTube与他们合作。
答案 2 :(得分:2)
如果您创建了YouTube帐户,并且已经链接到您的Google帐户,请确保在YouTube中创建自己的频道。
这将允许API将视频上传到您创建的频道。
希望它有所帮助。