自动化抖音点赞取消脚本批量处理

news2024/10/24 13:54:23

🌟 前言

欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍

  • 🤖 洛可可白:个人主页

  • 🔥 个人专栏:✅前端技术 ✅后端技术

  • 🏠 个人博客:洛可可白博客

  • 🐱 代码获取:bestwishes0203

  • 📷 封面壁纸:洛可可白wallpaper

Alt

自动化抖音点赞取消脚本批量处理

    • 脚本功能
    • 技术实现
    • 脚本代码
    • 使用方法
    • 注意事项

脚本功能

这个脚本通过定期发送请求到抖音的服务器,获取用户点赞的视频列表,并批量发送取消点赞的请求。它还提供了一个消息框,实时显示取消点赞的进度和总数。

技术实现

脚本主要使用了JavaScript的fetch API来与抖音的服务器进行交互,同时利用了localStorage来存储和获取密钥。通过Promise.all实现了并发请求,提高了取消点赞的效率。此外,使用setInterval函数每隔4秒自动执行一次取消点赞的操作。

脚本代码

// 从localStorage中获取密钥,并去除前缀'pub.'(如果存在)
let key = JSON.parse(localStorage.getItem('security-sdk/s_sdk_cert_key')).data.replace(/^pub\./, '');
let max_cursorTemp = 0; // 用于存储最大的游标值
let messageBox = undefined; // 用于存储消息框的DOM元素

var count = 0; // 用于统计总共取消了多少个点赞

// 异步函数,用于获取点赞列表并批量取消点赞
async function fetchAndCancelLikes(maxCursor = max_cursorTemp) {
    try {
        // 发送GET请求到抖音的接口,获取点赞列表
        const response = await fetch(`https://www.douyin.com/aweme/v1/web/aweme/favorite?aid=6383&count=999&max_cursor=${max_cursorTemp}`,  {
            "referrerPolicy": "strict-origin-when-cross-origin",
            "body": null,
            "method": "GET",
            "mode": "cors",
            "credentials": "include"
        });
        const { aweme_list, max_cursor } = await response.json();
        max_cursorTemp = max_cursor; // 更新最大游标值

        // 如果响应中包含aweme_list,则提取出所有的aweme_id
        if (aweme_list != null) {
            const idsToCancel = aweme_list.map(({ aweme_id }) => aweme_id);
            let currCount = 0;
            // 使用Promise.all并发取消所有的点赞
            await Promise.all(idsToCancel.map(id => {
                cancelLike(id, key);
                currCount++;
                count++;
            })).then(()=>{
                // 取消点赞后,更新消息框
                if(messageBox!=undefined){
                    document.body.removeChild(messageBox);
                }
                messageBox = showMessageBox(`本次执行取消${currCount}个点赞,共取消${count}个点赞,四秒后继续执行,如果不需要执行直接关闭浏览器,当前时间${new Date()}`);
            });
        }

    } catch (error) {
        // 如果请求失败,捕获错误并打印到控制台
        console.error('Error fetching and canceling likes:', error);
    }
}

// 异步函数,用于取消单个点赞
async function cancelLike(id, key) {
    try {
        // 发送POST请求到抖音的接口,用于取消点赞
        await fetch("https://www.douyin.com/aweme/v1/web/commit/item/digg/?aid=6383",  {
            "headers": {
                "accept": "application/json, text/plain, */*",
                "accept-language": "zh-CN,zh;q=0.9",
                "bd-ticket-guard-ree-public-key": key,
                "content-type": "application/x-www-form-urlencoded; charset=UTF-8"
            },
            "referrer": "https://www.douyin.com/user/self?modal_id=7308336895358930212",
            "referrerPolicy": "strict-origin-when-cross-origin",
            "body": `aweme_id=${id}&item_type=0&type=0`,
            "method": "POST",
            "mode": "cors",
            "credentials": "include"
        });
    } catch (error) {
        // 如果取消点赞失败,捕获错误(但不做处理)
    }
}

// 设置定时器,每隔4秒执行一次fetchAndCancelLikes函数
setInterval(fetchAndCancelLikes, 4000);

