js 视频水印去除

参考文档:http://txapi.cn/api
收费

  • 识别要解析的类型(需要收费)
const axios = require('axios')
class Parse{// 初始化方法constructor() {this.token = "Z1QljZOZiT4NTG"  // token// 请求地址数组对象this.req_urls = {dy: "http://api.txapi.cn/v1/parse_short_video/dy",ks: "http://api.txapi.cn/v1/parse_short_video/ks",xhs: "http://api.txapi.cn/v1/parse_short_video/xhs",}this.url = ''  // 要解析的地址this.type = ''  // 用来存储识别到的类型}// 万能解析parse_video(){axios({url: this.req_urls[this.type],method: 'POST',headers: {'Content-Type': "application/x-www-form-urlencoded"},responseType: 'json',data: {token: this.token,url: this.url}}).then(resp => {// 校验是否解析成功if(resp.data.code != 200 && resp.data.msg != "OK"){console.log("解析失败")}else{// 获取到解析后的数据const data = resp.data.dataconsole.log(data)var type = data.type  // 类型:1视频 2图片集var title = data.title  // 标题var cover_url = data.cover_url  // 封面地址var video_url = data.video_url  // 无水印视频地址var imgs = data.imgs  // 无水印图片数组}})}// 获取类型get_type(){if(this.url.match(/http[s]?:\/\/v\.douyin\.com\/[^ ]+/) != null){console.log("识别到【dy】链接")return "dy"}else if(this.url.match(/http[s]?:\/\/v\.kuaishou.com\/[^ ]+/) != null){console.log("识别到【ks】链接")return "ks"}else if(this.url.match(/http[s]?:\/\/xhslink\.com\/[^ ]+/) != null){console.log("识别到【xhs】链接")return "xhs"}else{console.log("未识别到链接类型,请输入正确的链接")return null}}// 使用正则区分要解析的链接是哪个平台的【dy、ks、xhs】run(url){// 1、把url保存给实例变量【方便后期使用】this.url = url// 1、获取类型this.type = this.get_type();if(!this.type){return}// 2、调用万能解析this.parse_video()}
}
if(__filename === process.mainModule.filename) {// new一个Parse对象const p = new Parse()// 调用run方法p.run("https://v.douyin.com/hoDBW9H")p.run("https://v.kuaishou.com/C75B2q")p.run("http://xhslink.com/fKihbj")
}

不收费:(这边只说下大概实现思路,具体操作没试过,因为我们这边是通过接口python来实现的)

  • 抖音去水印
    逻辑:

通过短链获取到视频mid,通过mid获取到视频详情,再通过视频详情拿到视频地址,将有水印替换为无水印即可

let res=await uniCloud.httpclient.request(
"https://v.douyin.com/efKYWbU/",{method:"GET",
dataType: 'text'})
//视频获取mid
let mid=res.headers.location.split("/")[5]
//通过mid获取视频详情
let body= await uniCloud.httpclient.request("https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids="+mid,{dataType: 'text'});body=JSON.parse(body.data)
//初始化视频信息
res={desc:body.item_list[0].desc,video:body.item_list[0].video.play_addr.url_list[0].replace("playwm","play"),
image:body.item_list[0].video.origin_cover.url_list[0],
music:body.item_list[0].music.play_url.url_list[0]
}
//把视频地址转换成无水印的
let temp=await uniCloud.httpclient.request(
res.video,{method:"GET",
dataType: 'text'})
res.video=temp.headers.location//打印视频结果
console.log(res)
  • 小红书去水印
    逻辑:

1.通过复制短链转换拿到长链(长链在header里有个location字段)
2.通过长链请求拿到源码(需要在header传个cookie和User-Agent字段,不然小红书会提示系统版本过低无法拿到数据)
3.全局查找里面会有几个以.mp4结尾的视频,拿到视频后去除u002F,同时把域名sns-video-al.xhscdn.com换为sns-video-bd.xhscdn.com就是无水印的视频啦!

cookie和User-Agent字段可通过电脑端F12在network里查找搜索explore会找到这个网页,然后查看其header传参数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/19793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无涯教程-Lua - 文件I/O

I/O库用于在Lua中读取和处理文件。 Lua中有两种文件操作,即隐式(Implicit)和显式(Explicit)操作。 对于以下示例,无涯教程将使用例文件test.lua,如下所示。 -- sample test.lua -- sample2 test.lua 一个简单的文件打开操作使用以下语句。…

Unity3D坐标与UI坐标转化差别过大

在UI Canvas的Render Mode模式是Screen Space-Camera模式极其容易3D坐标值转UI坐标出错。 **具体原因是:**Canvas的Rect Transform锁定,其Scale的倍数值不是1,所以导致从3D的坐标数值转换成UI坐标时就会出现问题。 正确做法: 1、 …

ChatGPT 是如何工作的:从预训练到 RLHF

欢迎来到人工智能的未来:生成式人工智能!您是否想知道机器如何学习理解人类语言并做出相应的反应?让我们来看看ChatGPT ——OpenAI 开发的革命性语言模型。凭借其突破性的 GPT-3.5 架构,ChatGPT 席卷了世界,改变了我们与机器通信的方式,并为人机交互开辟了无限可能。随着…

改进的智能优化算法定性分析:种群多样性分析(Analysis of the population diversity)

目录 一、智能优化算法改进种群多样性分析 二、GWO与IGWO种群多样性对比 三、GWO与改进的GWO1种群多样性分析 四、代码获取 一、智能优化算法改进种群多样性分析 为了验证所提出的IDMO中种群多样性的丰富性,我们使用下式计算本节中的种群多样性。这个式…

