github短视频去除水印项目Douyin_TikTok_Download_API介绍

当下正值短视频盛行的时代。在我们浏览短视频的同时,经常能发现一些精美的图片、引人入胜的文案以及吸引眼球的视频,想要将它们保存到本地。然而,保存下来的图片或视频通常伴随着不太愉悦的水印,这显著降低了使用体验。因此,我时常思考是否存在途径能够下载一些无水印的图片。虽然有许多小程序等可以保存无水印的图片或视频,但它们往往伴随着一些令人不悦的广告或付费等。今天,在浏览 GitHub 时偶然发现了一个开源项目,名为“Douyin_TikTok_Download_API”,它能够满足我们的需求。在本文中,我将详细介绍这个项目,并分享如何进行部署和使用。

项目简介

github地址: https://github.com/Evil0ctal/Douyin_TikTok_Download_API

_20240102164238.jpg

目前该项目在github 已有5.1k star,如下是作者写的项目介绍:

「Douyin_TikTok_Download_API」是一个开箱即用的高性能异步抖音|TikTok|Bilibili数据爬取工具,支持API调用,在线批量解析及下载。

该项目是基于 PyWebIO,FastAPI,AIOHTTP,快速异步的抖音/TikTok/Bilibili数据爬取工具,并通过Web端实现在线批量解析以及下载无水印视频或图集,数据爬取API,iOS快捷指令无水印下载等功能。你可以自己部署或改造本项目实现更多功能,也可以在你的项目中直接调用scraper.py或安装现有的pip包作为解析库轻松爬取数据等…

一些简单的运用场景:

下载禁止下载的视频,进行数据分析,iOS无水印下载(搭配iOS自带的快捷指令APP 配合本项目API实现应用内下载或读取剪贴板下载)等…

项目部署

在 README 中,作者提供了两种部署方式。我们选择了基于 Docker 的部署方法,接下来将详细介绍如何使用 docker-compose 进行部署。

第一步:创建docker-compose.yml 文件

我们在服务器上创建一个部署目录tiktok,在tiktok下创建docker-compose.yml文件,内容如下:

docker-compose.yml

version: "3.7"
services:# botdouyin_tiktok_download_api:image: evil0ctal/douyin_tiktok_download_apinetwork_mode: hostcontainer_name: douyin_tiktok_download_apirestart: alwaysvolumes:- ./config.ini:/app/config.inienvironment:TZ: Asia/Shanghaideploy:resources:limits:cpus: '0.80'

第二步:创建config.ini 文件

项目的相关配置存储在 config.ini 文件中,因此当需要进行配置更改时,只需编辑 config.ini 文件即可。

在与 docker-compose.yml 同级的目录下创建 config.ini 文件,然后将项目中 config.ini 文件的内容复制到新创建的 config.ini 文件中。

