某音无水印视频如何下载?我教你!

距离上次搞定某音的字体反爬已经过去很久了,没看过的可以戳这里看看小白也可以看会的破解抖音字体反爬,当时由于技术原因想获取分享页的视频的,弄不了,后来技术跟上了,也变懒了,一放下就大半年过去了。现在决定重新搞下,废话不多说,直接上网址。

1. 找到目标链接  ##

要解析无水印的视频,需要在手机端的个人主页 -> 左上角 -> 以链接的形式分享,这样你会得到类似于这样的链接:**http://v.douyin.com/NT5Nck/**在 PC 端打开就会自动重定向到这个链接:https://www.iesdouyin.com/share/user/88445518961?timestamp=1548046967

image

往下拉你就会看到她发表的所有视频了,这些视频就是我们想要的无水印视频。 接下来就是熟悉的一步,打开开发者工具,寻找我们想要的请求。很容易就找到我们想要的请求

image

2. 寻找加密参数的过程

里面两个可能需要加密的参数,还是老办法,先直接搜索这个需要加密的参数名字:_signature,很容易就找到这个地方

image

直接下断点 + 刷新网页,你会看到这个

image

很明显就看到我们想要的两个参数都在这里了,往上寻找他们的生成方式即可。再查看右边的函数调用栈,很轻松就可以看到 signature 参数的生成方式

image

再往下一个函数调用栈,也可以看到 dytk 的参数,是直接在请求个人主页返回的,不需要加密,这样子就只剩下 signature 参数需要搞了。

image

现在重新下断点,直接下在 signature 生成的地方,这样方便查看相关函数。

image

现在临到看 _bytedAcrawler 这个对象怎么生成的了,这里很容易就可以找到它的生成位置

image

可以看到是一个 require 方法,请求一个文件相关的,但是把鼠标放在这个方法上,并不是我们想到的那个方法,而是他们重写的方法

image

直接点击进去看即可,接下来就是点击让代码运行下一步,直接跳到我们刚刚看到的函数。

image

这里看到还需要用到这两个函数,都是小意思

image

image

这个对象生成了,基本就完成了,最后加密需要用到的参数就是 视频主页的 id, 这个好办,大功告成。

3. 遇到的问题

将需要的代码扣下来之后,直接使用 python 的第三方库 pyexecjs 运行,会有这个错误

image

TypeError: Cannot read property 'userAgent' of undefined这个问题好办,因为 pyexecjs 的引擎是 v8,不支持 dom 的,所以自己构建一个 dom 对象即可。像这样就可以搞定了:

image

现在代码是可以生成我们想要的参数了,但是有时还是得不到数据,群里一大佬说是还需要一个 tac 变量,在这里:

image

也是在请求个人主页就可以得到,直接使用正则就可以获取,效果图

image

监于只是练手,里面可能还需要很多别的浏览器的变量没有调试出来,如果有需要的话可以自行调试。 另代码已上传到github:https://github.com/SergioJune/Spider-Crack-JS说明:目前mou音在 PC 端是看不了视频的了,但是在移动端是可以的,所以找出了视频链接,把请求头改成这样就可以了

image

效果图

image

最后

公众号很久没有原创更新了,因为最近有点事,现在开学了,时间也开始多了起来,所以现在重新开始更新原创,尽量每周更新两篇文章,文章不局限于逆向,量级爬虫,框架学习和 Python 基础,希望大家喜欢,另外有建议也可以在留言区提出来,让大家一起变好!

扫码查看更多文章

image

转载于:https://my.oschina.net/u/3936891/blog/3100872

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抖音的视频下载通常需要使用第三方工具来实现,以下是使用C++实现的简单示例: 首先,需要使用C++的网络库来进行HTTP请求,这里以CURL为例。可以使用以下命令安装CURL: ``` sudo apt-get install libcurl4-openssl-dev ``` 然后,可以使用以下代码来下载水印视频: ```cpp #include <iostream> #include <curl/curl.h> using namespace std; int main() { // 抖音无水印视频链接 string videoUrl = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=VIDEO_ID"; // VIDEO_ID为具体视频的ID,可以从分享链接中获取 // 初始化CURL CURL *curl = curl_easy_init(); if (curl) { // 设置请求参数 curl_easy_setopt(curl, CURLOPT_URL, videoUrl.c_str()); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); // 将响应结果存储到内存中 string response; curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, [](char *data, size_t size, size_t nmemb, string *writerData) { writerData->append(data, size * nmemb); return size * nmemb; }); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // 发送请求 CURLcode res = curl_easy_perform(curl); if (res != CURLE_OK) { cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << endl; } // 解析响应结果,获取无水印视频链接 int index = response.find("playAddr:"); if (index != string::npos) { index += 10; int endIndex = response.find(",", index) - 1; string videoAddr = response.substr(index, endIndex - index); cout << "无水印视频链接:" << videoAddr << endl; } else { cerr << "解析响应结果失败" << endl; } // 释放CURL资源 curl_easy_cleanup(curl); } return 0; } ``` 需要注意的是,抖音的API可能会随时变更,代码中的解析方式可能会失效。此外,由于涉及到版权问题,下载他人上传的视频可能会违反法律法规,请谨慎使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值