java - 无需在浏览器中登录即可将视频上传到 youtube

标签 java video youtube youtube-api google-oauth

我在桌面上构建了 java 应用程序,允许将视频分享到 youtube 到特定的谷歌帐户。 我使用示例中建议的代码从以下位置上传视频: https://developers.google.com/youtube/v3/code_samples/java#upload_a_video

使用用户的 json token 。 但是当我尝试上传时,它会打开一个谷歌网页并要求我登录并批准我的用户上传视频。

有没有办法跳过这个级别并从 java 代码中完成? 我不想让用户在网页上登录到他的谷歌帐户,只使用我用 java 制作的 GUI。

最佳答案

你可以复制类

AuthorizationCodeInstalledApp

并覆盖方法

browse(String url)

你需要意识到,以编程方式转到一个 url,就像这样(我使用 htmlunit):

public void browse(String url) throws IOException {
    WebClient webClient =  initWebClient();        
    HtmlPage htmlPage = webClient.getPage(url);

    //first you need login with your email and password 
    final HtmlTextInput login = (HtmlTextInput) htmlPage.getByXPath("//input[@type='email']").get(0);
    final HtmlPasswordInput pass = (HtmlPasswordInput) htmlPage.getByXPath("//input[@type='password']").get(0);
    HtmlSubmitInput button = (HtmlSubmitInput) htmlPage.getByXPath("//input[@type='submit']").get(0);
    //set input login and passwd
    login.setText(this.login);
    pass.setText(this.passwd);
    //press submit button
    button.click();

    //next need select account
    htmlPage = webClient.getPage(url);
    DomNodeList<HtmlElement> list = htmlPage.getElementById("account-list").getElementsByTagName("li");
    String account = list.get(0).getElementsByTagName("a").get(0).getAttribute("href");
    System.out.println(account);
    htmlPage = webClient.getPage(account);

    //and click submit button for approve 
    System.out.println("Wait 10sec.");
    webClient.waitForBackgroundJavaScript(10000);
    HtmlButton submitInput = (HtmlButton) htmlPage.getElementById("submit_approve_access");
    submitInput.click();
}

这对我来说很好。

关于java - 无需在浏览器中登录即可将视频上传到 youtube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28114248/

相关文章:

java - 如何使用apache commons vfs从Windows读取远程文件到Linux?

objective-c - 来自 GPUImageMovie 的视频开头有红框

silverlight - 表达式混合教程?

javascript - YouTube API 和 playVideo 的噩梦

jquery - 字体很棒的 youtube 在我的网站上不工作

java - MyEclipse - 将 war 文件部署到 tomcat

java - 使用 xtype pathfield 遍历子页面

video - 如何手动重置从 m4s 文件创建的 mp4 视频的偏移量?

angular - 错误TypeError:无法读取null的 'loadVideoById'属性

java - Jersey 客户错误请求