我正在编写一个应用程序,其中我想获取YouTube视频列表,我可以通过使用特定用户的帐户来实现,如下面的链接:
HttpUriRequest request = new HttpGet("http://gdata.youtube.com/feeds/api/users/GoogleDevelopers/uploads?v=2&alt=jsonc");
但如果我想要使用播放列表获取YouTube视频列表,那么我需要在我的代码中进行哪些更改,例如此处我不需要用户名来获取视频。
http://gdata.youtube.com/feeds/api/playlists/PL1D5B07DD840FB46D?v=2&alt=json
原始链接: http://www.youtube.com/playlist?list=PL1D5B07DD840FB46D
我的代码:
public class GetYouTubeUserVideosTask implements Runnable {
public static final String LIBRARY = "Library";
private final Handler replyTo;
private final String username;
public GetYouTubeUserVideosTask(Handler replyTo, String username) {
this.replyTo = replyTo;
this.username = username;
}
@Override
public void run() {
try {
HttpClient client = new DefaultHttpClient();
HttpUriRequest request = new HttpGet("http://gdata.youtube.com/feeds/api/playlists/PL1D5B07DD840FB46D?v=2&alt=json");
HttpResponse response = client.execute(request);
String jsonString = StreamUtils.convertToString(response.getEntity().getContent());
JSONObject json = new JSONObject(jsonString);
JSONArray jsonArray = json.getJSONObject("data").getJSONArray("items");
List<Video> videos = new ArrayList<Video>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String title = jsonObject.getString("title");
String url;
try {
url = jsonObject.getJSONObject("player").getString("default");
} catch (JSONException ignore) {
url = jsonObject.getJSONObject("player").getString("default");
}
String thumbUrl = jsonObject.getJSONObject("thumbnail").getString("sqDefault");
videos.add(new Video(title, url, thumbUrl));
}
Library lib = new Library(username, videos);
Bundle data = new Bundle();
data.putSerializable(LIBRARY, lib);
Message msg = Message.obtain();
msg.setData(data);
replyTo.sendMessage(msg);
} catch (ClientProtocolException e) {
Log.e("Feck", e);
} catch (IOException e) {
Log.e("Feck", e);
} catch (JSONException e) {
Log.e("Feck", e);
}
}
}
答案 0 :(得分:1)
您可以使用新的YouTube Data API v3获取播放列表:
https://developers.google.com/youtube/v3/docs/playlists
在我写的这个教程中(用西班牙文...但你可以看到代码发生变化..):
http://fuse21.blogspot.com.ar/2013/01/utilizando-youtube-data-api-v3-desde.html
我将展示如何更改官方示例“tasks-android-sample”:
http://code.google.com/p/google-api-java-client/source/browse/tasks-android-sample/?repo=samples
使用YouTube数据API代替任务API。
答案 1 :(得分:1)
我在我的一个项目中进行了处理,在该项目中,我显示了来自我的YouTube帐户的所有视频,并将其显示在视频中。
要播放来自youtube频道(帐户)的视频,您需要获取视频的rtsp网址。
关注this example它会给你完美的想法。
另请参阅My answer。