2012-01-03 12 views
12

Tôi đã đi khắp nơi trên google và đang gặp sự cố khi nhận liên kết rtsp từ video youtube cung cấp VIDEO_ID.RTSP youtube link

Tôi đang bối rối về cách sử dụng id đó và sau đó phân tích cú pháp google cho liên kết.

Cảm ơn bạn đã dành thời gian và công sức của mình.

Trả lời

13

Tôi tìm thấy điều này blog entry, có thể là điểm khởi đầu của nó. Nếu bạn theo dõi các liên kết <id>, bạn sẽ nhận được một định dạng khác, nơi bạn sẽ tìm thấy liên kết rtsp.

EDIT: sau khi xem qua những gì WarrenFaith đã đăng. PROPS TO HIM

đây là cách bạn nhận được liên kết rtsp.

  1. hiện một yêu cầu
  2. phân tích dữ liệu mà về nội dung 3gp
    • Nó cũng cung cấp cho bạn với giá và tất cả những thứ tốt mà bạn có thể muốn.

hy vọng giúp các bạn

+0

cảm ơn bạn WarrenFaith: D – bluejamesbond

+0

"Q-GLuydiMe4" id sẽ không mở qua chuyện này cách –

+0

Id Q-GLuydiMe4 sẽ không mở theo cách này? tại sao nó lại có bạn biết vấn đề này? –

6
Note:Working only android mobile(Not in Tablate) 

private class YourAsyncTask extends AsyncTask<Void, Void, Void>`enter code here` 
    { 
     ProgressDialog progressDialog; 

     @Override 
     protected void onPreExecute() 
     { 
      super.onPreExecute(); 
      progressDialog = ProgressDialog.show(AlertDetail.this, "", "Loading Video wait...", true); 
     } 

     @Override 
     protected Void doInBackground(Void... params) 
     { 
      try 
      { 
       String url = "http://www.youtube.com/watch?v=1FJHYqE0RDg"; 
       videoUrl = getUrlVideoRTSP(url); 
       Log.e("Video url for playing=========>>>>>", videoUrl); 
      } 
      catch (Exception e) 
      { 
       Log.e("Login Soap Calling in Exception", e.toString()); 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) 
     { 
      super.onPostExecute(result); 
      progressDialog.dismiss(); 
/* 
      videoView.setVideoURI(Uri.parse("rtsp://v4.cache1.c.youtube.com/CiILENy73wIaGQk4RDShYkdS1BMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp")); 
      videoView.setMediaController(new MediaController(AlertDetail.this)); 
      videoView.requestFocus(); 
      videoView.start();*/    
      videoView.setVideoURI(Uri.parse(videoUrl)); 
      MediaController mc = new MediaController(AlertDetail.this); 
      videoView.setMediaController(mc); 
      videoView.requestFocus(); 
      videoView.start();   
      mc.show(); 
     } 

    } 

public static String getUrlVideoRTSP(String urlYoutube) 
    { 
     try 
     { 
      String gdy = "http://gdata.youtube.com/feeds/api/videos/"; 
      DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
      String id = extractYoutubeId(urlYoutube); 
      URL url = new URL(gdy + id); 
      HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
      Document doc = documentBuilder.parse(connection.getInputStream()); 
      Element el = doc.getDocumentElement(); 
      NodeList list = el.getElementsByTagName("media:content");///media:content 
      String cursor = urlYoutube; 
      for (int i = 0; i < list.getLength(); i++) 
      { 
       Node node = list.item(i); 
       if (node != null) 
       { 
        NamedNodeMap nodeMap = node.getAttributes(); 
        HashMap<String, String> maps = new HashMap<String, String>(); 
        for (int j = 0; j < nodeMap.getLength(); j++) 
        { 
         Attr att = (Attr) nodeMap.item(j); 
         maps.put(att.getName(), att.getValue()); 
        } 
        if (maps.containsKey("yt:format")) 
        { 
         String f = maps.get("yt:format"); 
         if (maps.containsKey("url")) 
         { 
          cursor = maps.get("url"); 
         } 
         if (f.equals("1")) 
          return cursor; 
        } 
       } 
      } 
      return cursor; 
     } 
     catch (Exception ex) 
     { 
      Log.e("Get Url Video RTSP Exception======>>", ex.toString()); 
     } 
     return urlYoutube; 

    } 

protected static String extractYoutubeId(String url) throws MalformedURLException 
    { 
     String id = null; 
     try 
     { 
      String query = new URL(url).getQuery(); 
      if (query != null) 
      { 
       String[] param = query.split("&"); 
       for (String row : param) 
       { 
        String[] param1 = row.split("="); 
        if (param1[0].equals("v")) 
        { 
         id = param1[1]; 
        } 
       } 
      } 
      else 
      { 
       if (url.contains("embed")) 
       { 
        id = url.substring(url.lastIndexOf("/") + 1); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      Log.e("Exception", ex.toString()); 
     } 
     return id; 
    } 
2

Một cách ngắn gọn và đơn giản của việc liên kết rtsp, nên dễ dàng cầm tay tới nền tảng nào.

String video_id = "1FJHYqE0RDg"; 
String gdata = "http://gdata.youtube.com/feeds/api/videos/"; 
String youtube_response = Util.getUrlResponse(gdata+video_id); // just a simple HTTP GET 
String rtsp_link = "rtsp:"+ StringUtils.split(StringUtils.split(youtube_response, "rtsp:")[1], ".3gp")[0] + ".3gp"; 
+0

"Id Q-GLuydiMe4" sẽ không mở theo cách này. Tại sao ? –

+0

Id Q-GLuydiMe4 sẽ không mở theo cách này? bạn có thể giải thích ? –

+0

có thể video có các hạn chế khác về video đó. – Ajibola

1

mà không có một chương trình nếu u muốn lấy một liên kết YOUTUBE RTSP sau đó

  1. GO ĐẾN www.youtube.com

  2. chọn video có link rtsp u muốn ... .

  3. chuyển đến url của video đó .....

  4. lấy id từ url tức http://www.youtube.com/watch?v=6acRHWnfZAE ((id của bắt đầu từ "=" và đi tối đa cuối cùng ... trong trường hợp trên 6acRHWnfZAE là id của video trong ví dụ

  5. hiện đang mở http://gdata.youtube.com/feeds/api/videos/ và sau url này dán id của video của bạn ......

  6. một trang sẽ mở ra

  7. tại tìm kiếm phương tiện truyền thông: Nội dung ở chỗ trang sẽ có ít nhất 3 thuộc tính ai có HTTP n hai người kia sẽ rtsp (định dạng 1 n định dạng 6); theo kinh nghiệm của tôi định dạng 1 là chỉ dành cho video ,,,, n định dạng 6 là cho âm thanh n phim cả

+6

Phản hồi từ youtube: Không còn nữa – seoul