如何使用java gdata客户端从YouTube CHANNEL中检索视频

时间:2012-10-30 09:04:35

标签: java youtube-api gdata-api

即时通讯使用java google gdata客户端api来检索到目前为止工作正常的YouTube视频。 但今天我遇到了一个问题。我试图从频道接收视频,但没有收到任何结果。 尝试查找视频的频道的(示例)网址: http://www.youtube.com/channel/HCrrUf3dKG1Gw

我尝试将YouTubeQuery setAuthor方法与“HCrrUf3dKG1Gw”一起使用(无论setPartner是false还是true)和setFullTextQuery“PERSONA 4” - >没有结果

从包含“用户”的网址获取视频,可以在查询中设置作者。

使用(略微修改)代码:

YouTubeService service = new YouTubeService(<clientId>)
service.setConnectTimeout(2000)
YouTubeQuery query = new YouTubeQuery(new URL(<url>)
query.setOrderBy(YouTubeQuery.OrderBy.RELEVANCE)
query.setTime(Time.ALL_TIME)
query.setFullTextQuery(<query>)
query.setSafeSearch(YouTubeQuery.SafeSearch.NONE)
query.setMaxResults(50)
if (isPartner) {
   query.setUploader(Uploader.PARTNER)
}
if (author) {
   query.setAuthor(<author>)
}
VideoFeed videoFeed = service.query(query, VideoFeed.class)
List<VideoEntry> videos = videoFeed.getEntries()

有没有人知道我在这里失踪了什么?渠道是否与用户不同?

2 个答案:

答案 0 :(得分:1)

首先解析HTTP URL,然后考虑使用java API。

当URL以“视频”结尾时,可以在“?”之后添加查询参数:

http://gdata.youtube.com/feeds/api/videos?q=puppy&safeSearch=none&orderby=viewCount

当URL以“渠道”/ channelID结尾时,您不能。

在您的频道页面http://www.youtube.com/channel/HCrrUf3dKG1Gw上,在“搜索频道”框中输入“MODOK”&amp;搜索。结果页面为
http://www.youtube.com/channel/HCrrUf3dKG1Gw/videos?query=MODOK

即。在添加查询参数之前,基于通道的URL必须如下所示:

http://www.youtube.com/channel/HCrrUf3dKG1Gw/videos

Java API生成HTTP URL并通过基于HTTP的套接字发送它们 - 与上面相同。

<强>解决方案:

 YouTubeQuery query = 
 new YouTubeQuery(new URL("http://www.youtube.com/channel/HCrrUf3dKG1Gw/videos");

答案 1 :(得分:1)

我遇到了同样的问题。 网址错误。在gdata库中调用这个

https://GDATA.youtube.com/feeds/api/channels
如果使用Data API 2.0,

必须用于频道查询。

https://GDATA.youtube.com/feeds/api/videos

用于视频查询。

https://developers.google.com/youtube/2.0/developers_guide_protocol_channel_search

如果是Data API 3.0

https://www.googleapis.com/youtube/v3/channels
https://www.googleapis.com/youtube/v3/videos
https://developers.google.com/youtube/v3/docs/channels/list

试试这个例子 https://developers.google.com/youtube/v3/code_samples/java#retrieve_my_uploads