短视频去水印最新教程

Mebius
• 阅读 110

一、封装一个函数来识别要解析的类型

  // 获取类型
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
    }
}

二、在初始化方法中写入本实例共用的数据

  // 初始化方法
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  // 无水印图片数组
        }
    })
}
废话不多说 直接上完整代码👇
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")
}
点赞
收藏
评论区
推荐文章
onlyloveyd onlyloveyd
3年前
Android抖音去水印APP
本文同步发表于我的微信公众号,在微信搜索OpenCVorAndroid即可关注。前言微信8.0.0更新以后,大伙玩得不亦乐乎,除了会动的表情,特效的炸弹、烟花等,还有一个亮点就是微信个人状态背景,既可以挂图片,更可以挂视频,给人一种万物皆可短视频的感觉。我也很爱这个功能,但是奈何鄙人才疏学浅,没法制作炫酷的短视频。只能使用去抖音水印工具获取
Easter79 Easter79
2年前
tp6+FFMpeg实现视频水印及大小剪切
之前项目中用到上传视频时,需要获取视频大小,视频第一帧及给视频添加水印问题,找了很多资料,结合在项目中的实际运用,在此记录一下。1.FFMpeg安装1.下载扩展网上可以找到,我这里放到百度云盘链接:百度云盘下载(https://www.oschina.net/action/GoToL
Python进阶者 Python进阶者
2年前
一篇文章教会你使用Python下载抖音无水印视频
今天小编要跟大家分享的是,利用Python如何下载抖音无水印的视频;大家可能要问了,这个有什么用呢?当然有用了。那么有什么用呢?下面小编跟大家详细说说。众所周知,由于如今短视频的火爆,使得一批又一批的自媒体创作者犹如雨后春笋般冒了出来,其中不乏一些创作者投机取巧想要剽窃他人成功作品,这一行为往往被戏称为白嫖,哈哈哈,废话不多说,撸起袖子就是淦。一、准
秋桐 秋桐
9个月前
Java 给Word添加水印
在Word中添加水印,可以有效地保护文档的机密性和防止他人剽窃,也可以作为文档的版权声明或草稿标记,方便进行统一管理。Word中添加水印的方法有很多种,比如使用内置的“水印”功能、使用“页眉/页脚”功能、使用插入图片/文本框并调整其透明度等方式。这里我想介绍如何通过Java程序,已编程的方式来实现该功能。水印包括图片水印和文本水印。所用到的工具是FreeSpire.DocforJava。下面是具体的方法和示例代码。
秋桐 秋桐
10个月前
如何向Word文档中添加文本水印和图片水印
水印是在文档或图片上添加的一种透明或半透明的标记,通常用于保护文档版权、防止盗用、确认文件归属等目的,通常包含文字、图像等多种元素。通过MicrosoftWord可以向文档添加文本和图片水印。除此之外,我们也可以利用FreeSpire.DocforJava
Wesley13 Wesley13
2年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Easter79 Easter79
2年前
TurnipBit开发板DIY呼吸的吃豆人教程实例
  转载请以链接形式注明文章来源(MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇)  0x00前言  吃豆人是耳熟能详的可爱形象,如今我们的TurnipBit也集成了这可爱的图形,我们这就让他来呼吸了~。  0x01效果展示  先一起看下最终的成品演示视频:  http:/
秋桐 秋桐
10个月前
Java 给PDF添加文本水印
水印一般用于标注文档的版权信息、作者、所属机构或者文档属性等。与文档批注等不同,水印是绘制到页面中的元素,所以不能轻易被删除。因此,水印也是一种很好的防伪手段。水印又分为文本水印和图片水印两种。这里,以Java代码为例,我将分享通过代码给PDF文档添加文本水印的具体方法和示例代码。
秋桐 秋桐
9个月前
Java 向PDF中添加图像水印
水印一般用于标注文档的版权信息、作者、所属机构或者文档属性等。不同于文本批注等,文字水印是绘制到页面中的元素,所以不会被轻易删除。因此,水印也是一种很好的防伪手段。水印又分为文本水印和图片水印两种。之前已经介绍过向PDF中添加文本水印的方法。这次,我将分享通过Java代码给PDF文档添加图像水印的具体方法和示例代码。使用到的工具是FreeSpire.PDFforJava(免费版)。