快手去水印解析获取源标题、作者、头像、封面图以及源视频下载地址

话不多说,直接上代码Java语言,仅供个人研究学习,请不要用于商业用途,祝大家生活愉快!

import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
import com.video.dewatermark.model.Video;
import com.video.dewatermark.service.VideoService;
import lombok.extern.slf4j.Slf4j;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import java.util.HashMap;

@Slf4j
public class KuaiShouService{

    public static void main(String[] args) {
        Video video = new KuaiShouService().parseUrl("http://m.chenzhongtech.com/s/mhn5haAq/");
        System.out.println(video);
    }

    public Video parseUrl(String url) {
        HashMap<String, String> headers = MapUtil.newHashMap();
        headers.put("User-Agent", "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Mobile Safari/537.36");
        String redirectUrl = HttpUtil.createGet(url).addHeaders(headers).execute().header("Location");
        Map<String, String> decodeParamMap = HttpUtil.decodeParamMap(redirectUrl, Charset.defaultCharset());
        String photoId = decodeParamMap.get("photoId");

        String param = "client_key=56c3713c&photoIds=" + photoId;

        String replace = StrUtil.replace(param, "&", "") + new String(new byte[]{50, 51, 99, 97, 97, 98, 48, 48, 51, 53, 54, 99});
        String sig = SecureUtil.md5().digestHex(replace);
        HttpResponse execute = HttpUtil.createPost("https://api.gifshow.com/rest/n/photo/info?" + param + "&sig=" + sig)
                .contentType("application/x-www-form-urlencoded").contentType("kwai-android").addHeaders(headers)
                .execute();
        String body = execute.body();
        log.debug(body);
        JSON res = JSONUtil.parse(body);
        String title = JSONUtil.getByPath(res, "photos.0.caption").toString();
        String playAddr = JSONUtil.getByPath(res, "photos.0.main_mv_url").toString();
        String cover = JSONUtil.getByPath(res, "photos.0.thumbnail_url").toString();
        String author = JSONUtil.getByPath(res, "photos.0.user_name").toString();
        String avatar = JSONUtil.getByPath(res, "photos.0.headurl").toString();
        Video video = Video.builder().title(title).author(author).avatar(avatar).coverPicture(cover).playAddr(playAddr).build();
        return video;
    }
}
import lombok.*;

@Setter
@Getter
@Builder(toBuilder = true)
@ToString
public class Video {
	// 作者
	private String author;
	// 标题
	private String title;
	// 头像
	private String avatar;
	// 封面图
	private String coverPicture;
	// 播放地址
	private String playAddr;
}

 其它产品如抖音,火山,微视等去水印就不一一发代码了。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值