java - 如何使用Java获取YouTube下载链接?

标签 java youtube

我知道 VGet 使下载youtube视频变得容易。但是,我只想获取下载链接以在我的其他应用程序(Java Swing)中使用它。可以使用VGet完成吗?

有人可以帮我吗?

谢谢。

最佳答案

这是我的解决方案,(更好的解决方案,不胜感激)

引用VGet之后,我编写了自己的方法来获取youtube url(例如https:www.youtube.com/watch?v = ID)并提供下载链接(例如https:r2 --- sn-ipoxu- u2xl.googlevideo.com/videoplayback?upn=l0CJXtFDQog&itag=43&signature=0C6...&mt=1436339343)。这是代码,

    List<String> urlList = new ArrayList<String>();
    Pattern urlencod = Pattern.compile("\"url_encoded_fmt_stream_map\":\"([^\"]*)\"");
    Matcher urlencodMatch = urlencod.matcher(**html**);
    if (urlencodMatch.find()) {
        String url_encoded_fmt_stream_map;
        url_encoded_fmt_stream_map = urlencodMatch.group(1);
        Pattern encod = Pattern.compile("url=(.*)");
        Matcher encodMatch = encod.matcher(url_encoded_fmt_stream_map);
        if (encodMatch.find()) {
            String sline = encodMatch.group(1);
            String[] urlStrings = sline.split("url=");
            for (String urlString : urlStrings) {
                String url = null;
                urlString = StringEscapeUtils.unescapeJava(urlString);
                Pattern link = Pattern.compile("([^&,]*)[&,]");
                Matcher linkMatch = link.matcher(urlString);
                if (linkMatch.find()) {
                    url = linkMatch.group(1);
                    url = URLDecoder.decode(url, UTF8);
                }
                urlList.add(url);
            }
        }
    }

其中,html是使用的String,
    HttpURLConnection conn = null;
    StringBuilder contents = new StringBuilder();
    try {
        conn = (HttpURLConnection)new URL("https://www.youtube.com/watch?v=SYOarZKipnU").openConnection();
        conn.setConnectTimeout(CONNECT_TIMEOUT);
        conn.setReadTimeout(READ_TIMEOUT);

        InputStream is = conn.getInputStream();

        String enc = conn.getContentEncoding();

        if (enc == null) {
            Pattern p = Pattern.compile("charset=(.*)");
            Matcher m = p.matcher(conn.getHeaderField("Content-Type"));
            if (m.find()) {
                enc = m.group(1);
            }
        }

        if (enc == null)
            enc = "UTF-8";

        BufferedReader br = new BufferedReader(new InputStreamReader(is, enc));

        String line = null;


        while ((line = br.readLine()) != null) {
            contents.append(line);
            contents.append("\n");

        }
    }catch(IOException e){

    }

            return contents.toString();
        }

谢谢guyzz ....

关于java - 如何使用Java获取YouTube下载链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31261652/

相关文章:

php - 循环播放YouTube上一个非常大的 channel 中的视频?

java - 哈希表内容 : the first 2 Keys are Null . ...如何获取我保存的内容

java - NoClassDefFoundError hibernate 标准导出 jar

Youtube 嵌入式播放器 - 最后不显示推荐(视频)?

html - 从网页源获取 youtube 视频 url

video - 修复 iframe 853 by 480 中的 YouTube 黑色侧边栏

java - Jasper 报告无法在没有 X11 的 Linux 服务器上工作 : "Error initializing graphic environment."

java - box2d libgdx - 'binding' Sprite 或其他对象的 box2d 主体

java枚举从字符串名称接收值

ios - 在 iOS 上使用 YouTube 进行直播