// 函数,用于创建和显示一个消息框
function showMessageBox(mess) {
    // 创建消息框DOM元素,并设置样式和文本内容
    var messageBox = document.createElement('div');
    messageBox.id = 'autoMessageBox';
    messageBox.style.position = 'fixed';
    messageBox.style.top = '50%';
    messageBox.style.left = '50%';
    messageBox.style.transform = 'translate(-50%, -50%)';
    messageBox.style.padding = '20px';
    messageBox.style.backgroundColor = '#3498db';
    messageBox.style.color = 'white';
    messageBox.style.borderRadius = '5px';
    messageBox.style.zIndex = '1000';
    messageBox.style.display = 'block';
    messageBox.textContent = mess;
    document.body.appendChild(messageBox);
    return messageBox;
}

使用方法

要使用这个脚本,只需将其添加到你的浏览器控制台中即可。脚本会自动开始工作,并在页面上显示一个消息框,告诉你已经取消的点赞数量和进度。如果不再需要执行,只需关闭浏览器或移除脚本即可。

注意事项

虽然这个脚本可以自动化取消点赞的操作,但请注意,频繁的请求可能会对抖音服务器造成不必要的负担。因此,在使用时请合理安排时间间隔,避免过度请求。

此外,需要强调的是,这个脚本仅供学习和研究使用,不得用于任何商业或非法目的。在使用过程中,请遵守抖音的使用条款和相关法律法规。


免责声明: 本脚本仅供学习和研究目的,作者不承担因使用此脚本而产生的任何责任。请确保你的行为符合相关法律法规和平台政策。

如果对你有帮助,点赞👍、收藏💖、关注🔔是我更新的动力!👋🌟🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2222434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS综合案例——新闻详情

一、知识点 1、文字颜色 属性名:color 属性值: 颜色表示方式属性值说明使用场景颜色关键字颜色英文单词red,green,blue学习测试rgb表示法rg(r,g,b)r,g,b表示红绿蓝三原色,取值0-255了解rgba表示法rgba(r,g,b,a)a表示透明度,取…

CVE-2024-36401 Geoserver远程代码执行漏洞复现

目录 CVE-2024-36401 Geoserver远程代码执行漏洞 影响版本 环境搭建 漏洞复现 poc GeoServer是一个用Java编写的开源软件服务器,允许用户共享和编辑地理空间数据。它为提供交互操作性而设计,使用开放标准发布来自任何主要空间数据源的数据。 CVE-20…

大模型日常:支持中英混合及多语言文生语音的MeloTTS本地部署

简要介绍 MeloTTS 是一个强大的多语言文本转语音库,特别设计以支持CPU环境下的实时语音合成,无需依赖GPU。该库能够输出自然流畅的语音,提供了一种高效便捷的方式,将文本信息转换为听觉内容。MeloTTS不仅支持多种语言&#xff0c…

Ubuntu20.04安装opencv3.1.0(包含详细解决报错方法)

我的环境是cuda10.1 cmake是3.16.5 第一步骤:下载安装包 第二步骤:编译环境安装 第三步骤:解压opencv安装包,并且在opencv文件夹内新建build文件夹 第四步骤:打开cmake-gui, 第五步骤:进行…

驱动-----内核启动

目录 一、最小系统 二.操作系统 三.操作系统的启动 四.linux启动准备工作 五.安装nfs和tftp环境 六.总结 设备驱动:驱使设备行动的程序。 裸机程序:没有和操作系统结合的驱动程序pwm.c,uart.c,adc.c 有操作系统的时候,应用层不能直接操作硬件,由底层写驱动的人写…

凹凸性和拐点的概念

二阶导不存在也可能是拐点 判断拐点的充分条件

第三十一篇:TCP协议如何解决丢包的问题,TCP系列六

前面我们说TCP协议是可靠的、基于字节流、面向连接的传输层通信协议; 这里我想换种说法:与其说是TCP协议是可靠的,不如说传输层程序软件实现了TCP协议的规范(网络层次模型,每一层都有对应的程序软件)&…

【从零开始的LeetCode-算法】3185. 构成整天的下标对数目 II

给你一个整数数组 hours&#xff0c;表示以 小时 为单位的时间&#xff0c;返回一个整数&#xff0c;表示满足 i < j 且 hours[i] hours[j] 构成 整天 的下标对 i, j 的数目。 整天 定义为时间持续时间是 24 小时的 整数倍 。 例如&#xff0c;1 天是 24 小时&#xff0c…

