Android实现抖音无水印视频
前言
好久没写文章了,最近微信8.0设置视频状态比较火,很多小伙伴问有没有什么办法去除抖音上的水印,所以写一篇文章。
此文章为照顾新手,去除大部分框架,以及一些代码规范,以最原始的代码呈现
文章目录
- 前言
- 核心
- 一、准备工作
- 二.实现思路以及核心代码
- 1.最开始的思路
- 2.另一种思路
- 三.获取有水印的视频链接后,更改链接
- 效果图
- 总结
核心
抖音的无水印视频获取:将playwm改为play即可
有水印的视频链接:https://aweme.snssdk.com/aweme/v1/playwm/…
无水印的视频链接:https://aweme.snssdk.com/aweme/v1/play/…
以下是本篇文章正文内容。
一、准备工作
导入jsoup框架
implementation 'org.jsoup:jsoup:1.13.1'
网络权限
<uses-permission android:name="android.permission.INTERNET"/>
二.实现思路以及核心代码
1.最开始的思路
利用Jsoup框架爬取网页中的视频地址:
Document doc = Jsoup.connect(URL).get();
Elements elements = document.select("video").frist;
String videoUrl = element.attr("src");
到这发现有一层防爬措施,获取不到视频链接
2.另一种思路
为解决此问题,反编译拥有此功能的APP后,从smali文件中得到另一种思路
1.将网页保存至本地
mWebView = new WebView(this);//允许执行javascript语句mWebView.getSettings().setJavaScriptEnabled(true);mWebView.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj");mWebView.loadUrl(Url);//从抖音复制的链接mWebView.setWebViewClient(new WebViewClient() {@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}//当新的 url 即将被加载的时候---->用户点击了 Webview 内容里面的一个超链接的时候会触发该方法的调用@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}//在页面加载结束时调用。@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);view.loadUrl("javascript:window.local_obj.showSource('<head>'+" + "document.getElementsByTagName('html')[0].innerHTML+'</head>');");}@Overridepublic void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);}});
final class InJavaScriptLocalObj {@JavascriptInterfacepublic void showSource(final String html) {//html为保存的网页代码}}
2.使用Jsoup解析本地网页(此操作写在子线程中)
Document doc = Jsoup.parse(html);
Element element = doc.select("video").first(); //搜索搜索节点的id 获得element
String videoUrl = element.attr("src");
这时发现有时element中会没有数据
将代码改写为
if (element != null) {String videoUrl = element.attr("src");}else{//webview重新load网页操作}
三.获取有水印的视频链接后,更改链接
String aftervideoUrl=videoUrl.replace("playwm","play");
为了方便看效果,直接用VideoView播放(低版本的测试机器,未适配高版本机器)(主线程中进行)
videoview.setVideoPath(aftervideoUrl);
videoview.requestFocus();
videoview.start();
效果图
由此可见,可以获取到链接,拿到链接后就可以进行其他操作了,如视频下载等。
总结
希望对您有所帮助,欢迎留言。
Android实现抖音无水印视频相关推荐
- 用Python下载抖音无水印视频!
不知不觉距离小F最开始写的一篇抖音文章,时间也过了一年. 用Python全自动下载抖音视频! 上面这一篇阅读量是所有文章中阅读量最高的,当然还有另外两篇相关的. 用Python生成抖音字符视频! 用数 ...
- 抖音提取封面php,PHP 解析抖音无水印视频
PHP解析抖音无水印视频后端代码 QQ截图20190329052258.png 20190329052336.png /* author 刘明野 site www.liumingye.cn */ fu ...
- c语言抓取抖音视频,【FiddlerScript】利用Fiddler中的FiddlerScript自动抓取抖音无水印视频并且自动保存...
本帖最后由 小白大侠 于 2021-3-14 13:55 编辑 Fiddler自动抓取抖音无水印视频并且自动保存 前言:这段代码实用性不大,大量数据处理容易造成Fiddler卡死,只是希望给未来写Fi ...
- 用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 很多人学 ...
- 如何在线获取抖音无水印视频和视频背景音乐?
如今抖音火遍大江南北,慢慢的已经融入了大家的生活,就像淘宝.微信一样,并且有自己的吸引人的特色. 普通用户看看视频就过去了,但是对于营销人员往往想要搬运视频,但是直接转的都是带水印的 发到其他平台 肯 ...
- java开发最新获取抖音无水印视频和背景音乐
java版最新获取抖音无水印视频和背景音乐, 这个工具已经被我放到我的网站上做成了在线抖音无水印获取工具: 在线演示地址:http://www.yzcopen.com/video/dywsy 废话不多 ...
- python无水印下载视频_用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...
- Python 抖音无水印视频下载
引言 上篇文章讲到抖音首页视频的爬取和下载,于是我想到能不能下载特定的视频.网上搜索一番,发现有网站提供抖音无水印视频的下载,但是试了几个,发现下载下来都还是有水印的视频.上篇文章已经实现了首页无水印 ...
- 抖音无水印视频爬虫(二)——爬虫的实现
抖音无水印视频爬虫(二)--爬虫的实现 前面的抖音无水印视频爬虫(一)--踩坑,已经讲了相关的原理以及实现的过程 一.环境&Python Modules 1.OS:Deepin 15.10.1 ...
- 抖音上的python课程_用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...
最新文章
- Drupal6中的表单如果不让修改
- 解密所有APP运行过程中的内部逻辑
- 50K求聘.NET,我们是认真的!
- mysql提交事务_mysql事务的实现原理
- Direct3D提高篇:HLSL编程实现PhotoShop滤镜效果 - 锐化模糊
- Unity3d--第三人称摄像机常用控制
- C# 给枚举类型增加一个描述特性
- 兄弟,答应我?别再去东南亚写代码了好么?
- 输入框正则表达式大全
- Eduline在线教育系统源码 带完整修复后台
- Java反编译工具汇总
- java system.gc 作用_JVM源码分析之SystemGC完全解读
- Linux 截图保存快捷键
- win10u盘被写保护怎么解除_磁盘被写保护怎么解除,小编告诉你如何解决U盘磁盘被写保护...
- 如何一个办公室里共享一个打印机,局域网设置打印机共享步骤。超简单,不懂技术都可操作
- HTML5之canvas剪切图片
- LeetCode/LintCode 题解丨一周爆刷双指针:神奇字符串
- Three.js - 鼠标拾取(射线追踪法)(十九)
- crash工具解析_Android Crash 工具
- 开启xmp1还是2_玩机鸭x:手机开启“强制进行GPU渲染”功能对手机有什么影响?...
热门文章
- java 安卓 物联网_面向物联网的Android应用开发与实践
- Flash Professional CS6 安装zxp插件
- ftl不存在为真_ftl 语法
- android信鸽推送demo_android app 集成 信鸽推送
- 创建数据库,库名为考生姓名拼音的缩写,例如考生姓名为张三
- c++语言判断是否质数,怎样用C++程序判断一个数是否为素数
- securecrt破解版64位
- 搭建php程序之Linux 安装PHP集成环境宝塔面板
- sqlldr mysql_sqlldr数据导入
- oracle数据比对md5,MD5SUM的妙用