Douyin_TikTok_Download_API(抖音/TikTok API)
🚀"Douyin_TikTok_Download_API" is a high-performance asynchronous API that can be used out of the boxTik Tok|TikTok|BilibiliData crawling tool supports API calling, online batch analysis and downloading.
🔊 V4.0.0 version refactoring
ALL:
- Removed outdated bilibili code and needs someone to rewrite it.
- Someone in the group wants to add the analysis of Kuaishou and Xigua videos.
- The readme is outdated and needs to be rewritten.
- Make PyPi package
- The config.yaml file needs to be trimmed.
- Add parsing of user homepage.
- iOS shortcuts need to be updated to be compatible with the latest API responses and paths.
- Desktop downloaders or browser plug-ins can be developed if necessary.
- Solve the problem of crawler cookie risk control.
Change
- Run Pywebio as a sub-APP of FastAPI.
- Rewritten the interfaces of Douyin and TikTok, thank you@johnserf-seed
- The file download endpoint has been rewritten and now uses asynchronous file IO.
- Annotations and demonstration values were added to all endpoints.
- Organize the project file structure.
Remark
If you are interested in writing this project together, please add us on WeChatEvil0ctal
Note: Github project reconstruction, everyone can communicate and learn from each other in the group. Advertising and illegal things are not allowed. It is purely for making friends and technical exchanges.
私有接口服务
Discord:Tikhub discord
Free Douyin/TikTok API:Tikhub Beta Opi
👻Introduction
🚨If you need to use a private server to run this project, please refer to the deployment method[Docker deployment,One-click deployment]
This project is based onPyWebIO,FastAPI,HTTPX, fast and asynchronousTik Tok/TikTokData crawling tool, and realizes online batch parsing and downloading of videos or photo albums without watermarks, data crawling API, iOS shortcut commands without watermark downloads through the Web, etc. You can deploy or modify this project yourself to achieve more functions, or you can call it directly in your projectscraper.pyor install an existingpip packageAs a parsing library, it is easy to crawl data, etc.....
Some simple application scenarios:
Download prohibited videos, perform data analysis, download without watermark on iOS (withShortcut command APP that comes with iOSCooperate with the API of this project to achieve in-app downloads or read clipboard downloads), etc.....
⚠️Note:
- You need to solve crawler cookie risk control issues by yourself, otherwise the interface may become unusable.
- Douyin web cookie (obtain and replace the cookie in the configuration file below):
- https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/30e56e5a7f97f87d60b1045befb1f6db147f8590/crawlers/douyin/web/config.yaml#L7
- TikTok web-side cookies (obtain and replace the cookies in the configuration file below):
- https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/30e56e5a7f97f87d60b1045befb1f6db147f8590/crawlers/tiktok/web/config.yaml#L6
- I turned off the online download function of the demo site. The video someone downloaded was so huge that it crashed my server. I just right-clicked on the web page parsing result and saved it...
- The cookies of the demo site are my own and are not guaranteed to be valid for a long time. They only serve as a demonstration. If you deploy it yourself, please obtain the cookies yourself.
🖥Demo site: I am very vulnerable...please do not stress test (·•᷄ࡇ•᷅ )
😾The online download function of the demo site is closed.
🍔Web APP:https://douyin.wtf/
🍟API Document:https://douyin.wtf/docs
🌭TikHub API Document:https://api.tikhub.io/docs
💾iOS Shortcut (shortcut command):Shortcut release
📦️Desktop downloader (recommended by warehouse):
⚗️Technology stack
/crawlers
- Submit requests to APIs on different platforms and retrieve data. After processing, a dictionary (dict) is returned, and asynchronous support is supported.
/app/api
- Get request parameters and use
Crawlers
The related classes process the data and return it in JSON form, download the video, and cooperate with iOS shortcut commands to achieve fast calling and support asynchronous.
/app/web
- use
PyWebIO
A simple web program created to process the values entered on the web page and then use themCrawlers
The related class processing interface outputs related data on the web page.
Most of the parameters of the above files can be found in the correspondingconfig.yaml
Modify in
💡Project file structure
./Douyin_TikTok_Download_API
├─app
│ ├─api
│ │ ├─endpoints
│ │ └─models
│ ├─download
│ └─web
│ └─views
└─crawlers
├─douyin
│ └─web
├─hybrid
├─tiktok
│ ├─app
│ └─web
└─utils
✨Supported functions:
-
网页端批量解析(支持抖音/TikTok混合解析)
-
Download videos or photo albums online.
-
makepip packageConveniently and quickly import your projects
-
iOS shortcut commands to quickly call APIAchieve in-app download of watermark-free videos/photo albums
-
Complete API documentation (Demo/Demonstration)
-
Rich API interface:
-
Douyin web version API
- Video data analysis
- Get user homepage work data
- Obtain the data of works liked by the user's homepage
- Obtain the data of collected works on the user's homepage
- Get user homepage information
- Get user collection work data
- Get user live stream data
- Get the live streaming data of a specified user
- Get the ranking of users who give gifts in the live broadcast room
- Get single video comment data
- Get the comment reply data of the specified video
- Generate msToken
- Generate verify_fp
- Generate s_v_web_id
- Generate X-Bogus parameters using interface URL
- Extract a single user id
- Extract list user id
- Extract a single work id
- Extract list work id
- Extract live broadcast room number from list
- Extract live broadcast room number from list
-
TikTok web version API
- Video data analysis
- Get user homepage work data
- Obtain the data of works liked by the user's homepage
- Get user homepage information
- Get fan data on user homepage
- Get user homepage follow data
- Get user homepage collection work data
- Get user homepage collection data
- Get user homepage playlist data
- Get single video comment data
- Get the comment reply data of the specified video
- Generate msToken
- Generate ttwid
- Generate X-Bogus parameters using interface URL
- Extract a single user sec_user_id
- Extract list user sec_user_id
- Extract a single work id
- Extract list work id
- Get user unique_id
- Get list unique_id
-
📦Call the parsing library (obsolete and needs to be updated):
Install the parsing library: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: ")))
🗺️Supported submission formats:
💡Tip: Including but not limited to the following examples. If you encounter link parsing failure, please open a new one.issue
- Douyin sharing password (copy in APP)
7.43 pda:/ 让你在几秒钟之内记住我 https://v.douyin.com/L5pbfdP/ 复制此链接,打开Dou音搜索,直接观看视频!
- Douyin short URL (copy within APP)
https://v.douyin.com/L4FJNR3/
- Douyin normal URL (copy from web version)
https://www.douyin.com/video/6914948781100338440
- Douyin discovery page URL (APP copy)
https://www.douyin.com/discover?modal_id=7069543727328398622
- TikTok short URL (copy within APP)
https://www.tiktok.com/t/ZTR9nDNWq/
- TikTok normal URL (copy from web version)
https://www.tiktok.com/@evil0ctal/video/7156033831819037994
- Douyin/TikTok batch URL (no need to use matching separation)
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 documentation
API documentation:
local:http://localhost/docs
Online:https://api.douyin.wtf/docs
API demo:
- Crawl video data (TikTok or Douyin hybrid analysis)
https://api.douyin.wtf/api/hybrid/video_data?url=[视频链接/Video URL]&minimal=false
- Download videos/photo albums (TikTok or Douyin hybrid analysis)
https://api.douyin.wtf/api/download?url=[视频链接/Video URL]&prefix=true&with_watermark=false
For more demonstrations, please see the documentation...
💻Deployment (Method 1 Linux)
💡Tips: It is best to deploy this project to a server in the United States, otherwise strange BUGs may occur.
Recommended for everyone to useDigitaloceanserver, because you can have sex for free.
Use my invitation link to sign up and you can get a $200 credit, and when you spend $25 on it, I can also get a $25 reward.
My invitation link:
https://m.do.co/c/9f72a27dec35
Use script to deploy this project with one click
-
This project provides a one-click deployment script that can quickly deploy this project on the server.
-
The script was tested on Ubuntu 20.04 LTS. Other systems may have problems. If there are any problems, please solve them yourself.
-
Download using wget commandinstall.shto the server and run
wget -O install.sh https://raw.githubusercontent.com/Evil0ctal/Douyin_TikTok_Download_API/main/bash/install.sh && sudo bash install.sh
Start/stop service
- Use the following commands to control running or stopping the service:
sudo systemctl start Douyin_TikTok_Download_API.service
sudo systemctl stop Douyin_TikTok_Download_API.service
Turn on/off automatic operation at startup
- Use the following commands to set the service to run automatically at boot or cancel automatic run at boot:
sudo systemctl enable Douyin_TikTok_Download_API.service
sudo systemctl disable Douyin_TikTok_Download_API.service
Update project
- When the project is updated, ensure that the update script is executed in the virtual environment and all dependencies are updated. Enter the project bash directory and run update.sh:
cd /www/wwwroot/Douyin_TikTok_Download_API/bash && sudo bash update.sh
💽Deployment (Method 2 Docker)
💡Tip: Docker deployment is the simplest deployment method and is suitable for users who are not familiar with Linux. This method is suitable for ensuring environment consistency, isolation and quick setup. Please use a server that can normally access Douyin or TikTok, otherwise strange BUG may occur.
Preparation
Before you begin, make sure Docker is installed on your system. If you haven't installed Docker yet, you can install it fromDocker official websiteDownload and install.
Step 1: Pull the Docker image
First, pull the latest Douyin_TikTok_Download_API image from Docker Hub.
docker pull evil0ctal/douyin_tiktok_download_api:latest
Can be replaced if neededlatest
Label the specific version you need to deploy.
Step 2: Run the Docker container
After pulling the image, you can start a container from this image. Here are the commands to run the container, including basic configuration:
docker run -d --name douyin_tiktok_api -p 80:80 evil0ctal/douyin_tiktok_download_api
Each part of this command does the following:
-d
: Run the container in the background (detached mode).--name douyin_tiktok_api
: Name the containerdouyin_tiktok_api
。-p 80:80
: Map port 80 on the host to port 80 of the container. Adjust the port number based on your configuration or port availability.evil0ctal/douyin_tiktok_download_api
: The name of the Docker image to use.
步骤3:验证容器是否运行
Check if your container is running using the following command:
docker ps
This will list all active containers. Finddouyin_tiktok_api
to confirm that it is functioning properly.
Step 4: Access the App
Once the container is running, you should be able to passhttp://localhost
Or API client access Douyin_TikTok_Download_API. Adjust the URL if a different port is configured or accessed from a remote location.
Optional: Custom Docker commands
For more advanced deployments, you may wish to customize Docker commands to include environment variables, volume mounts for persistent data, or other Docker parameters. Here is an example:
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
-v /path/to/your/data:/data
: Change the/path/to/your/data
Directory mounted to the container/data
Directory for persisting or sharing data.-e MY_ENV_VAR=my_value
: Set environment variables within the containerMY_ENV_VAR
, whose value ismy_value
。
Configuration file modification
Most of the project configuration can be found in the following directories:config.yaml
File modification:
/crawlers/douyin/web/config.yaml
/crawlers/tiktok/web/config.yaml
/crawlers/tiktok/app/config.yaml
Step 5: Stop and remove the container
When you need to stop and remove containers, use the following commands:
# Stop
docker stop douyin_tiktok_api
# Remove
docker rm douyin_tiktok_api
📸Screenshot
API speed test (compared to official API)
Project interface
📜 Star History
Start: 2021/11/06
GitHub:@Evil0ctal