ApacheShiro反序列化 550 721漏洞

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理个漏洞被称为 Shiro550 是因为在Apache Shiro的GitHub问题跟踪器中&#xff0c;该漏洞最初被标记为第550个问题,721漏洞名称也是由此而来 Shiro-550 CVE-2016-4437 Shiro反序列化Docker复现 …

重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer 1. 什么是响应式编程&#xff1f;2. Project Reactor 概述3. HttpHandler概述3.1 HttpHandler是什么3.2 Http…

Flink 1.18安装 及配置 postgres12 同步到mysql5.7(Flink sql 方式)

文章目录 1、参考2、flink 常见部署模式组合3、Standalone 安装3.1 单节点安装3.2 问题13.3 修改ui 端口3.4 使用ip访问 4 flink sql postgres --->mysql4.1 配置postgres 124.2 新建用户并赋权4.3. 发布表4.4 Flink sql4.5 Could not find any factory for identifier post…

落实“双碳”行动,深兰科技推动分子能源技术在AI硬件产品领域的应用及产业化进程

10月21日&#xff0c;上海气候周分子能研究中心(筹)成立仪式在上海环境能源交易所举行。仪式上&#xff0c;深兰科技践行“双碳”目标&#xff0c;与上海东八能源技术有限公司签署分子能源AI应用产业化合作协议。 根据协议&#xff0c;国际分子能量发电开拓者、上海气候周分子能…

Notepad++将搜索内容所在行选中,并进行复制等操作

背景 Notepad在非常多的数据行内容中&#xff0c;按照指定内容检索&#xff0c;并定位到具体行&#xff0c;而后对内容行的数据进行复制、剪切、删除等处理动作。 操作说明 检索并标记所在行 弹出搜索框&#xff1a;按下 Ctrl F。 输入查找字符串&#xff1a;在搜索框中输入要…

YOLOv11入门到入土使用教程(含结构图)

一、简介 YOLOv11是Ultralytics公司在之前的YOLO版本上推出的最新一代实时目标检测器&#xff0c;支持目标检测、追踪、实力分割、图像分类和姿态估计等任务。官方代码&#xff1a;ultralytics/ultralytics&#xff1a;ultralytics YOLO11 &#x1f680; (github.com)https://g…

【小洛的VLOG】Web 服务器高并发压力测试(Reactor模型测试)

目录 引言 工具介绍 环境介绍 测试结果 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 大部分的网络通信都是支持TCP/IP协议栈&#xff0c;为了保证通信的可靠性&#xff0c;客户端和服务端之间需要建立链接。服务端能并发处理多少个链接&#xff0c;平均每秒钟能处理…

QML----Webengineview点击网页上的下载没反应,下载文件

问题 使用webe加载网页时&#xff0c;点击下载页面会没有反应。原因就是它默认是关闭下载功能 解决 需要在profile里监听下载事件打开onDownloadRequested,当有下载时会触发这个信号,会获取到一个WebEngineDownloadItem这是下载的东西,查询它的一些相关参数,可以修改路径和开…

项目一:3-8译码器的设计与实现(FPGA)

本文以Altera公司生产的Cyclone IV系列的EP4CE15F17C8为主芯片的CRD500开发板作为项目的硬件实现平台&#xff0c;并以Quarter 18.1和ModelSim为开发工具和仿真工具。 目录 一、3-8译码器工作原理 二、设计步骤 1、创建工程文件夹和编辑设计文件 &#xff08;1&#xff09;…

(三)将PaddleOCR编译成dll通过Java调用实现ocr识别

说明&#xff1a; 本文编译的PaddleOCR版本&#xff1a;v2.8.1&#xff0c;关于windows下如何生成c项目及如何编译PaddleOCR请参照我的上一篇文章《&#xff08;二&#xff09;Windows通过vs c编译PaddleOCR-2.8.1-CSDN博客》&#xff0c;本文是上一个篇文章的延伸。 背景&…

douyin uid转sec_uid 各种进行转换

第一步输入uid&#xff1a; 进行转换&#xff1a; 同时支持接口转换&#xff0c;批量转换&#xff0c;是一个很实用的工具 uid转sec_uid

微信小程序上传图片添加水印

微信小程序使用wx.chooseMedia拍摄或从手机相册中选择图片并添加水印&#xff0c; 代码如下&#xff1a; // WXML代码&#xff1a;<canvas canvas-id"watermarkCanvas" style"width: {{canvasWidth}}px; height: {{canvasHeight}}px;"></canvas&…