# -*- encoding: utf-8 -*-
# @Author: https://github.com/Evil0ctal/
# @Time: 2021/11/06
# @Update: 2022/11/09
# @Function:
# 项目的配置文件/Config file of the project[Scraper] # scraper.py
# 是否使用代理(如果部署在IP受限国家需要开启默认为False关闭,请自行收集代理,下面代理仅作为示例不保证可用性)
# Whether to use proxy (if deployed in a country with IP restrictions, it needs to be turned on by default, False is closed. Please collect proxies yourself. The following proxies are only for reference and do not guarantee availability)
Proxy_switch = False# 是否根据不同协议(http/https)使用不同代理,设置为True时修改Http_proxy/Https_proxy这两个变量的值
# Whether to use different proxies for different protocols (http/https). When set to True, modify the values of the two variables Http_proxy/Https_proxy
Use_different_protocols = False# http/https协议都使用以下代理(Use_different_protocols为False时生效)
# Both http/https protocols use the following proxy (effective when Use_different_protocols is False)
All = 45.167.124.5:9992# http协议使用以下代理(Use_different_protocols为True时生效)
# The http protocol uses the following proxy (effective when Use_different_protocols is True)
Http_proxy = http://45.167.124.5:9992# https协议使用以下代理(Use_different_protocols为True时生效)
# The https protocol uses the following proxy (effective when Use_different_protocols is True)
Https_proxy = https://45.167.124.5:9992# 抖音cookies配置项
# odin_tt=xxx;sessionid_ss=xxx;ttwid=xxx;passport_csrf_token=xxx;msToken=xxx;
DouYinCookies =[Web_API] # web_api.py
# API链接 如:http://127.0.0.1:2333 或 http://api.douyin.wtf (末尾不要留斜杠)
# API link, such as: http://127.0.0.1:2333 or http://api.douyin.wtf (no slash at the end)
Domain = http://api.douyin.wtf# 限制API的请求次数/Limited API requests
Rate_Limit = 10/minute# API默认运行端口/Default port of API
Port = 8000# 默认下载目录/Default download directory
Download_Path = ./download# 是否开启下载[tag = Download]功能(默认开启,关闭后无法下载)/Whether to enable the download [tag = Download] function (default open, closed after download)
Download_Switch = True# 是否自动清理下载目录/Whether to automatically clean up the download directory
Download_Path_Clean_Switch = True# 下载文件夹自动删除时间(单位:秒)/Download folder automatic deletion time (unit: seconds)
Download_Path_Clean_Timer = 3600# 默认下载文件名前缀/Default download file name prefix
File_Name_Prefix = api.douyin.wtf_# 是否记录API调用日志/Whether to record API call logs
Allow_Logs = True# 快捷指令版本/Shortcut version
iOS_Shortcut_Version = 6.0# 快捷指令Link(Chinese_Language)
iOS_Shortcut_Link = https://www.icloud.com/shortcuts/4465d514869e4ca585074d40328f3e0e# Shortcut Link(English_Language)
iOS_Shortcut_Link_EN = https://www.icloud.com/shortcuts/58e3a2cbac784a6782f1031c6b1dd9f8# 快捷指令更新时间/Shortcut update time
iOS_Shortcut_Update_Time = 2022/11/06# 快捷指令更新记录/Shortcut update log
iOS_Shortcut_Update_Note = 重新适配https://api.douyin.wtf(API-V1 3.0.0版本)# iOS shortcut update note
iOS_Shortcut_Update_Note_EN = Re-adapt https://api.douyin.wtf (API-V1 3.0.0 version)[Web_APP] # web_app.py
# 网页默认运行端口/Web default running port
Port = 80# PyWebIO是否使用CDN来获取前端的静态资源(防止CDN被墙导致无法正常显示)
# Whether PyWebIO uses CDN to obtain static resources of the front end (to prevent CDN from being blocked and displayed normally)
PyWebIO_CDN = True# 最大接受提交URL的数量/Maximum number of URLs accepted for submission
Max_Take_URLs = 200# 是否记录错误日志/Whether to record error logs
Allow_Logs = True# 网页标题
Web_Title = TikTok/抖音无水印在线解析下载# Web Title English
Web_Title_English = Douyin/TikTok online parsing and download without watermark# 网页描述
Web_Description = 在线批量解析TikTok/抖音视频和图片,支持无水印下载,官方数据接口,稳定,开源,免费,无广告。# Web Description English
Web_Description_English = Online batch parsing of TikTok/Douyin videos and pictures, support for no watermark download, official data interface, stable, open source, free, no ads.# 网页关键词/Keywords of the web page
Keywords = 抖音,tiktok,水印,无水印,no-watermark,抖音去水印,tiktok no watermark,在线,online,api,快捷指令,shortcut,下载,解析,parsing,tiktok api,抖音api,抖音去水印在线,tiktok去水印在线,downloader,下载器,free api,免费api

_20240102165557.jpg

我门需要修改的地方:

  • DouYinCookies =

这一步需要从我们的抖音网页版获取信息,具体的获取方法如下:

1.打开抖音网页版,如果已经登录,请退出登录。接着,按下 F12 键打开开发者工具,点击 Network。

2.点击页面上的登录,然后通过扫码的方式完成抖音登录。登录成功后,我们可以看到Network如下的接口信息。

_20240102171855.png

3.复制请求头中的 Cookie 值,将其粘贴到 config.ini 文件中的 DouYinCookies 字段中。

如果在后期使用的时候Cookie过期了的话重新按此方法获取新的Cookie,重启服务即可。

  • Domain = http://api.douyin.wtf

修改这个地址为 我们部署的机器ip和api的port,末尾不要留斜杠

比如我们的地址是: Domain = http://192.168.10.106:8000

api的端口默认为8000,Web_APP的端口默认为80,如果本地端口有冲突的话可以自定义修改,修改之后在Domain = http://192.168.10.106:8000 保持一致就可以。

第三步:启动容器

在docker-compose.yml统计目录下执行如下命令启动容器:

docker-compose up -d 

查看容器启动日志

docker-compose logs -f

如果不出意外的话我们服务就已经启动了。

第四步:访问服务

