视频地址获取

软件具体名字就不说了哈,首先贴出视频的网页地址:http://www.365yg.com/a6542366077089743367/首先需要获取视频的videoId,直接请求该url,然后match匹配:Patternpattern=Pattern.compile("videoId:\'(.+)\’");Matchermatcher=pattern.ma…

大家好,又见面了,我是你们的朋友全栈君。

软件具体名字就不说了哈,首先贴出视频的网页地址:
http://www.365yg.com/a6542366077089743367/
首先需要获取视频的videoId,直接请求该url,然后match匹配:

   Pattern pattern = Pattern.compile("videoId: \'(.+)\'");
   Matcher matcher = pattern.matcher(response);
   if (matcher.find()) {
          String videoId = matcher.group(1);
          Log.i(TAG,videoId);
   }

获得videoId后开始获取r参数与s参数:

   String URL_VIDEO="/video/urls/v/1/toutiao/mp4/%s?r=%s";
   String HOST_VIDEO = "http://i.snssdk.com";
{
    String r = getRandom();
    CRC32 crc32 = new CRC32();
    String s = String.format(URL_VIDEO, videoId, r);
    //进行crc32加密。
    crc32.update(s.getBytes());
    String crcString = crc32.getValue() + "";
    //2.生成获取视频地址的url
    String url = HOST_VIDEO + s + "&s=" + crcString;
    Log.i(TAG,url);
}
private String getRandom() {
        Random random = new Random();
        StringBuilder result = new StringBuilder();
        for (int i = 0; i < 16; i++) {
            result.append(random.nextInt(10));
        }
        return result.toString();
    }

接下来访问生成的url,即可获得类似下面的json:
这里写图片描述
箭头所示的main_url即为我们需要的视频播放真实地址,但其实Base64编码的,解码即可得到真实地址:

  System.err.println( new String(Base64.getUrlDecoder()
                 .decode("main_url的值")));

视频地址有有效时间,意味每次播放都需要判断地址是否准确!

bak:关于videoId的获取:

 open fun test(url: String): String? {
        var client = OkHttpClient().newBuilder()
                .followRedirects(false)
                .followSslRedirects(false)
                .build();
        var mediaType = MediaType.parse("application/x-www-form-urlencoded");
        var body = RequestBody.create(mediaType,
                "checkCookiesEnabled=true&checkMobileDevice=false&checkStandaloneMode=false&checkTabletDevice=false&portalAccountUsername=username&portalAccountPassword=password");
        var request = Request.Builder()
                .url(url)
                .post(body)
                .addHeader("content-type", "application/x-www-form-urlencoded")
                .addHeader("cache-control", "no-cache")
                .build();

        var response = client.newCall(request).execute()
//        ALog.e(response.body()?.string())
        return response.body()?.string()
        }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126732.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tomcat打印日志乱码,入库数据正常_tomcat输出日志乱码

    tomcat打印日志乱码,入库数据正常_tomcat输出日志乱码Tomcat后台日志乱码问题文章目录Tomcat后台日志乱码问题一、找到乱码原因二、Tomcat端乱码处理三、IDEA端设置小结一、找到乱码原因  基本上我们安装的windows系统本地语言都是中文,用的是GBK编码,而我们IDEA和Tomcat日志选择的是utf8编码,因此编码方式不一致造成了我们的中文乱码问题。二、Tomcat端乱码处理  既然原因已经找到了,接着就是解决问题了,分别设置IDEA和Tomcat的编码就ok了。先对Tomcat进行处理,如下:  1.找到Tomcat的安装目录

    2022年9月26日
    0
  • levelDB 的版本控制[通俗易懂]

    首先本次类FileMetaData之前我们在LevelDB-总体介绍中提到一个疑问,levelDB是将磁盘文件以层的结构存在,那么哪里维护这个层结构呢,其实就是在Version类中,classVersion{public://Lookupthevalueforkey.Iffound,storeitin*valand//returnOK.Elsereturnanon-OKstatus.Fills*stats.//REQUIRES:

    2022年4月9日
    48
  • linux下面的解压缩文件的命令[通俗易懂]

    linux下面的解压缩文件的命令[通俗易懂]尝试去好好用linux、新手起步。这边只会提到我用过的、其他相关的以后我用到了我会补充的。如果有错欢迎指正注:1、c-创建-create  2、v-复杂输出 3、f-文件-file4、x-解压-extract5、z-gz格式  66666、真不会用语法的就使用man…例如mantar他就会给你现实tar的一些参数操作…

    2022年5月24日
    45
  • 互联网时代下用户的安全需求_这是一个互联网的时代

    互联网时代下用户的安全需求_这是一个互联网的时代突然意识到这个课题自己也挺感兴趣,而且形势很严峻。

    2022年10月5日
    3
  • vue的双向绑定原理及实现_vue的数据绑定怎么实现

    vue的双向绑定原理及实现_vue的数据绑定怎么实现vue双向绑定原理浅析1、什么是双向绑定?​ 所谓双向绑定,指的是vue实例中的data与其渲染的DOM元素的内容保持一致,无论谁被改变,另一方会相应的更新为相同的数据。(数据变化更新视图,视图变化更新数据)2、如何实现双向绑定?在vue中可以通过v-model实现双向绑定<template><divid=”app”>{{username}}<br/><inputtype=”text”v-model=”username”&

    2022年10月18日
    2
  • docker五种特性_k8s docker 关系

    docker五种特性_k8s docker 关系DockerDocker网络–link自定义网络网络连通Docker网络Docker是如何进行网络通讯的?查看本机的网卡和ip地址docker0类似与路由器ip地址一样(x.x.x.1)Dockerdocker run -d -P –name=tomcat03 tomcat:8.0查看容器ip地址docker exec -it a72d4ae634da ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noque

    2022年8月9日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号