使用Java

时间:2018-10-29 07:40:15

标签: java video youtube

我使用Java从youtube网址获取youtube视频网址,似乎我应该对视频网址进行两次解码以获取原始视频网址,但是当我访问从代码中获取的视频网址时出了点问题。我确定我可以在完成代码后访问首次运行代码时获得的任何视频URL,但是此后,无论视频URL是从解码的前两次还是两次,我都无法访问任何视频URL。我想也许只有youtube本身可以访问我获得的视频URL,或者服务器阻止了我的IP。因此,我需要你们帮助我告诉我出了什么问题以及如何才能获得可以播放的视频网址,谢谢。我的代码和答案如下:

        try {
        String ytUrl = "https://www.youtube.com/watch?v=Cj3AV92fJ90";

        HttpClient client = new DefaultHttpClient();

        HttpGet request = new HttpGet(ytUrl);
        HttpResponse response = client.execute(request);
        String html = "";
        InputStream in = response.getEntity().getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        StringBuilder str = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            str.append(line.replace("\\u0026", "&"));
        }
        in.close();
        html = str.toString();

        String val=RegexUtil.find(html,"stream_map\":.*?\"(.*?)\"",1);

        if (!StringUtils.isEmpty(val)) {
            String url = URLDecoder.decode(val, "UTF-8");

            System.out.println("1 decode url: "+url);
            url = URLDecoder.decode(url, "UTF-8");;
            System.out.println("2 decode url: "+url );
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
  

1个解码url:url = https://r4---sn-i3b7knlk.googlevideo.com/videoplayback?id=o-AE4MBDOnLdC4X0a7wjJ63diBNkBpJ2XiuejUOXrB8onv&dur=421.442&mime=video%2Fmp4&fvip=4&requiressl=yes&ms=au%2Conr&mt=1540798558&ratebypass=yes&itag=22&pl=25&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&source=youtube&mv=m&mn=sn-i3b7knlk%2Csn-npoeene7&lmt=1537570091802082&key=yt6&ei=8LjWW9P1Ns2R8gOGhKO4AQ&c=WEB&expire=1540820305&ip=114.113.240.105&ipbits=0&initcwndbps=362500&mm=31%2C26&itag=22&type=video/mp4; codecs =“ avc1.64001F,mp4a.40.2”&s = C8C80C74C92B4306498EE1183D683A0E60962F69BD.4F1AE9CE009B83425F389362CFC2FE23A45948D5&quality = hd720&sp = signature

2解码url:url = https://r4---sn-i3b7knlk.googlevideo.com/videoplayback?id=o-AE4MBDOnLdC4X0a7wjJ63diBNkBpJ2XiuejUOXrB8onv&dur=421.442&mime=video/mp4&fvip=4&requiressl=yes&ms=au,onr&mt=1540798558&ratebypass=yes&itag=22&pl=25&sparams=dur,ei,id,initcwndbps,ip,ipbits,itag,lmt,mime,mm,mn,ms,mv,pl,ratebypass,requiressl,source,expire&source=youtube&mv=m&mn=sn-i3b7knlk,sn-npoeene7&lmt=1537570091802082&key=yt6&ei=8LjWW9P1Ns2R8gOGhKO4AQ&c=WEB&expire=1540820305&ip=114.113.240.105&ipbits=0&initcwndbps=362500&mm=31,26&itag=22&type=video/mp4; codecs =“ avc1.64001F,mp4a.40.2”&s = C8C80C74C92B4306498EE1183D683A0E60962F69BD.4F1AE9CE009B83425F389362CFC2FE23A45948D5&quality = hd720&sp = signature

0 个答案:

没有答案