Evil0ctal / Douyin_TikTok_Download_API

🚀「Douyin_TikTok_Download_API」是一个开箱即用的高性能异步抖音、快手、TikTok、Bilibili数据爬取工具,支持API调用,在线批量解析及下载。
https://douyin.wtf
Apache License 2.0
8.82k stars 1.38k forks source link
api asgi async asyncio crawler douyin douyin-scraper douyin-tiktok-api douyin-tiktok-download fastapi httpx no-watermark online-parsing python pywebio scraper spider tiktok tiktok-scraper web-scraping

Douyin_TikTok_Download_API(抖音/TikTok API)

[English](./README.en.md) | [简体中文](./README.md) 🚀「Douyin_TikTok_Download_API」是一个开箱即用的高性能异步[抖音](https://www.douyin.com)|[TikTok](https://www.tiktok.com)|[Bilibili](https://www.bilibili.com)数据爬取工具,支持API调用,在线批量解析及下载。 [![GitHub license](https://img.shields.io/github/license/Evil0ctal/Douyin_TikTok_Download_API?style=flat-square)](LICENSE) [![Release Version](https://img.shields.io/github/v/release/Evil0ctal/Douyin_TikTok_Download_API?style=flat-square)](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/releases/latest) [![GitHub Star](https://img.shields.io/github/stars/Evil0ctal/Douyin_TikTok_Download_API?style=flat-square)](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/stargazers) [![GitHub Fork](https://img.shields.io/github/forks/Evil0ctal/Douyin_TikTok_Download_API?style=flat-square)](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/network/members) [![GitHub issues](https://img.shields.io/github/issues/Evil0ctal/Douyin_TikTok_Download_API?style=flat-square)](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/issues) [![GitHub closed issues](https://img.shields.io/github/issues-closed/Evil0ctal/Douyin_TikTok_Download_API?style=flat-square)](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/issues?q=is%3Aissue+is%3Aclosed) ![GitHub Repo size](https://img.shields.io/github/repo-size/Evil0ctal/Douyin_TikTok_Download_API?style=flat-square&color=3cb371)
[![PyPI v](https://img.shields.io/pypi/v/douyin-tiktok-scraper?style=flat-square&color=%23a8e6cf)](https://pypi.org/project/douyin-tiktok-scraper/) [![PyPI wheel](https://img.shields.io/pypi/wheel/douyin-tiktok-scraper?style=flat-square&color=%23dcedc1)](https://pypi.org/project/douyin-tiktok-scraper/#files) [![PyPI dm](https://img.shields.io/pypi/dm/douyin-tiktok-scraper?style=flat-square&color=%23ffd3b6)](https://pypi.org/project/douyin-tiktok-scraper/) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/douyin-tiktok-scraper?color=%23ffaaa5&style=flat-square)](https://pypi.org/project/douyin-tiktok-scraper/)
[![API status](https://img.shields.io/website?down_color=lightgrey&label=API%20Status&down_message=API%20offline&style=flat-square&up_color=%23dfb9ff&up_message=online&url=https%3A%2F%2Fapi.douyin.wtf%2Fdocs)](https://api.douyin.wtf/docs) [![TikHub-API status](https://img.shields.io/website?down_color=lightgrey&label=TikHub-API%20Status&down_message=API%20offline&style=flat-square&up_color=%23dfb9ff&up_message=online&url=https%3A%2F%2Fapi.tikhub.io%2Fdocs)](https://api.tikhub.io/docs)
[![爱发电](https://img.shields.io/badge/爱发电-evil0ctal-blue.svg?style=flat-square&color=ea4aaa&logo=github-sponsors)](https://afdian.net/@evil0ctal) [![Kofi](https://img.shields.io/badge/Kofi-evil0ctal-orange.svg?style=flat-square&logo=kofi)](https://ko-fi.com/evil0ctal) [![Patreon](https://img.shields.io/badge/Patreon-evil0ctal-red.svg?style=flat-square&logo=patreon)](https://www.patreon.com/evil0ctal)

赞助商

这些赞助商已付费放置在这里,Douyin_TikTok_Download_API 项目将永远免费且开源。如果您希望成为该项目的赞助商,请查看我的 GitHub 赞助商页面



TikHub.io API Marketplace
TikHub.io API: is the leading API provider for scraping Douyin, Xiaohongshu, TikTok, Instagram, Youtube, and more.
Trusted by the major influencer marketing and social media listening platforms.

TikTok Captcha Solver TikTok Captcha Solver TikTok Captcha Solver TikTok Captcha Solver
TikTok Captcha Solver: Bypass any TikTok captcha in just two lines of code.
Scale your TikTok automation and get unblocked with SadCaptcha.

👻介绍

🚨如需使用私有服务器运行本项目,请参考:部署准备工作, Docker部署, 一键部署

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

一些简单的运用场景:

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

🔊 V4 版本备注

🔖TikHub.io API

TikHub.io是一个API平台,提供包括Douyin、TikTok在内的各种公开数据接口,如果您想支持 Douyin_TikTok_Download_API 项目的开发,我们强烈建议您选择TikHub.io

特点:

📦 开箱即用

简化使用流程,利用封装好的SDK迅速开展开发工作。所有API接口均依据RESTful架构设计,并使用OpenAPI规范进行描述和文档化,附带示例参数,确保调用更加简便。

💰 成本优势

不预设套餐限制,没有月度使用门槛,所有消费按实际使用量即时计费,并且根据用户每日的请求量进行阶梯式计费,同时可以通过每日签到在用户后台进行签到获取免费的额度,并且这些免费额度不会过期。

⚡️ 快速支持

我们有一个庞大的Discord社区服务器,管理员和其他用户会在服务器中快速的回复你,帮助你快速解决当前的问题。

🎉 拥抱开源

TikHub的部分源代码会开源在Github上,并且会赞助一些开源项目的作者。

链接:

🖥演示站点: 我很脆弱...请勿压测(·•᷄ࡇ•᷅ )

😾演示站点的在线下载功能已关闭,并且由于Cookie原因,Douyin的解析以及API服务在Demo站点无法保证可用性。

🍔Web APP: https://douyin.wtf/

🍟API Document: https://douyin.wtf/docs

🌭TikHub API Document: https://api.tikhub.io/docs

💾iOS Shortcut(快捷指令): Shortcut release

📦️桌面端下载器(仓库推荐):

⚗️技术栈

/crawlers

/app/api

/app/web

以上文件的参数大多可在对应的config.yaml中进行修改

💡项目文件结构

./Douyin_TikTok_Download_API
├─app
│  ├─api
│  │  ├─endpoints
│  │  └─models
│  ├─download
│  └─web
│      └─views
└─crawlers
  ├─bilibili
  │  └─web  
  ├─douyin
  │  └─web
  ├─hybrid
  ├─tiktok
  │  ├─app
  │  └─web
  └─utils

✨支持功能:

📦调用解析库(已废弃需要更新):

💡PyPi:https://pypi.org/project/douyin-tiktok-scraper/

安装解析库:pip install douyin-tiktok-scraper

import asyncio
from douyin_tiktok_scraper.scraper import Scraper

api = Scraper()

async def hybrid_parsing(url: str) -> dict:
    # Hybrid parsing(Douyin/TikTok URL)
    result = await api.hybrid_parsing(url)
    print(f"The hybrid parsing result:\n {result}")
    return result

asyncio.run(hybrid_parsing(url=input("Paste Douyin/TikTok/Bilibili share URL here: ")))

🗺️支持的提交格式:

💡提示:包含但不仅限于以下例子,如果遇到链接解析失败请开启一个新 issue

7.43 pda:/ 让你在几秒钟之内记住我  https://v.douyin.com/L5pbfdP/ 复制此链接,打开Dou音搜索,直接观看视频!
https://v.douyin.com/L4FJNR3/
https://www.douyin.com/video/6914948781100338440
https://www.douyin.com/discover?modal_id=7069543727328398622
https://www.tiktok.com/t/ZTR9nDNWq/
https://www.tiktok.com/@evil0ctal/video/7156033831819037994
https://v.douyin.com/L4NpDJ6/
https://www.douyin.com/video/7126745726494821640
2.84 nqe:/ 骑白马的也可以是公主%%百万转场变身https://v.douyin.com/L4FJNR3/ 复制此链接,打开Dou音搜索,直接观看视频!
https://www.tiktok.com/t/ZTR9nkkmL/
https://www.tiktok.com/t/ZTR9nDNWq/
https://www.tiktok.com/@evil0ctal/video/7156033831819037994

🛰️API文档

API文档:

本地:http://localhost/docs

在线:https://api.douyin.wtf/docs

API演示:

更多演示请查看文档内容......

⚠️部署前的准备工作(请仔细阅读):

💻部署(方式一 Linux)

💡提示:最好将本项目部署至美国地区的服务器,否则可能会出现奇怪的BUG。

推荐大家使用Digitalocean的服务器,因为可以白嫖。

使用我的邀请链接注册,你可以获得$200的credit,当你在上面消费$25时,我也可以获得$25的奖励。

我的邀请链接:

https://m.do.co/c/9f72a27dec35

使用脚本一键部署本项目

wget -O install.sh https://raw.githubusercontent.com/Evil0ctal/Douyin_TikTok_Download_API/main/bash/install.sh && sudo bash install.sh

开启/停止服务

开启/关闭开机自动运行

更新项目

💽部署(方式二 Docker)

💡提示:Docker部署是最简单的部署方式,适合不熟悉Linux的用户,这种方法适合保证环境一致性、隔离性和快速设置。 请使用能正常访问Douyin或TikTok的服务器,否则可能会出现奇怪的BUG。

准备工作

开始之前,请确保您的系统已安装Docker。如果还未安装Docker,可以从Docker官方网站下载并安装。

步骤1:拉取Docker镜像

首先,从Docker Hub拉取最新的Douyin_TikTok_Download_API镜像。

docker pull evil0ctal/douyin_tiktok_download_api:latest

如果需要,可以替换latest为你需要部署的具体版本标签。

步骤2:运行Docker容器

拉取镜像后,您可以从此镜像启动一个容器。以下是运行容器的命令,包括基本配置:

docker run -d --name douyin_tiktok_api -p 80:80 evil0ctal/douyin_tiktok_download_api

这个命令的每个部分作用如下:

步骤3:验证容器是否运行

使用以下命令检查您的容器是否正在运行:

docker ps

这将列出所有活动容器。查找douyin_tiktok_api以确认其正常运行。

步骤4:访问应用程序

容器运行后,您应该能够通过http://localhost或API客户端访问Douyin_TikTok_Download_API。如果配置了不同的端口或从远程位置访问,请调整URL。

可选:自定义Docker命令

对于更高级的部署,您可能希望自定义Docker命令,包括环境变量、持久数据的卷挂载或其他Docker参数。这是一个示例:

docker run -d --name douyin_tiktok_api -p 80:80 \
  -v /path/to/your/data:/data \
  -e MY_ENV_VAR=my_value \
  evil0ctal/douyin_tiktok_download_api

配置文件修改

项目的大部分配置可以在以下几个目录中的config.yaml文件进行修改:

步骤5:停止并移除容器

需要停止和移除容器时,使用以下命令:

# Stop
docker stop douyin_tiktok_api 

# Remove
docker rm douyin_tiktok_api

📸截图

API速度测试(对比官方API)

🔎点击展开截图 抖音官方API: ![](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/Screenshots/benchmarks/Douyin_API.png?raw=true) 本项目API: ![](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/Screenshots/benchmarks/Douyin_API_Douyin_wtf.png?raw=true) TikTok官方API: ![](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/Screenshots/benchmarks/TikTok_API.png?raw=true) 本项目API: ![](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/Screenshots/benchmarks/TikTok_API_Douyin_wtf.png?raw=true)

项目界面

🔎点击展开截图 Web主界面: ![](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/Screenshots/v3_screenshots/Home.png?raw=true) Web main interface: ![](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/Screenshots/v3_screenshots/Home_en.png?raw=true)

📜 Star历史

Star History Chart

Apache-2.0 license

Start: 2021/11/06

GitHub: @Evil0ctal