(掘金日新计划)抖音无水印

2023-12-14
来源:网络整理

不断创造,加速成长!这是我参加“掘金每日新计划·6月更新挑战”的第五天,点击查看活动详情

前言

昨天,一个朋友告诉我,他想让我帮忙下载一个没有水印的视频。 我想了想,然后在网上找到了一个可以分析去除水印的工具。 我把没有水印的视频发给他了。 寄出去之后,我就开始思考是否可以自己做这个东西。

分析

作为一名前端开发人员,我对此非常感兴趣。 经过一番查找,我发现似乎很简单。

首先获取抖音分享的视频链接。 这是一个短链接,请将其输入到浏览器地址栏中。

访问这个地址后,可以获得长链接。 红框就是这个视频对应的ID。

抖音短视频去除水印解析_抖音去除视频水印解析_抖音视频去水印的解析

拿到ID后,丢掉这个接口,=刚刚拿到的ID

${};

访问该地址即可获取JSON字符串。 建议拆包后阅读,以便更好地理解。

JSON解析后如下图

第一个(其实总共只有一个)对应的是视频信息,第一个对应的是背景音乐信息,第一个对应的是共享信息。

抖音短视频去除水印解析_抖音视频去水印的解析_抖音去除视频水印解析

如图所示,下面是视频播放地址信息。 第一个是带水印的视频地址。 您只需更改播放地址中的地址即可获取无水印的视频信息。 wm是水印的意思。 这样就可以获取无水印的视频地址了,所以只需要使用代码来实现这些步骤。

代码

我这里比较懒,所以先把视频的网址写好并固定下来。 重要的是实现这个功能。 我在之前的项目中直接写了代码并在本地运行,没有放到服务器上进行测试。

// douyin_remove_water_mark async function douyinRWM (params) { const { url } = params; const longUrl = await got.get(url); const videoId = longUrl.url.substr(29, 19); console.log("videoId",videoId) const api = `https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=${videoId}`; const res = await got.get(api); const info = JSON.parse(res.body) // console.log("info",info) const { music, video, share_info } = info.item_list[0]; let mp3 = music.play_url.uri; let mp4 = video.play_addr.url_list[0].replace('playwm', 'play'); let title = share_info.share_title; console.log('【mp3】',mp3) console.log('【mp4】',mp4) console.log('【title】',title) return { mp3, mp4, title }; }

再次强调一下,这里的视频地址是硬编码的,是本地直接调用的。

定义参数和调用方法

const data = { url:'https://v.douyin.com/YjNKTBA/' } douyinRWM(data)

抖音去除视频水印解析_抖音短视频去除水印解析_抖音视频去水印的解析

影响

运行结果如下:

打开音频地址

打开视频地址

分享