我们在浏览器中访问ip:Web_APP的port,我们此处是内网部署,地址为 http://192.168.10.106:8019/

_20240102173412.png

我们如果在抖音中发现一些精美的图片,我们只需要复制链接到页面提交即可。

_20240102182534.jpg

_20240102182729.jpg

如果我们需要的图片少的话右击另存为保存即可,比较多的话点击打包下载即可下载到本地。视频也是同样的操作,我们此处就就不做演示了。

免责声明

本文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请读者自负。

使用者对本文章内容的使用由使用者自行决定,并自行承担风险。博主对使用者使用本文章内容所产生的任何损失、责任、或风险概不负责。

每日闲谈

今天是2024年上班的第一天,短暂地回顾了一下2023年的经历,发现当初设定的很多目标未能如愿实现,执行过程中存在很多拖延的情况,这让我对自己的执行力感到不够满意。希望从现在开始,能够提升自己的执行力。

刷短视频的时候,正好看到了诸葛亮的《戒子篇》。“非学无以广才,非志无以成学”——没有学习就难以拓宽才华,没有志向就难以实现学识。年岁匆匆,心意如流水般逝去,这让我颇为感慨。再次分享这篇文章,期望与大家共勉。在新的一年里,让我们共同努力,提升执行力,坚定目标,创造更加辉煌的未来。

c7d98bdb0d6da853e782883e53e96f2e.png

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

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

相关文章

开源数据可视化分析工具DataEase本地部署并实现远程访问

目录 前言 1. 安装DataEase 2. 本地访问测试 3. 安装 cpolar内网穿透软件 4. 配置DataEase公网访问地址 5. 公网远程访问Data Ease 6. 固定Data Ease公网地址 结语 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊开源数据可视化分析工…

element的form表单校验(身份证号、手机号、整数、汉字、for循环列表)

<template><div class"FormPage"><el-form ref"form" :model"form" :rules"rules" label-width"100px"><el-form-item label"姓名:" prop"name"><el-input v-model"fo…

25道RabbitMQ面试题含答案(很全)

1. 什么是RabbitMQ RabbitMQ是一个开源的消息队列系统&#xff0c;它使用AMQP&#xff08;高级消息队列协议&#xff09;标准。RabbitMQ的主要目标是提供可靠的消息传递&#xff0c;确保消息的可靠性和顺序性&#xff0c;同时提供灵活的路由和消息确认机制。 RabbitMQ基于AMQ…

Unity坦克大战开发全流程——游戏场景——游戏界面——设置界面复用

游戏场景——游戏界面——设置界面复用 先将开始场景当中的设置面板复制过来 由于设置面板挂载的脚本都是相同的&#xff0c;在BeginScene中关闭设置面板时不会报空&#xff0c;而在GameScene中关闭设置面板时却会报空&#xff0c;这是因为监听事件中的单例模式调用的实例是Beg…

基于机器视觉的害虫种类及计数检测研究-人工智能项目-附代码

概述 农业与民生和经济发展息息相关&#xff0c;对农业发展科学化的关注既是民生需求&#xff0c; 也是经济稳步发展的迫切需求。病虫害是影响农作物生长的重要因素&#xff0c;对农作物的产量和品质都能造成无法估计的损害。 - 针对目前广大农业产区农业植保人员稀缺、病虫害…

爬虫基础一(持续更新)

爬虫概念&#xff1a; 通过编写程序&#xff0c;模拟浏览器上网&#xff0c;然后让其去互联网上抓取数据的过程 分类&#xff1a; 1&#xff0c;通用爬虫&#xff1a;抓取一整张页面数据 2&#xff0c;聚焦爬虫&#xff1a;抓取页面中的局部内容 3&#xff0c;增量式爬虫&…

【UnityShader入门精要学习笔记】(2)GPU流水线

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 上节复习GPU流水线顶点着色…

Linux操作系统极速入门[常用指令]

linux概述&#xff1a; Linux是一套免费使用和自由传播的操作系统 我们为什么要学&#xff0c;Linux&#xff1f; 主流操作系统&#xff1a; linux系统版本&#xff1a; 内核版&#xff1a; 由linux核心团队开发&#xff0c;维护 免费&#xff0c;开源 负责控制硬件 发行版&…

红队攻防实战之DC2

吾愿效法古圣先贤&#xff0c;使成千上万的巧儿都能在21世纪的中华盛世里&#xff0c;丰衣足食&#xff0c;怡然自得 0x01 信息收集: 1.1 端口探测 使用nmap工具 可以发现开放了80端口&#xff0c;网页服务器但是可以看出做了域名解析&#xff0c;所以需要在本地完成本地域名…

