我想在我的Android应用中显示此YouTube网址的默认缩略图:
<iframe width="560" height="315" src="https://www.youtube.com/embed/FXx_gbdIUKg" frameborder="0" allowfullscreen=""></iframe>
这是我这样做的方法:
static String parseThumbnail(String youTubeURL){
org.jsoup.nodes.Document document = Jsoup.parse(youTubeURL);
Elements youtubeElements = document.select("FXx_gbdIUKg");
org.jsoup.nodes.Document iframeDoc = Jsoup.parse(youtubeElements.get(0).data());
Elements iframeElements = iframeDoc.select("iframe");
return iframeElements.attr("http://img.youtube.com/vi/"+youtubeElements+"/default.jpg");
iframe在“content:encoded”节点内,所以我在这里调用这个方法。
String itemYouTubeImage = null;
if (XML_TAG_CONTENT_ENCODED.equalsIgnoreCase(tag)) {
String contentEncoded = tagNode.getTextContent();
itemYouTubeImage = parseThumbnail(contentEncoded);
itemImageURL = parseImageFromHTML(contentEncoded);
itemContentEncodedText = parseTextFromHTML(contentEncoded);
我该如何正确地做到这一点?
我遇到的一个问题是编译器告诉我从未使用分配给parseThumbnail(contentEncoded)
的值itemYouTubeImage
答案 0 :(得分:0)
如果您只想要默认缩略图,则会在youtube HTML文档的<head>
中提供。它没有编码。
<link itemprop="thumbnailUrl"
href="https://i.ytimg.com/vi/2qhzsn3pZgk/maxresdefault.jpg">
选择属性值并获取绝对URL:
String youtubeUrl = "https://www.youtube.com/watch?v=9wpqE8OSWrU";
Document doc = Jsoup.connect(youtubeUrl).get();
String thumbnailUrl = doc
.select("link[itemprop=thumbnailUrl]")
.first()
.absUrl("href");
System.out.println(thumbnailUrl);
<强>输出强>
https://i.ytimg.com/vi/9wpqE8OSWrU/maxresdefault.jpg
在Jsoup cookbook中阅读更多内容。