自己动手实现抖音高清无水印视频下载工具(2)

本文探讨了抖音视频下载工具实现的第二部分,重点关注sec_uid参数。通过分析前端代码,找到sec_uid来源于短链接跳转后的长连接,并通过HttpRequest获取302目标地址。在尝试获取用户信息接口时遇到请求拦截问题,推测可能与user-agent有关,问题留待后续解决。
摘要由CSDN通过智能技术生成

书接上文,我们继续对上回说到的问题继续分析,本文目标针对url中的sec_uid参数进行分析。

1、sec_uid

思路及实现

调用接口是通过xhr异步调用的,那么一定会有前台js代码来生成或者通过其他接口来获取这个参数,那么我们可以在浏览器端先搜一下这个参数名称,看看都再哪里出现过,然后跟一下调用链,希望最终能找到源头。

首先,我们搜一下前端的代码,发现sec_uid只再一个名称为index.98ac6f5d.js文件中出现了几次,先挨个扫一眼,我们发现在1425和1474行的地方分别出现了以下2句代码:

url: '/web/api/v2/user/info/?sec_uid=' + config.sec_uid,

params.sec_uid = _utils2.default.getUrlParam(window.location.href, "sec_uid");

我们发现这个参数是从短链接跳转后的长连接里获取的,用这个参数调用了user/info接口,根据字面意思大概能知道这个接口是用户信息的接口

image.png

 这里我们顺便看一下,怎么拿到这个长连接的url,这里用接口调试工具先试探看一下效果,我们可以看到,短链接是被302到具体地址了,那么我们后续可以通过HttpRequest来获取最终url以及携带的各项参数。

image.png

我们先来实现获取302地址的代码:

	public static String get302Location(String requestUrl) {
		String res = "";
		HttpURLConnection httpUrlConn = null;
		try {
			URL url = new URL(requestUrl);
			httpUrlConn = (HttpURLConnection) url.openConnection();
			httpUrlConn.setDoOutput(true);
			httpUrlConn.setDoInput(true);
			httpUrlConn.setUseCaches(false);
			httpUrlConn.setRequestProperty("Accept", "text/plain");
			httpUrlConn.setRequestProperty("Content-Type", "application/json");
			httpUrlConn.setRequestMethod("POST");
			httpUrlConn.setInstanceFollowRedirects(false);//这里是重点,必须设置为false,时请求不进行重定向
			String location=httpUrlConn.getHeaderField("Location");
			httpUrlConn.disconnect();
			return location;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				httpUrlConn.disconnect();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return res;
	}

运行结果:

image.png

我们可以看到,这里已经成功拿到了302的目标地址,接下来,我们再写一个获取对应参数的方法。

	public void getLocationParam(){
		String url = "https://v.douyin.com/eCJaMPX";
		String loca
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值