将视频上传到youtube而无需在浏览器中登录

nat*_*nat 5 java youtube video youtube-api google-oauth

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

使用用户的json标记.但是,当我尝试上传时,会打开谷歌的网页,并要求我登录并批准我的用户上传视频.

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

min*_*0rk 4

您可以复制课程

授权码已安装App

并重写该方法

浏览(字符串网址)

您需要意识到,以编程方式转到网址,如下所示(我使用 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();
}
Run Code Online (Sandbox Code Playgroud)

这对我来说很好。