# Welcome to use `TikTokDownloader_PyWebIO` (TikTok Online Downloader)

ReadMe Language:  [[English](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/README-EN.md)]  [[简体中文](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/README.md)]

> Note: Words "TikTok" in this readme file mentioned stands for  the Chinese version of TikTok.
AKA [[Douyin](https://www.douyin.com/)] or [[抖音](https://www.douyin.com/)] , The US version of TikTok will be supported soon! (no gallery analysis function)

## 👻 Introduce

🚀Demo: [https://en.douyin.wtf](https://en.douyin.wtf)

🛰API demo: [https://en.douyin.wtf/api?url=https://v.douyin.com/R9bQKx4/](https://en.douyin.wtf/api?url=https://v.douyin.com/R9bQKx4/)

This project uses [PyWebIO](https://github.com/pywebio/PyWebIO), [Requests](https://github.com/psf/requests), [Flask ](https://github.com/pallets/flask) as Python libraries to download TikTok's videos/gallery without watermark.

It can be used to download videos/gallery that the author has forbidden to download. At the same time, it can be used with [iOS shortcut APP ](https://apps.apple.com/us/app/shortcuts/id915249334)to cooperate with this project's API to realize internal download.

## 💯Achieved functions:

- Video/gallery analysis

- Support batch analysis

- Open API

- Deploy this project to the online server

---

## 🤦‍♂️Follow-up function:

- [ ] Realize the application with the [iOS shortcut APP](https://apps.apple.com/us/app/shortcuts/id915249334) (lazy, please write in personal help)

- [ ] Add support for the US version of TikTok (no gallery analysis function)

---

## 🧭How to use:

- Install dependent libraries:

```text
pip install -r requirements.txt
```

- Run TikTok.py

```text
python3 TikTok.py
```

- Home Page path:

```text
http://localhost(Server IP):80/
```

## 🗺️Supported submission format：

- Shared words

```text
Example：8.79 vSy:/ %壁纸 %炫酷壁纸 %图集 每一张都是精选  https://v.douyin.com/RH7Gvmr/复淛佌lian接，打开Dou音搜索，直接观kan视频！
```

- Short links

```text
Example：https://v.douyin.com/RHnWEng/
```

- Normal links

```text
Example：
https://www.douyin.com/video/6997729432244866341&previous_page=video_detail
```

- Bulk URLs (no need to use match separation)

```text
Example：
1.20 rEu:/ ~猫跟你都想了解  https://v.douyin.com/RCjCE1D/ 复制此链接，打开Dou音搜索，直接观看视频！
5.17 dnq:/ 《黑猫警长》吃猫鼠也太强了，不仅把猫当食物，连鳄鱼也害怕它!  https://v.douyin.com/RCjVQwh/ 复制此链接，打开Dou音搜索，直接观看视频！
8.43 and:/ 一家人不听道士的劝，搬进了鬼别墅，诡异的事情接连发生 %%恐怖  %%热门  %%电影解说   https://v.douyin.com/RCj5pyh/ 复制此链接，打开Dou音搜索，直接观看视频！
3.84 FHI:/ 晚上好，蹦迪人，蹦迪魂，蹦迪都是人上人 能蹦几分是几分%%小姐姐蹦迪 %%美不美看大腿 @DOU+小助手  https://v.douyin.com/RCjqkow/ 复制此链接，打开Dou音搜索，直接观看视频！
6.61 mQk:/ biu～%%爱心发射 %%日常%%宿舍%%变妆  https://v.douyin.com/RCj7VV9/ 复制此链接，打开Dou音搜索，直接观看视频！
4.12 vse:/ 更该被人看到的古城超级英雄%%超级英雄无缝转场 %%复仇者联盟  https://v.douyin.com/RCjGAjG/ 复制此链接，打开Dou音搜索，直接观看视频！

```

## 🛰️API usage

The API can convert the request parameters into a non-watermarked video/picture direct link that needs to be extracted, and can be used with IOS shortcuts to achieve in-app download.

- Request parameter

```text
http://localhost(Server IP):80/api?url="Supported submission format"
```

- Response parameters

> Videos

```json
{
"Type": "video",
"video_author": "花花花菜",
"video_author_id": "Wobukunxixi",
"video_music": "https://sf3-cdn-tos.douyinstatic.com/obj/ies-music/6906830659719383822.mp3",
"video_title": "~猫跟你都想了解",
"video_url": "https://v3-dy-o.zjcdn.com/93e3a68e365ae83f4ce2b2bb9c253489/6191c9c3/video/tos/cn/tos-cn-ve-15/083012c589c842e69f5267803eb8e3a5/?a=1128&br=2262&bt=2262&cd=0%7C0%7C0&ch=96&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=StecAhgM6BMM8b8NDtPDWodpeaQ&l=202111150945070102121380392D1AC2F5&lr=all&mime_type=video_mp4&net=0&pl=0&qs=0&rc=ajh5aTRseW95eTMzNGkzM0ApNjk1OTU6OWVlN2Q7ODo0N2cpaHV2fWVuZDFwekBvbTJjMDVrbmBfLS1eLS9zczRhXi9iLmFgYGBfLy1iLi46Y29zYlxmK2BtYmJeYA%3D%3D&vl=&vr="
}
```

> Images

```json
{
"Type": "image",
"image_author": "三石壁纸(收徒)",
"image_author_id": "782972562",
"image_music": "https://sf6-cdn-tos.douyinstatic.com/obj/tos-cn-ve-2774/635efafc32694ffbb73fbe60eca4a99d",
"image_title": "#壁纸 #炫酷壁纸 #图集 每一张都是精选",
"image_url": [
"https://p3-sign.douyinpic.com/tos-cn-i-0813/4af91199ca154074a8a5a63c3c749c6f~noop.webp?x-expires=1639530000&x-signature=P446eJEt2yuyhf2yb58Be29UpBA%3D&from=4257465056&s=PackSourceEnum_DOUYIN_REFLOW&se=false&sh=&sc=&l=202111150954330102120702320620C75E&biz_tag=aweme_images"
]
}
```

## 🎉Screenshots

- Main

![](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/Screenshots/home_en.png)

---

- Parsing is complete

>  Single result

![](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/Screenshots/single_result_en.png)

---

> Multiple results

![](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/Screenshots/multi_results_en.png)

---

- API request/response

> Video response

![](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/Screenshots/api_video_result.png)

> Gallery response

![](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/Screenshots/api_image_result.png)

