JAVA去除抖音视频的水印源码!!!
@PostMapping("geturl")
public DataResponse decodeDouiyin(@RequestBody DouyinRequest req ) throws IOException{
DataResponse dataResponse=new DataResponse();
//String url1 ="#在抖音,记录美好生活#是你,是你,还是你! http://v.douyin.com/xj4Agk/ 复制此链接,打开【抖音短视频】,直接观看视频!";
//过滤链接,获取http连接地址
String finalUrl = decodeHttpUrl(req.getData().getLinkUrl());
//1.利用Jsoup抓取抖音链接
//抓取抖音网页
String htmls = Jsoup.connect(finalUrl).ignoreContentType(true).execute().body();
//2.利用正则匹配可以抖音下载链接
//playAddr: "https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200ffc0000bfil6o4mavffbmroeo80&line=0",
//具体匹配内容格式:「https://aweme.snssdk.com/aweme/...line=0」
Pattern patternCompile = Pattern.compile("(?<=playAddr: \")https?://.+(?=\",)");
//利用Pattern.compile("正则条件").matcher("匹配的字符串对象")方法可以将需要匹配的字段进行匹配封装 返回一个封装了匹配的字符串Matcher对象
//3.匹配后封装成Matcher对象
Matcher m = patternCompile.matcher(htmls);
//4.①利用Matcher中的group方法获取匹配的特定字符串 ②利用String的replace方法替换特定字符,得到抖音的去水印链接
String matchUrl ="";
while(m.find()) {
matchUrl = m.group().replaceAll("playwm", "play");
}
//5.将链接封装成流
//注:由于抖音对请求头有限制,只能设置一个伪装手机浏览器请求头才可实现去水印下载
Map<String, String> headers = new HashMap<>();
headers.put("Connection", "keep-alive");
headers.put("Host", "aweme.snssdk.com");
headers.put("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57 Version/12.0 Safari/604.1");
headers.put("Content-Encoding","gzip");
//7.利用Joup获取视频对象,并封装成一个输入流对象
//BufferedInputStream in = Jsoup.connect(matchUrl).headers(headers).timeout(10000).ignoreContentType(true).execute().bodyStream();
).headers(headers).timeout().ignoreContentType(true).execute().bodyAsBytes();
String filename=req.getSign()+".mp4";
//UploadUtil.uploadFile(filename,in);
//8.保存文件到指定位置
File fileParent= new File("/home/ftpimages/images/");
fileParent.setWritable(true, false);
if(!fileParent.exists()){
fileParent.mkdirs();
}
File file= new File("/home/ftpimages/images/"+filename);
file.createNewFile();
BufferedOutputStream out =
new BufferedOutputStream(
new FileOutputStream(file));
//copyFile(in,out);
,ins.length);
out.flush();
out.close();
//in.close();
dataResponse.setVideoUrl("/images/"+filename);
return dataResponse;
}
Github地址:https://github.com/zwl568633995/douyindecode.git (麻烦star一下,谢谢)
代码如上,效果如图

需要上述微信小程序前端源码的朋友加我微信:zwl568633995
JAVA去除抖音视频的水印源码!!!的更多相关文章
- android愤怒小鸟游戏、自定义View、掌上餐厅App、OpenGL自定义气泡、抖音电影滤镜效果等源码
Android精选源码 精练的范围选择器,范围和单位可以自定义 自定义View做的小鸟游戏 android popwindow选择商品规格颜色尺寸效果源码 实现Android带有锯齿背景的优惠样式源码 ...
- Python抖音视频去水印,并打包成exe可执行文件
前言 抖音里面的视频保存之后,会发现全都带有水印,所以如何解决视频去除水印就很有必要,所以教程来了,本次教程不仅会教大家如何去除视频里的水印,并且教大家将程序制作成exe可执行文件,可以发给你的好友使 ...
- 教程视频、项目源码、全部干货【微信小程序、React Native、Java、iOS、数据结构】
把我收藏多年的教学视频.项目源码分享给大家,大神就可以忽略了,很多东西都是基础性的,都是期初学习阶段收集的东西. 微信小程序(入门级,有web前端基础的人群): 链接: https://pan.bai ...
- Puppeteer自动化批量上传抖音视频
前言:最近因为项目宣传,所以用Puppeteer写了一个批量上传抖音视频的自动化程序用于推广. 环境和依赖:node,puppeteer 废话不多说,直接上代码: const puppeteer =r ...
- python+fiddler 抓取抖音数据包并下载抖音视频
这个我们要下载视频,那么肯定首先去找抖音视频的url地址,那么这个地址肯定在json格式的数据包中,所以我们就去专门查看json格式数据包 这个怎么找我就不用了,直接看结果吧 你找json包,可以选大 ...
- Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 06 Stack详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 集合系列 05 Vector详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
随机推荐
- 2018-2-13-win10-uwp-资源字典
title author date CreateTime categories win10 uwp 资源字典 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...
- 2018-8-10-WPF-DrawingVisual
title author date CreateTime categories WPF DrawingVisual lindexi 2018-08-10 19:16:53 +0800 2018-2-1 ...
- shell位置参数和 shift 命令
- egrep 正则
首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.awk .sed 都支 ...
- 生产者消费者模式-->线程
#_author:来童星#date:2019/12/17#生产者消费者模式-->线程from queue import Queueimport random,time,threading#生产者 ...
- PHP ftp_fput() 函数
定义和用法 ftp_fput() 函数上传本地一个已经打开的文件,并在 FTP 服务器上把它保存为一个文件. 如果成功,该函数返回 TRUE.如果失败,则返回 FALSE. 语法 ftp_fput(f ...
- [NOIP模拟测试11] 题解
A.string 和河北的一道省选题很像.考场上写的暴力桶排,正解其实就是优化一下这个思路. 开线段树维护字符串中每个字母出现的次数.对于每条询问,区间查询.区间赋值维护即可. 另外,本题卡常严重,正 ...
- chromedriver安装(谷歌浏览器驱动安装)
如果程序执行错误,浏览器没有打开,那么应该是没有装 Chrome 浏览器或者 Chrome 驱动没有配置在环境变量里.下载驱动,然后将驱动文件路径配置在环境变量即可. chromedriver下载地址 ...
- Mina(一)
配置log4j注意事项: Log4J 1.2 users: slf4j-api.jar, slf4j-log4j12.jar, and Log4J 1.2.x slf4j-log4j*.jar要对应 ...
- PAT_A1117#Eddington Number
Source: PAT A1117 Eddington Number (25 分) Description: British astronomer Eddington liked to ride a ...