2011-06-30 33 views
2

我一直在研究如何從YouTube上獲取數據的信息。基本上我想要做的是從播放列表中獲取關於視頻(標題,描述和縮略圖URL)的一些信息(例如:http://gdata.youtube.com/feeds/api/playlists/6A40AB04892E2A1F)。我能檢索使用此代碼段(這是我從另一個問題借來的)標題:使用gdata檢索YouTube的縮略圖URL?

String featuredFeed = "http://gdata.youtube.com/feeds/api/playlists/6A40AB04892E2A1F"; 

url = new URL(featuredFeed); 

URLConnection connection; 
connection = url.openConnection(); 

HttpURLConnection httpConnection = (HttpURLConnection) connection; 

int responseCode = httpConnection.getResponseCode(); 

if (responseCode == HttpURLConnection.HTTP_OK) { 
    InputStream in = httpConnection.getInputStream(); 

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
    dbf.setNamespaceAware(true); 
    DocumentBuilder db = dbf.newDocumentBuilder(); 

    Document dom = db.parse(in); 
    Element docEle = dom.getDocumentElement(); 

    NodeList nl = docEle.getElementsByTagName("entry"); 
    // NodeList nl2 = ; 
    if (nl != null && nl.getLength() > 0) { 
     for (int i = 0; i < nl.getLength(); i++) { 

      Element entry = (Element) nl.item(i); 
      Element title = (Element) entry.getElementsByTagName(
        "title").item(0); 

      String titleStr = title.getFirstChild().getNodeValue(); 

      Log.i("TEST LOG", "TITLES: " + titleStr); 

     } 
    } 
} 

但我不能完全弄清楚如何重新獲取縮略圖URL。我看過標籤,但我不知道如何從節點列表中調用它。 任何人都可以告訴我如何使用這種方法檢索視頻的縮略圖URL和視頻描述?

在此先感謝。

回答

0
Log.i("TEST LOG", "TITLES: " + titleStr); 
(...) 
        Element groupNode = (Element)entry.getElementsByTagNameNS("*", "group").item(0); 

        NodeList tNL = groupNode.getElementsByTagNameNS("*", "thumbnail"); 

        for (int k = 0; k < tNL.getLength(); k++) { 
         Element tE = (Element)tNL.item(k); 

         if (tE != null) { 
          System.out.println("Thumbnail url = " + tE.getAttribute("url")); 
         } 
        } 

        NodeList dNL = groupNode.getElementsByTagNameNS("*", "description"); 

        for (int k = 0; k < dNL.getLength(); k++) { 
         Element tE = (Element)dNL.item(k); 

         if (tE != null) { 
          System.out.println("Description = " + tE.getFirstChild().getNodeValue()); 
         } 
        } 

       } // end for 

(...) 
+0

請注意,您不必再這樣想。看一下像HtmlUnit這樣的庫和XPath查詢的用法,以避免像我們這裏所做的那樣痛苦的迭代。 – Zecas