2012-10-30 44 views
2

即時通訊使用java谷歌gdata客戶端API來檢索到目前爲止工作正常的YouTube視頻。 但今天我遇到了一個問題。我試圖從頻道接收視頻,但沒有得到任何結果。 通道IM的(例子)網址試圖找到視頻: http://www.youtube.com/channel/HCrrUf3dKG1Gw如何使用java gdata客戶端從YouTube頻道檢索視頻

我試圖用YouTubeQuery setAuthor法「HCrrUf3dKG1Gw」(不管setPartner是假性還是真性)和setFullTextQuery「PERSONA 4」 - >無結果

從包含「用戶」的url獲取視頻可以在查詢中設置作者的方式正常工作。

這就是使用代碼IM(略有修改):

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() 

沒有任何人有什麼線索我在想念這裏?渠道是否與用戶不同?

回答

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」進入「搜索頻道」框&搜索。結果頁面
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

THX @Glen 我想你的建議,但得到一個例外: 'com.google.gdata.util.ParseException:無法識別的內容類型:text/html的; charset = utf-8 at com.google.gdata.client.Service.parseResponseData(Service.java:2136)' 此解決方案是否真的適合您?如果是:你使用的是什麼gdata api版本? 我使用gdata-youtube-2.0客戶端。 – StephanM

1

我面臨同樣的問題。 URL有誤。在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

在數據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

相關問題