RISC Zero的Babybear域 及其 扩域

1. 引言 前序博客见&#xff1a; 有限域的Fast Multiplication和Modular Reduction算法实现 代码实现见&#xff1a; https://github.com/risc0/risc0/blob/main/risc0/core/src/field/baby_bear.rshttps://github.com/risc0/risc0/tree/main/risc0/circuit/rv32im-sys/cxx…

Prometheus+Grafana(详细讲解)

Prometheus(普罗米修斯&#xff09;监控系统 1、Prometheus概述 1.1 任务背景 某公司由于业务快速发展&#xff0c;公司要求对现有机器进行业务监控&#xff0c;责成运维部门来实施这个任务。任务要求如下&#xff1a; 部署监控服务器&#xff0c;实现7x24实时监控 针对公司…

4~20mA恒流源 --PLC自控控制

输出部分不接地 1.1&#xff0c; 常规恒流源的方式 用采样电阻 * 电流 控制电压的方式。 负载电阻 * 电流 < 工作电压 1.2&#xff0c;根据运放高阻的特性 Ir Ui/ R, Ir IL, 最大输出电流限制于 RL * Il < Ui. 输出部分接地&#xff0c;工程上更多是用于豪兰德恒流源…

京东高级Java面试真题

今年IT寒冬&#xff0c;大厂都裁员或者准备裁员&#xff0c;作为开猿节流主要目标之一&#xff0c;我们更应该时刻保持竞争力。为了抱团取暖&#xff0c;林老师开通了《知识星球》&#xff0c;并邀请我阿里、快手、腾讯等的朋友加入&#xff0c;分享八股文、项目经验、管理经验…

MIT_线性代数笔记:第 22 讲 对角化和矩阵的幂

目录 对角化矩阵 Diagonalizing a matrix S−1AS Λ矩阵的幂 Powers of A重特征值 Repeated eigenvalues差分方程 Difference equations u k 1 u_{k1} uk1​A u k u_k uk​斐波那契数列 Fibonacci sequence 本讲中将学习如何对角化含有 n 个线性无关特征向量的矩阵&#xff…

HarmonyOS 路由传参

本文 我们来说两个page界面间的数据传递 路由跳转 router.pushUrl 之前我们用了不少了 但是我们只用了它的第一个参数 url 其实他还有个params参数 我们第一个组件可以编写代码如下 import router from ohos.router Entry Component struct Index {build() {Row() {Column() …

低功耗蓝牙模块:促进智慧城市发展的关键技术

在科技快速发展的时代&#xff0c;智慧城市的概念正引领着城市管理的革新。为实现城市更高效、可持续和智能化的管理&#xff0c;低功耗蓝牙模块成为推动智慧城市发展的关键技术之一。本文将探讨低功耗蓝牙模块在智慧城市中的作用&#xff0c;以及其在城市基础设施、公共服务等…

HackTheBox - Medium - Linux - Interface

Interface Interface 是一种中等难度的 Linux 机器&#xff0c;具有“DomPDF”API 端点&#xff0c;该端点通过将“CSS”注入处理后的数据而容易受到远程命令执行的影响。“DomPDF”可以被诱骗在其字体缓存中存储带有“PHP”文件扩展名的恶意字体&#xff0c;然后可以通过从其…

Python序列之字典

系列文章目录 Python序列之列表Python序列之元组Python序列之字典&#xff08;本篇文章&#xff09;Python序列之集合 Python序列之字典 系列文章目录前言一、字典是什么&#xff1f;二、字典的操作1.创建&#xff08;1&#xff09;通过{}、dict()创建&#xff08;2&#xff0…

TDD-LTE TAU流程

目录 1. TAU成功流程 1.1 空闲态TAU 1.2 连接态TAU 2. TAU失败流程 当UE进入一个小区&#xff0c;该小区所属TAI不在UE保存的TAI list内时&#xff0c;UE发起正常TAU流程&#xff0c;分为IDLE和CONNECTED&#xff08;即切换时&#xff09;下。如果TAU accept分配了一个新的…

AI绘图之风景画

这一段时间AI画图比较火&#xff0c;笔者也尝试了一些工具&#xff0c;在使用的过程中发现midjourney比较适合小白&#xff0c;而且画的画比较符合要求。质量也高。当然AI时代的来临大家也不要太慌&#xff0c;毕竟人才是最重要的&#xff0c;AI还是要靠人输入内容才可以生成内…