Java并发系列之四:重中之重AQS

上一期我们介绍了乐观锁,而乐观锁的本质即是CAS,操作系统提供了支持CAS修改内存值的原子指令,所以乐观锁得以实现。从软件工程的角度去看,虽然底层已经通过CAS实现了乐观锁,Java的底层已经在Unsafe这个类中封装了compa…

【BASH】回顾与知识点梳理(三)

【BASH】回顾与知识点梳理 三 三. 命令别名与历史命令3.1 命令别名设定: alias, unalias3.2 历史命令:history同一账号同时多次登入的 history 写入问题无法记录时间 三. 命令别名与历史命令 我们知道在早期的 DOS 年代,清除屏幕上的信息可以…

《Java极简设计模式》第02章:抽象工厂模式(AbstractFactoty)

作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 源码地址:https://github.com/binghe001/java-simple-design-patterns/tree/master/j…

3.病人排队

【题目】 病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序: 老年人(年龄 > 60岁)比非老年人优先看病。 老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。 非…

Cirno‘s Perfect Equation Class 2023牛客暑期多校训练营5 D

登录—专业IT笔试面试备考平台_牛客网 题目大意&#xff1a;有q次询问&#xff0c;每次给出三个整数k&#xff0c;c&#xff0c;n&#xff0c;求有多少满足条件的数对&#xff08;a&#xff0c;b&#xff09;满足kabc且c是b的倍数&#xff0c;且gcd(a,b)>n 1<q<100;…

Redis实现延时队列

缓存队列延时向接口报工&#xff0c;并支持多实例部署。 引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-data</artifactId><version>3.17.4</version> </dependency> 注入RedisClient …

flask中实现restful-api

flask中实现restful-api 举例&#xff0c;我们可以创建一个用于管理任务&#xff08;Task&#xff09;的API。在这个例子中&#xff0c;我们将有以下API&#xff1a; GET /tasks: 获取所有任务POST /tasks: 创建一个新的任务GET /tasks/<id>: 获取一个任务的详情PUT /t…

prometheus+grafana进行服务器资源监控

在性能测试中&#xff0c;服务器资源是值得关注一项内容&#xff0c;目前&#xff0c;市面上已经有很多的服务器资 源监控方法和各种不同的监控工具&#xff0c;方便在各个项目中使用。 但是&#xff0c;在性能测试中&#xff0c;究竟哪些指标值得被关注呢&#xff1f; 监控有…

c++ | const 对常量的绑定

这一块&#xff0c;感觉很真的不好描述。最好就是搬着primer去啃去理解了。 const 核心思想&#xff0c;就是const对象很多操作都被限制了。类型决定对象操作 const 常量引用&#xff0c;所引用的对象必须是确定的&#xff08;粗俗的讲就是字面值 常量&#xff09; const int …

appium自动爬取数据

爬取类容&#xff1a;推荐知识点中所有的题目 爬取方式&#xff1a;appium模拟操作获取前端数据 入门级简单实现&#xff0c;针对题目和答案是文字内容的没有提取出来 适用场景;数据不多&#xff0c;参数加密&#xff0c;反爬严格等场景 from appium import webdriver impor…

git 常用命令有哪些

Git 是我们开发工作中使用频率极高的工具&#xff0c;下面总结下他的基本指令有哪些&#xff0c;顺便温习一下。 前言 一般项目中长存2个分支&#xff1a; 主分支&#xff08;master&#xff09; 和开发分支&#xff08;develp&#xff09; 项目存在三种短期分支 &#xff1a…

Linux安装MySQL 8.1.0

MySQL是一个流行的开源关系型数据库管理系统&#xff0c;本教程将向您展示如何在Linux系统上安装MySQL 8.1.0版本。请按照以下步骤进行操作&#xff1a; 1. 下载MySQL安装包 首先&#xff0c;从MySQL官方网站或镜像站点下载MySQL 8.1.0的压缩包mysql-8.1.0-linux-glibc2.28-x…

k8s实战

一、pod 1. 配置文件 2.探针 【1】类型 StartupProde&#xff1a;启动探针&#xff0c;判断程序是否启动LivenessProbeReadlinessProbe&#xff1a; 确认应用是否启动成功 【2】探测方式 ExecAction&#xff1a;在容器内执行一个命令&#xff0c;如果返回值为0&#xff0…

快速WordPress个人博客并内网穿透发布到互联网

快速WordPress个人博客并内网穿透发布到互联网 文章目录 快速WordPress个人博客并内网穿透发布到互联网 我们能够通过cpolar完整的搭建起一个属于自己的网站&#xff0c;并且通过cpolar建立的数据隧道&#xff0c;从而让我们存放在本地电脑上的网站&#xff0c;能够为公众互联网…

[RK3568 Android11] 开发之默认授予系统预置的APP权限

[RK3568 Android11] 开发之默认授予系统预置的APP权限 [RK3568 Android11] 开发之默认授予系统预置的APP权限_rk3568 授予所有文件的管理权限_~未来可期~的博客-CSDN博客

分享 一个类似 ps 辅助线功能

效果图片&#xff1a; 提示&#xff1a;这里的样式我做边做了修改&#xff0c;根据个人情况而定。 //你也可以npm下载 $ npm install --save vue-ruler-tool特点 没有依赖可拖动的辅助线快捷键支持 开始使用 1. even.js /*** description 绑定事件 on(element, event, han…