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.data
    console.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传参数据

相关推荐
开心工作室_kaic15 分钟前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿34 分钟前
webWorker基本用法
前端·javascript·vue.js
cy玩具1 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
清灵xmf1 小时前
TypeScript 类型进阶指南
javascript·typescript·泛型·t·infer
小白学大数据1 小时前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫
qq_390161772 小时前
防抖函数--应用场景及示例
前端·javascript
334554322 小时前
element动态表头合并表格
开发语言·javascript·ecmascript
John.liu_Test2 小时前
js下载excel示例demo
前端·javascript·excel
Yaml42 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
PleaSure乐事2 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro