即时通讯使用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()
有没有人知道我在这里失踪了什么?渠道是否与用户不同?
答案 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