100 行 js 代码下载抖音无水印视频

14,253 阅读2分钟

本文大约 600 字,看完本文大概需要 5 分钟,仅供学习使用,如有错误,请指正。

需求

抖音平台下载一个视频,去掉左上角的水印id。

先来看看有水印效果

这时候就会发现,抖音官方下载下来的视频,会有抖音的水印,需要去掉水印。

分享视频

从抖音分享一个视频,你会获得一个分享文案和地址,格式如下(不懂怎么分享可以百度)

一只都放不明白 https://v.douyin.com/JdbBqog/ 复制此链接,打开【抖音短视频】,直接观看视频!

把上面的 url 地址 ( v.douyin.com/JdbBqog/) 放到浏览器模拟的手机模式下看看发生了什么

1. 重定向

短地址会重定向,

访问这个重定向的地址获取两个重要的参数

2. 一个关键的 ajax

利用上面 html 内嵌 script 获取的两个参数,请求下面的地址。

请求返回了一个 json 包含了这个视频的一些信息,其中有一个去水印的关键参数 uri

到这里,抖音官方的流程就走完了。

3. 如何去水印?

原理:并不是用高大上的人工智障或者类似 ps 去掉某一个地方的水印,而是抖音会保存一份无水印的视频,我们只需要找到这个无水印视频的地址就可以了。

说完原理,实现就是根据上面获取的字段 uri ,然后拼接在一个抖音存储无水印视频的地址上就完事了。(这个拼接的地址在浏览器上可能访问不了) 看代码吧

实现效果

node.js 代码仓库

代码仓库 仅供学习使用

分两种下载模式,浏览器下载和命令行下载

  1. 浏览器输入即可下载 (方便提供接口)
npm start 
or 
node index

使用

代码

  1. 工具模式下载到目录(类似命令行工具)
node tool

参考

mp.weixin.qq.com/s/DF7_b_F1i…

gitee.com/goldriver/d…