RTSP youtube链接

时间:2012-01-03 17:24:10

标签: android youtube rtsp

我已经遍布谷歌并且无法从youtube视频获取rtsp链接给出VIDEO_ID。

我对如何使用该ID感到困惑,然后解析谷歌的链接。

感谢您的时间和精力。

4 个答案:

答案 0 :(得分:13)

我发现了这个blog entry,也许是它的起点。如果您继续使用<id>链接,则会获得另一种格式,您可以在其中找到rtsp链接。

编辑: 在经历了WarrenFaith发布的内容之后。向他提出的建议

这就是你获得rtsp链接的方式。

  1. 提出请求
  2. 解析3gp内容的数据
    • 它还为您提供了您可能想要的评级和所有好东西。
  3. 希望能帮助你们

答案 1 :(得分: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 :(得分:2)

获取rtsp链接的简单方法应该可以轻松移植到任何平台。

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";

答案 3 :(得分:1)

没有程序,如果你想获取YOUTUBE RTSP链接,那么

  1. 转到www.youtube.com

  2. 选择您想要的rtsp链接的视频....

  3. 转到该视频的网址.....

  4. 从网址中获取ID,即http://www.youtube.com/watch?v= 6acRHWnfZAE ((从&#34开始的id; =&#34;并且一直到最后......在上面的例子中6acRHWnfZAE是示例中视频的id

  5. 现在打开http://gdata.youtube.com/feeds/api/videos/,然后在此网址粘贴您视频的ID ......

  6. 将打开一个页面

  7. 现在在该页面中搜索媒体:内容 将至少有3个属性 一个将 HTTP n其他两个将 rtsp 格式1 n 格式6 ); 根据我的经验格式1 仅适用于视频,,,, n格式6 适用于音频和视频