如何在 YouTube 中播放私人视频?

How to play private videos in YouTube?

我正在开发一个可以播放当前登录的所有视频的应用程序 user.I 可以播放所有 public 视频,如播放列表视频、观看稍后的视频等,但我无法使用私人 access.I 播放我上传的视频 我使用 WebView 登录 Google 帐户,我没有使用 AccountManager 因为如果我使用 AccountManager,它将触发本机 Android 流程,而我不希望这样。 我正在使用以下代码获取 authURL 。

String authUrl = new GoogleAuthorizationCodeRequestUrl(CLIENT_ID, REDIRECT_URI, Arrays.asList("https://gdata.youtube.com",YouTubeScopes.YOUTUBE,YouTubeScopes.YOUTUBE_READONLY, YOUTUBE_EMAIL_SCOPE, Scopes.PROFILE, YouTubeScopes.YOUTUBE)).build();

我正在使用此代码获取访问令牌。

 final GoogleAuthorizationCodeFlow flow = YoutubeGoogleAuthorizationCodeFlow.getInstance(getApplicationContext());
 GoogleAuthorizationCodeTokenRequest tokenRequest =
 flow.newTokenRequest(authorizationCode).setRedirectUri(YouTubeModule.REDIRECT_URI);
 GoogleTokenResponse tokenResponse = tokenRequest.execute();
 credential = flow.createAndStoreCredential(tokenResponse, "");
 token = credential.getAccessToken();

并使用此 link 中的代码播放 public 视频。 play streaming in VideoView, convert url to rtsp

如果我像这样更改代码

String gdy = "http://gdata.youtube.com/feeds/api/videos/";
DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        youtubeVidId = extractYoutubeId(videoId);
        URL url = new URL(gdy + youtubeVidId);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestProperty("Authorization", String.format("GoogleLogin auth=\"%s\"", authToken));
        connection.setRequestProperty("GData-Version", "2");
        connection.setRequestProperty("X-Youtube-Deviceauthtoken", devKey);

我应该可以播放视频,但不知何故 authToken 不正确。

所以这是我的问题,您需要一个不同的 authToken 来播放私人视频吗? 此致,

检索流式 URLS 没有适当的文档(从当前登录的用户帐户检索视频 URL)。经过大量的努力,这是解决这个问题的方法。

1) 需要额外的范围:“http://gdata.youtube.com”:访问类型:"Offline"

2) 需要以下 headers

*。 Content-Type : application/atom+xml

*。授权:不记名 (根据文档,这是 "GoogleLogin auth =")

*。 GData-Version : 2

*。 X-Youtube-Deviceauthtoken:开发密钥