JAVA代码实现抖音转载视频无水印视频,亲测通过
许多小伙伴想做抖音视频,无奈没有摄影器材,也没有取景材料,就想着去用别人人气视频来提高自己的粉丝量。可问题又来了,别人的视频通过分享,或者链接根本不是原创,上面还带着水印。视频一挂上去就被发现了,小则视频不通过,给出警告,大则封号,降低视频流量。别着急,我在这里贴出两份代码,只需要你把分享链接拷贝过来,就能将想要的视频无水印的保存到本地。package demo;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HttpContext;
import java.io.*;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
import java.util.Collections;
import java.util.Date;
import java.util.Map;
public class DY02 {
public static void main(String[] args) {
//输入分享链接
String url1 = “#在抖音,记录美好生活#在最好的年纪,做最疯狂的事 http://v.douyin.com/xB7gDq/ 复制此链接,打开【抖音短视频】,直接观看视频!”;
String s = parserUrl(url1);//获取到无水印下载地址//System.out.println(doGet(s));
}public static String parserUrl(String url) {BufferedReader in = null;String playUrl = null;String brgUrl = null;Map<String, String> result = Collections.EMPTY_MAP;try {URL realUrl = new URL(url);URLConnection connection = realUrl.openConnection();connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("Accept-Charset", "GB2312,utf-8;q=0.7,*;q=0.7");connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");connection.setConnectTimeout(5000);connection.setReadTimeout(5000);connection.connect();in = new BufferedReader(new InputStreamReader(connection.getInputStream()));StringBuilder sb = new StringBuilder();String line;while ((line = in.readLine()) != null) {sb.append(line);}//TODO 新添加Long timetmp = new Date().getTime();System.out.println("=====================>" + sb.toString());//重新封装成一个无水印视频下载地址String fileAddress = "D:/videos/" + timetmp + ".mp4";//7.封装一个保存文件的路径对象File fileSavePath = new File(fileAddress);//注:如果保存文件夹不存在,那么则创建该文件夹File fileParent = fileSavePath.getParentFile();if (!fileParent.exists()) {fileParent.mkdirs();}//8.新建一个输出流对象OutputStream out =new BufferedOutputStream(new FileOutputStream(fileSavePath));//9.遍历输出文件int b;while ((b = in.read()) != -1) {out.write(b);}out.close();//关闭输出流in.close(); //关闭输入流//注:打印获取的链接System.out.println("\n-----视频保存路径-----\n" + fileSavePath.getAbsolutePath());playUrl = fileAddress;//TODO// playUrl = getPlayUrl(sb.toString());} catch (Exception e) {} finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return playUrl;
}public static String doGet(String url) {// 创建Httpclient对象CloseableHttpClient httpclient = HttpClients.createDefault();String resultString = "";CloseableHttpResponse response = null;try {// 创建uriURIBuilder builder = new URIBuilder(url);URI uri = builder.build();// 创建http GET请求HttpGet httpGet = new HttpGet(uri);// 設置httpGet的头部參數信息 此处必不可少,伪装成浏览器访问httpGet.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");httpGet.setHeader("Accept-Charset", "GB2312,utf-8;q=0.7,*;q=0.7");httpGet.setHeader("Accept-Encoding", "gzip, deflate, sdch, br");httpGet.setHeader("Accept-Language", "zh-cn,zh;q=0.8");httpGet.setHeader("User-Agent","Mozilla/5.0 (iPod; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25");// 执行请求HttpContext httpContext = new BasicHttpContext();response = httpclient.execute(httpGet, httpContext);Object attribute = httpContext.getAttribute("http.request");// 判断返回状态是否为200if (response.getStatusLine().getStatusCode() == 200) {HttpHost targetHost = (HttpHost) httpContext.getAttribute(ExecutionContext.HTTP_TARGET_HOST);// 获取实际的请求对象的URI,即重定向之后的地址HttpEntity entity = response.getEntity();HttpUriRequest realRequest = (HttpUriRequest) httpContext.getAttribute(ExecutionContext.HTTP_REQUEST);return (HttpHost) httpContext.getAttribute(ExecutionContext.HTTP_TARGET_HOST)+ ((HttpUriRequest) httpContext.getAttribute(ExecutionContext.HTTP_REQUEST)).getURI().toString();}} catch (Exception e) {e.printStackTrace();} finally {try {if (response != null) {response.close();}httpclient.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}
}
第二份代码:
package demo;
import org.jsoup.Jsoup;import java.io.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class DY03 {public static void main(String[] args) throws Exception {//●抖音链接(使用手机分享功能,复制链接)String url = "http://v.douyin.com/2MKBC6/";String url1 = "#在抖音,记录美好生活#在最好的年纪,做最疯狂的事 http://v.douyin.com/xB7gDq/ 复制此链接,打开【抖音短视频】,直接观看视频!";//过滤链接,获取http连接地址String finalUrl = decodeHttpUrl(url1);//1.利用Jsoup抓取抖音链接//抓取抖音网页String htmls = Jsoup.connect(finalUrl).ignoreContentType(true).execute().body();//2.利用正则匹配可以抖音下载链接//具体匹配内容格式:「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(0).replaceAll("playwm", "play");}//5.将链接封装成流//注:由于抖音对请求头有限制,只能设置一个伪装手机浏览器请求头才可实现去水印下载Map<String, String> headers = new HashMap<String, String>();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");//6.利用Joup获取视频对象'BufferedInputStream in = Jsoup.connect(matchUrl).headers(headers).timeout(10000).ignoreContentType(true).execute().bodyStream();Long timetmp = new Date().getTime();String fileAddress = "D:/video/"+ timetmp + ".mp4";//7.封装一个保存文件的路径对象File fileSavePath = new File(fileAddress);//注:如果保存文件夹不存在,那么则创建该文件夹File fileParent = fileSavePath.getParentFile();if (!fileParent.exists()) {fileParent.mkdirs();}//8.新建一个输出流对象OutputStream out =new BufferedOutputStream(new FileOutputStream(fileSavePath));//9.遍历输出文件int b;while ((b = in.read()) != -1) {out.write(b);}out.close();//关闭输出流in.close(); //关闭输入流//注:打印获取的链接System.out.println("-----抖音去水印链接-----\n" + matchUrl);System.out.println("\n-----视频保存路径-----\n" + fileSavePath.getAbsolutePath());}public static String decodeHttpUrl(String url) {int start = url.indexOf("http");int end = url.lastIndexOf("/");String decodeurl = url.substring(start, end);return decodeurl;}
}
其实两份代码套路差不多,各位码农不惜勿怪!## 通过代码实现抖音无水印视频。你就是原创
JAVA代码实现抖音转载视频无水印视频,亲测通过相关推荐
- 如何导出无水印_抖音视频怎么去水印 抖音怎么导出无水印视频
去水印神速 去水印去水印短视频去水印小工具去水印解析去水印免费版去水印助手去水印软件去水印视频一键去水印快手去水印 随着短视频越来越火爆,玩抖音的人也越来越多.有人发就有人下载,有人下载就需要考虑水印 ...
- python多线程下载编程软件_python抖音多线程下载无水印视频
[Python] 纯文本查看 复制代码import re import requests from concurrent import futures import time headers = {' ...
- 利用python爬虫实现:抖音短视频无水印视频下载
各位小伙伴,之前一段时间迷上了抖音小姐姐视频,但是下载的视频都有水印,于是自己用Python 写了个爬取小姐姐视频的工具,大家可以直接拷贝到自己编译器上运行.经过半天的琢磨,自己用python搞出来一 ...
- 抖音火山版(原火山小视频)无水印视频获取
import requests # 忽略警告代码 requests.packages.urllib3.disable_warnings()# 获取字符串中指定字符 def getMidString(h ...
- java开发最新获取抖音无水印视频和背景音乐
java版最新获取抖音无水印视频和背景音乐, 这个工具已经被我放到我的网站上做成了在线抖音无水印获取工具: 在线演示地址:http://www.yzcopen.com/video/dywsy 废话不多 ...
- PHP 获取微视无水印源地址_最新PHP解析抖音获取无水印视频代码
用户从抖音中复制链接,出来的地址,打开是带有水印的,要想通过复制的链接解析获取无水印的视频地址,可以看如下代码 PHP源码 $content = newCurlGet($url, $userAgent ...
- PHP随机输出视频API源码,php 32行代码简单实现抖音无水印视频api,附前台页面
[PHP] 纯文本查看 复制代码<?php header("Content-Type: text/html;charset=utf-8"); if(isset($_GET[& ...
- php视频吾爱破解,php 32行代码简单实现抖音无水印视频api,附前台页面
原理和之前发的python 22行代码简单实现通过分享链接下载无水印视频一样.现在是通过php再次实现,并暴露出接口,这样可以方便前台开发页面.直接上代码 [PHP] 纯文本查看 复制代码<?p ...
- c语言抓取抖音视频,【FiddlerScript】利用Fiddler中的FiddlerScript自动抓取抖音无水印视频并且自动保存...
本帖最后由 小白大侠 于 2021-3-14 13:55 编辑 Fiddler自动抓取抖音无水印视频并且自动保存 前言:这段代码实用性不大,大量数据处理容易造成Fiddler卡死,只是希望给未来写Fi ...
- 用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 很多人学 ...
最新文章
- 隐马尔可夫模型维特比算法与前向算法区别
- php整蛊关机代码,整人代码大全
- centos+nginx+php+mysql(经典架构流程案例)
- 关于 Orbeon form PE 版本 Unauthorized 错误消息
- Web Worker javascript多线程编程(一)
- 获取进程CPU占用率
- Numpy数组的保存与读取方法
- python中的多线程-共享全局变量
- 一文讲清楚FusionInsight MRS CDL如何使用
- Rayeager PX2 不能进入烧写模式解决方案
- 算法之路 level 01 problem set
- 【C语言】谭浩强C语言程序设计第五版135页例5.11译密码题的新解
- win10配置JDK环境变量
- panic和recover的使用规则
- 判断一个数是否是质数
- Amazon Redshift ML现已正式推出——使用SQL创建机器学习模型并通过您的数据进行预测
- 【线段树】【cogs775】山海经
- linux公共基础-初阶
- 长期连载_ [置顶]马浩然(AH)语录或机房日常[学习无关]
- 3D坐标轴下画一个姿态、位置可调整的圆柱体
热门文章
- 计算机病毒能破坏u盘文件,[计算机病毒]快捷方式病毒(U盘文件变为快捷方式)...
- 笔记:《深入浅出统计学》第十四章:卡方分布
- wireshark检测iphone-ios是否感染XcodeGhost病毒
- 安卓机型刷写第三方twrp 刷写第三方rom的教程和一些问题解决
- CAN FD:测量和重编程
- 记一下特殊节日爬取微博表情包
- linux 多线程计算pi,单/多线程计算测试:SuperPI/国际象棋_IntelCPU_CPUCPU评测-中关村在线...
- 《21天学通Java(第7版)》—— 1.10 练习
- vs2015 professional 密钥
- vue自定义一个视频播放器