前言

好久没写文章了,最近微信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实现抖音无水印视频相关推荐

  1. 用Python下载抖音无水印视频!

    不知不觉距离小F最开始写的一篇抖音文章,时间也过了一年. 用Python全自动下载抖音视频! 上面这一篇阅读量是所有文章中阅读量最高的,当然还有另外两篇相关的. 用Python生成抖音字符视频! 用数 ...

  2. 抖音提取封面php,PHP 解析抖音无水印视频

    PHP解析抖音无水印视频后端代码 QQ截图20190329052258.png 20190329052336.png /* author 刘明野 site www.liumingye.cn */ fu ...

  3. c语言抓取抖音视频,【FiddlerScript】利用Fiddler中的FiddlerScript自动抓取抖音无水印视频并且自动保存...

    本帖最后由 小白大侠 于 2021-3-14 13:55 编辑 Fiddler自动抓取抖音无水印视频并且自动保存 前言:这段代码实用性不大,大量数据处理容易造成Fiddler卡死,只是希望给未来写Fi ...

  4. 用 Python 下载抖音无水印视频

    说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 很多人学 ...

  5. 如何在线获取抖音无水印视频和视频背景音乐?

    如今抖音火遍大江南北,慢慢的已经融入了大家的生活,就像淘宝.微信一样,并且有自己的吸引人的特色. 普通用户看看视频就过去了,但是对于营销人员往往想要搬运视频,但是直接转的都是带水印的 发到其他平台 肯 ...

  6. java开发最新获取抖音无水印视频和背景音乐

    java版最新获取抖音无水印视频和背景音乐, 这个工具已经被我放到我的网站上做成了在线抖音无水印获取工具: 在线演示地址:http://www.yzcopen.com/video/dywsy 废话不多 ...

  7. python无水印下载视频_用 Python 下载抖音无水印视频

    说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...

  8. Python 抖音无水印视频下载

    引言 上篇文章讲到抖音首页视频的爬取和下载,于是我想到能不能下载特定的视频.网上搜索一番,发现有网站提供抖音无水印视频的下载,但是试了几个,发现下载下来都还是有水印的视频.上篇文章已经实现了首页无水印 ...

  9. 抖音无水印视频爬虫(二)——爬虫的实现

    抖音无水印视频爬虫(二)--爬虫的实现 前面的抖音无水印视频爬虫(一)--踩坑,已经讲了相关的原理以及实现的过程 一.环境&Python Modules 1.OS:Deepin 15.10.1 ...

  10. 抖音上的python课程_用 Python 下载抖音无水印视频

    说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...

最新文章

  1. Drupal6中的表单如果不让修改
  2. 解密所有APP运行过程中的内部逻辑
  3. 50K求聘.NET,我们是认真的!
  4. mysql提交事务_mysql事务的实现原理
  5. Direct3D提高篇:HLSL编程实现PhotoShop滤镜效果 - 锐化模糊
  6. Unity3d--第三人称摄像机常用控制
  7. C# 给枚举类型增加一个描述特性
  8. 兄弟,答应我?别再去东南亚写代码了好么?
  9. 输入框正则表达式大全
  10. Eduline在线教育系统源码 带完整修复后台
  11. Java反编译工具汇总
  12. java system.gc 作用_JVM源码分析之SystemGC完全解读
  13. Linux 截图保存快捷键
  14. win10u盘被写保护怎么解除_磁盘被写保护怎么解除,小编告诉你如何解决U盘磁盘被写保护...
  15. 如何一个办公室里共享一个打印机,局域网设置打印机共享步骤。超简单,不懂技术都可操作
  16. HTML5之canvas剪切图片
  17. LeetCode/LintCode 题解丨一周爆刷双指针:神奇字符串
  18. Three.js - 鼠标拾取(射线追踪法)(十九)
  19. crash工具解析_Android Crash 工具
  20. 开启xmp1还是2_玩机鸭x:手机开启“强制进行GPU渲染”功能对手机有什么影响?...

热门文章

  1. java 安卓 物联网_面向物联网的Android应用开发与实践
  2. Flash Professional CS6 安装zxp插件
  3. ftl不存在为真_ftl 语法
  4. android信鸽推送demo_android app 集成 信鸽推送
  5. 创建数据库,库名为考生姓名拼音的缩写,例如考生姓名为张三
  6. c++语言判断是否质数,怎样用C++程序判断一个数是否为素数
  7. securecrt破解版64位
  8. 搭建php程序之Linux 安装PHP集成环境宝塔面板
  9. sqlldr mysql_sqlldr数据导入
  10. oracle数据比对md5,MD5SUM的妙用