From 84c328ded9be8c9b8c6912a869aa947b150b8575 Mon Sep 17 00:00:00 2001 From: Evil0ctal Date: Sun, 25 Dec 2022 19:13:12 -0800 Subject: [PATCH] Move to new repo: Douyin_Tiktok_Scraper_PyPi https://github.com/Evil0ctal/Douyin_Tiktok_Scraper_PyPi --- PyPi/LICENSE | 21 - PyPi/README.md | 353 ----------- .../lib/douyin_tiktok_scraper/__init__.py | 0 .../lib/douyin_tiktok_scraper/scraper.py | 555 ------------------ PyPi/demos/demo.py | 31 - ...uyin_tiktok_scraper-1.0.0-py3-none-any.whl | Bin 14544 -> 0 bytes PyPi/dist/douyin_tiktok_scraper-1.0.0.tar.gz | Bin 20195 -> 0 bytes ...uyin_tiktok_scraper-1.0.1-py3-none-any.whl | Bin 14537 -> 0 bytes PyPi/dist/douyin_tiktok_scraper-1.0.1.tar.gz | Bin 20206 -> 0 bytes ...uyin_tiktok_scraper-1.0.2-py3-none-any.whl | Bin 14630 -> 0 bytes PyPi/dist/douyin_tiktok_scraper-1.0.2.tar.gz | Bin 20284 -> 0 bytes ...uyin_tiktok_scraper-1.0.3-py3-none-any.whl | Bin 14629 -> 0 bytes PyPi/dist/douyin_tiktok_scraper-1.0.3.tar.gz | Bin 20161 -> 0 bytes ...uyin_tiktok_scraper-1.0.4-py3-none-any.whl | Bin 14619 -> 0 bytes PyPi/dist/douyin_tiktok_scraper-1.0.4.tar.gz | Bin 20166 -> 0 bytes ...uyin_tiktok_scraper-1.0.5-py3-none-any.whl | Bin 14625 -> 0 bytes PyPi/dist/douyin_tiktok_scraper-1.0.5.tar.gz | Bin 20219 -> 0 bytes ...uyin_tiktok_scraper-1.0.6-py3-none-any.whl | Bin 14659 -> 0 bytes PyPi/dist/douyin_tiktok_scraper-1.0.6.tar.gz | Bin 20251 -> 0 bytes ...uyin_tiktok_scraper-1.0.7-py3-none-any.whl | Bin 14603 -> 0 bytes PyPi/dist/douyin_tiktok_scraper-1.0.7.tar.gz | Bin 20214 -> 0 bytes PyPi/douyin_tiktok_scraper.egg-info/PKG-INFO | 376 ------------ .../SOURCES.txt | 10 - .../dependency_links.txt | 1 - .../requires.txt | 3 - .../top_level.txt | 1 - PyPi/douyin_tiktok_scraper/__init__.py | 0 PyPi/douyin_tiktok_scraper/scraper.py | 555 ------------------ PyPi/setup.py | 42 -- 29 files changed, 1948 deletions(-) delete mode 100644 PyPi/LICENSE delete mode 100644 PyPi/README.md delete mode 100644 PyPi/build/lib/douyin_tiktok_scraper/__init__.py delete mode 100644 PyPi/build/lib/douyin_tiktok_scraper/scraper.py delete mode 100644 PyPi/demos/demo.py delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.0-py3-none-any.whl delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.0.tar.gz delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.1-py3-none-any.whl delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.1.tar.gz delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.2-py3-none-any.whl delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.2.tar.gz delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.3-py3-none-any.whl delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.3.tar.gz delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.4-py3-none-any.whl delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.4.tar.gz delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.5-py3-none-any.whl delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.5.tar.gz delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.6-py3-none-any.whl delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.6.tar.gz delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.7-py3-none-any.whl delete mode 100644 PyPi/dist/douyin_tiktok_scraper-1.0.7.tar.gz delete mode 100644 PyPi/douyin_tiktok_scraper.egg-info/PKG-INFO delete mode 100644 PyPi/douyin_tiktok_scraper.egg-info/SOURCES.txt delete mode 100644 PyPi/douyin_tiktok_scraper.egg-info/dependency_links.txt delete mode 100644 PyPi/douyin_tiktok_scraper.egg-info/requires.txt delete mode 100644 PyPi/douyin_tiktok_scraper.egg-info/top_level.txt delete mode 100644 PyPi/douyin_tiktok_scraper/__init__.py delete mode 100644 PyPi/douyin_tiktok_scraper/scraper.py delete mode 100644 PyPi/setup.py diff --git a/PyPi/LICENSE b/PyPi/LICENSE deleted file mode 100644 index fd91e63..0000000 --- a/PyPi/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Evil0ctal - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/PyPi/README.md b/PyPi/README.md deleted file mode 100644 index df9de30..0000000 --- a/PyPi/README.md +++ /dev/null @@ -1,353 +0,0 @@ -
- -
-

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)数据爬取工具,支持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-V1 status](https://img.shields.io/website?down_color=lightgrey&label=API-V1%20Status&down_message=API-V1%20offline&style=flat-square&up_color=%23dfb9ff&up_message=online&url=https%3A%2F%2Fapi.douyin.wtf%2Fdocs)](https://api.douyin.wtf/docs) -[![API-V2 status](https://img.shields.io/website?down_color=lightgrey&label=API-V2%20Status&down_message=API-V1%20offline&style=flat-square&up_color=%23dfb9ff&up_message=online&url=https%3A%2F%2Fapi-v2.douyin.wtf%2Fdocs)](https://api-v2.douyin.wtf/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) - -
- -## 👻介绍 - -> 🚨如需使用私有服务器运行本项目,请参考部署方式[[Docker部署](./README.md#%E9%83%A8%E7%BD%B2%E6%96%B9%E5%BC%8F%E4%BA%8C-docker), [手动部署](./README.md#%E9%83%A8%E7%BD%B2%E6%96%B9%E5%BC%8F%E4%B8%80-linux)] - -本项目是基于 [PyWebIO](https://github.com/pywebio/PyWebIO),[FastAPI](https://fastapi.tiangolo.com/),[AIOHTTP](https://docs.aiohttp.org/),快速异步的[抖音](https://www.douyin.com/)/[TikTok](https://www.tiktok.com/)数据爬取工具,并通过Web端实现在线批量解析以及下载无水印视频或图集,数据爬取API,iOS快捷指令无水印下载等功能。你可以自己部署或改造本项目实现更多功能,也可以在你的项目中直接调用[scraper.py](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/Stable/scraper.py)或安装现有的[pip包](https://pypi.org/project/douyin-tiktok-scraper/)作为解析库轻松爬取数据等..... - -*一些简单的运用场景:* - -*下载禁止下载的视频,进行数据分析,iOS无水印下载(搭配[iOS自带的快捷指令APP](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334) -配合本项目API实现应用内下载或读取剪贴板下载)等.....* - -## 🖥公共站点: 我很脆弱...请勿压测(·•᷄ࡇ•᷅ ) - -> **API-V2:** 支持输入`Douyin|TikTok`用户主页爬取该作者[主页视频数据(去水印链接, 已点赞视频列表(权限需为公开), 视频评论数据, 背景音乐视频列表数据, 等等...), 详细信息请查看V2文档, 服务器响应时间有时会变长, 使用时请将`timeout`值设高. - -🍔Web APP: [https://douyin.wtf/](https://douyin.wtf/) - -🍟API-V1: [https://api.douyin.wtf/docs](https://api.douyin.wtf/docs) - -🌭API-V2: [https://api-v2.douyin.wtf/docs](https://api-v2.douyin.wtf/docs) - -💾iOS Shortcut(快捷指令): [Shortcut release](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/discussions/104?sort=top) - -📦️桌面端下载器(仓库推荐): - -- [Tairraos/TikDown](https://github.com/Tairraos/TikDown/) -- [Johnserf-Seed/TikTokDownload](https://github.com/Johnserf-Seed/TikTokDownload) -- [HFrost0/bilix](https://github.com/HFrost0/bilix) - -## ⚗️技术栈 - -* [web_app.py](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/web_app.py) - [PyWebIO](https://www.pyweb.io/) -* [web_api.py](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/web_api.py) - [FastAPI](https://fastapi.tiangolo.com/) -* [scraper.py](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/scraper.py) - [AIOHTTP](https://docs.aiohttp.org/) - -> ***scraper.py:*** - -- 向[Douyin|TikTok]的API提交请求并取回数据,处理后返回字典(dict),支持异步。 - -> ***web_api.py:*** - -- 获得请求参数并使用`Scraper()`类处理数据后以JSON形式返回,视频下载,配合iOS快捷指令实现快速调用,支持异步。 - -> ***web_app.py:*** - -- 为`web_api.py`以及`scraper.py`制作的简易Web程序,将网页输入的值进行处理后使用`Scraper()`类处理并配合`web_api.py`的接口输出在网页上(类似前后端分离) - -***以上文件的参数大多可在[config.ini](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/config.ini)中进行修改*** - -## 💡项目文件结构 - -``` -. -└── Douyin_TikTok_Download_API/ - ├── /static -> (PyWebIO static resources) - ├── web_app.py -> (Web APP) - ├── web_api.py -> (API) - ├── scraper.py -> (Parsing library) - ├── config.ini -> (configuration file) -``` - -## ✨功能: - -- 抖音(抖音海外版: TikTok)视频/图片解析 -- 网页端批量解析(支持抖音/TikTok混合提交) -- 网页端解析结果页批量下载无水印视频(V3.0.0暂时移除,请自行部署V2.X版本) -- API调用获取链接数据 -- 制作[pip包](https://pypi.org/project/douyin-tiktok-scraper/)方便快速导入你的项目 -- [iOS快捷指令快速调用API](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334)实现应用内下载无水印视频/图集 -- 解析作者主页内所有视频([API-V2](https://api-v2.douyin.wtf/docs) 支持抖音/TikTok) -- 解析视频内所有评论信息([API-V2](https://api-v2.douyin.wtf/docs) 支持抖音/TikTok) - ---- - -## 🤦‍待办清单: - -> 💡欢迎提出新的建议或将你的思路在issue中与我分享,或直接提交PR至[Development分支](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/tree/Development) ♪(・ω・)ノ) - -- [ ] 编写一个桌面端的下载器实现本地批量下载 -- [ ] API-V2添加对hash_tag页面的数据爬取 [#101](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/issues/101) -- [ ] 对其他短视频平台添加支持,如:抖音火山版,快手,西瓜视频,哔哩哔哩 - ---- - -## 📦调用解析库: - -> 💡PyPi:[https://pypi.org/project/douyin-tiktok-scraper/](https://pypi.org/project/douyin-tiktok-scraper/) - -安装解析库:`pip install douyin-tiktok-scraper` - -```python -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 share URL here: "))) -``` - -## 🗺️支持的提交格式: - -> 💡提示:包含但不仅限于以下例子,如果遇到链接解析失败请开启一个新 [issue](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/issues) - -- 抖音分享口令 (APP内复制) - -```text -7.43 pda:/ 让你在几秒钟之内记住我 https://v.douyin.com/L5pbfdP/ 复制此链接,打开Dou音搜索,直接观看视频! -``` - -- 抖音短网址 (APP内复制) - -```text -https://v.douyin.com/L4FJNR3/ -``` - -- 抖音正常网址 (网页版复制) - -```text -https://www.douyin.com/video/6914948781100338440 -``` - -- 抖音发现页网址 (APP复制) - -```text -https://www.douyin.com/discover?modal_id=7069543727328398622 -``` - -- TikTok短网址 (APP内复制) - -```text -https://www.tiktok.com/t/ZTR9nDNWq/ -``` - -- TikTok正常网址 (网页版复制) - -```text -https://www.tiktok.com/@evil0ctal/video/7156033831819037994 -``` - -- 抖音/TikTok批量网址(无需使用符合隔开) - -```text -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文档 - -> 💡提示:也可以在web_api.py的代码注释中查看接口文档 - -***API-V1文档:*** -本地:[http://localhost:8000/docs](http://localhost:8000/docs) -在线:[https://api.douyin.wtf/docs](https://api.douyin.wtf/docs) - -***API-V2文档:*** -在线:[https://api-v2.douyin.wtf/docs](https://api-v2.douyin.wtf/docs) - -***API演示:*** - -- 爬取视频数据(TikTok或Douyin混合解析) - `https://api.douyin.wtf/api?url=[视频链接/Video URL]&minimal=false` -- 下载视频/图集(TikTok或Douyin混合解析) - `https://api.douyin.wtf/download?url=[视频链接/Video URL]&prefix=true&watermark=false` -- 替换域名下载视频/图集 - -``` -[抖音] -原始链接: -https://www.douyin.com/video/7159502929156705567 -替换域名: -https://api.douyin.wtf/video/7159502929156705567 -# 返回无水印视频下载响应 -[TikTok] -original link: -https://www.tiktok.com/@evil0ctal/video/7156033831819037994 -Replace Domain: -https://api.douyin.wtf/@evil0ctal/video/7156033831819037994 -# Return No Watermark Video Download Response -``` - -***更多演示请查看文档内容......*** - -## 💻部署(方式一 Linux) - -> 💡提示:最好将本项目部署至美国地区的服务器,否则可能会出现奇怪的BUG。 - -- 首先要去安全组开放8080(Web)和8000(API)端口。 -- 在宝塔面板应用商店内搜索`进程守护`或手动安装`supervisord`: - -``` -[宝塔面板] -https://www.bt.cn/new/download.html -[aapanel] -https://www.aapanel.com/new/download.html -[Supervisor] -http://supervisord.org/installing.html -``` - -- 配置项目[config.ini](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/config.ini)文件 -- 安装依赖文件`pip install -r requirements.txt` -- 设置`supervisord`守护进程 -- 启动命令: - -```console -[Web] -python3 web_app.py -[API] -python3 web_api.py -``` - -- 程序入口: - -```text -[Web] -http://localhost:8080 -[API] -http://localhost:8000 -``` - -## 💽部署(方式二 Docker) - -> 💡Docker Image repo: [Docker Hub](https://hub.docker.com/repository/docker/evil0ctal/douyin_tiktok_download_api) - -- 安装docker - -```yaml -curl -fsSL get.docker.com -o get-docker.sh&&sh get-docker.sh &&systemctl enable docker&&systemctl start docker -``` - -- 留下config.int和docker-compose.yml文件即可 -- 运行命令,让容器在后台运行 - -```yaml -docker compose up -d -``` - -- 查看容器日志 - -```yaml -docker logs -f douyin_tiktok_download_api -``` - -- 删除容器 - -```yaml -docker rm -f douyin_tiktok_download_api -``` - -- 更新 - -```yaml -docker compose pull && docker compose down && docker compose up -d -``` - -## ❤️ 贡献者 - -[![](https://github.com/Evil0ctal.png?size=50)](https://github.com/Evil0ctal) -[![](https://github.com/jw-star.png?size=50)](https://github.com/jw-star) -[![](https://github.com/Jeffrey-deng.png?size=50)](https://github.com/Jeffrey-deng) -[![](https://github.com/chris-ss.png?size=50)](https://github.com/chris-ss) -[![](https://github.com/weixuan00.png?size=50)](https://github.com/weixuan00) -[![](https://github.com/Tairraos.png?size=50)](https://github.com/Tairraos) - -## 📸截图 - -***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](https://api.star-history.com/svg?repos=Evil0ctal/Douyin_TikTok_Download_API&type=Timeline)](https://star-history.com/#Evil0ctal/Douyin_TikTok_Download_API&Timeline) - -[MIT License](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/Stable/LICENSE) - -> Start: 2021/11/06 -> GitHub: [@Evil0ctal](https://github.com/Evil0ctal) -> Contact: Evil0ctal1985@gmail.com - - diff --git a/PyPi/build/lib/douyin_tiktok_scraper/__init__.py b/PyPi/build/lib/douyin_tiktok_scraper/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/PyPi/build/lib/douyin_tiktok_scraper/scraper.py b/PyPi/build/lib/douyin_tiktok_scraper/scraper.py deleted file mode 100644 index bb7ccf0..0000000 --- a/PyPi/build/lib/douyin_tiktok_scraper/scraper.py +++ /dev/null @@ -1,555 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- -# @Author: https://github.com/Evil0ctal/ -# @Time: 2021/11/06 -# @Update: 2022/12/09 -# @Version: 3.1.5 -# @Function: -# 核心代码,估值1块(๑•̀ㅂ•́)و✧ -# 用于爬取Douyin/TikTok数据并以字典形式返回。 -# input link, output dictionary. - - -import re -import os -import random -import aiohttp -import platform -import asyncio -import orjson -import traceback -import configparser - -from typing import Union -from tenacity import * - - -class Scraper: - """ - 简介/Introduction - - Scraper.get_url(text: str) -> Union[str, None] - 用于检索出文本中的链接并返回/Used to retrieve the link in the text and return it. - - Scraper.convert_share_urls(self, url: str) -> Union[str, None]\n - 用于转换分享链接为原始链接/Convert share links to original links - - Scraper.get_douyin_video_id(self, original_url: str) -> Union[str, None]\n - 用于获取抖音视频ID/Get Douyin video ID - - Scraper.get_douyin_video_data(self, video_id: str) -> Union[dict, None]\n - 用于获取抖音视频数据/Get Douyin video data - - Scraper.get_douyin_live_video_data(self, original_url: str) -> Union[str, None]\n - 用于获取抖音直播视频数据/Get Douyin live video data - - Scraper.get_tiktok_video_id(self, original_url: str) -> Union[str, None]\n - 用于获取TikTok视频ID/Get TikTok video ID - - Scraper.get_tiktok_video_data(self, video_id: str) -> Union[dict, None]\n - 用于获取TikTok视频数据/Get TikTok video data - - Scraper.hybrid_parsing(self, video_url: str) -> dict\n - 用于混合解析/ Hybrid parsing - - Scraper.hybrid_parsing_minimal(data: dict) -> dict\n - 用于混合解析最小化/Hybrid parsing minimal - """ - - """__________________________________________⬇️initialization(初始化)⬇️______________________________________""" - - # 初始化/initialization - def __init__(self): - self.headers = { - 'User-Agent': "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36 Edg/87.0.664.66" - } - self.douyin_cookies = { - 'Cookie': 'msToken=tsQyL2_m4XgtIij2GZfyu8XNXBfTGELdreF1jeIJTyktxMqf5MMIna8m1bv7zYz4pGLinNP2TvISbrzvFubLR8khwmAVLfImoWo3Ecnl_956MgOK9kOBdwM=; odin_tt=6db0a7d68fd2147ddaf4db0b911551e472d698d7b84a64a24cf07c49bdc5594b2fb7a42fd125332977218dd517a36ec3c658f84cebc6f806032eff34b36909607d5452f0f9d898810c369cd75fd5fb15; ttwid=1%7CfhiqLOzu_UksmD8_muF_TNvFyV909d0cw8CSRsmnbr0%7C1662368529%7C048a4e969ec3570e84a5faa3518aa7e16332cfc7fbcb789780135d33a34d94d2' - } - self.tiktok_api_headers = { - 'User-Agent': 'com.ss.android.ugc.trill/494+Mozilla/5.0+(Linux;+Android+12;+2112123G+Build/SKQ1.211006.001;+wv)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Version/4.0+Chrome/107.0.5304.105+Mobile+Safari/537.36' - } - # 判断配置文件是否存在/Check if the configuration file exists - if os.path.exists('config.ini'): - self.config = configparser.ConfigParser() - self.config.read('config.ini', encoding='utf-8') - # 判断是否使用代理 - if self.config['Scraper']['Proxy_switch'] == 'True': - # 判断是否区别协议选择代理 - if self.config['Scraper']['Use_different_protocols'] == 'False': - self.proxies = { - 'all': self.config['Scraper']['All'] - } - else: - self.proxies = { - 'http': self.config['Scraper']['Http_proxy'], - 'https': self.config['Scraper']['Https_proxy'], - } - else: - self.proxies = None - # 配置文件不存在则不使用代理/If the configuration file does not exist, do not use the proxy - else: - self.proxies = None - # 针对Windows系统的异步事件规则/Asynchronous event rules for Windows systems - if platform.system() == 'Windows': - asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) - - """__________________________________________⬇️utils(实用程序)⬇️______________________________________""" - - # 检索字符串中的链接 - @staticmethod - def get_url(text: str) -> Union[str, None]: - try: - # 从输入文字中提取索引链接存入列表/Extract index links from input text and store in list - url = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', text) - # 判断是否有链接/Check if there is a link - if len(url) > 0: - return url[0] - except Exception as e: - print('Error in get_url:', e) - return None - - # 转换链接/convert url - @retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2)) - async def convert_share_urls(self, url: str) -> Union[str, None]: - """ - 用于将分享链接(短链接)转换为原始链接/Convert share links (short links) to original links - :return: 原始链接/Original link - """ - # 检索字符串中的链接/Retrieve links from string - url = self.get_url(url) - # 判断是否有链接/Check if there is a link - if url is None: - print('无法检索到链接/Unable to retrieve link') - return None - # 判断是否为抖音分享链接/judge if it is a douyin share link - if 'douyin' in url: - """ - 抖音视频链接类型(不全): - 1. https://v.douyin.com/MuKhKn3/ - 2. https://www.douyin.com/video/7157519152863890719 - 3. https://www.iesdouyin.com/share/video/7157519152863890719/?region=CN&mid=7157519152863890719&u_code=ffe6jgjg&titleType=title×tamp=1600000000&utm_source=copy_link&utm_campaign=client_share&utm_medium=android&app=aweme&iid=123456789&share_id=123456789 - 抖音用户链接类型(不全): - 1. https://www.douyin.com/user/MS4wLjABAAAAbLMPpOhVk441et7z7ECGcmGrK42KtoWOuR0_7pLZCcyFheA9__asY-kGfNAtYqXR?relation=0&vid=7157519152863890719 - 2. https://v.douyin.com/MuKoFP4/ - 抖音直播链接类型(不全): - 1. https://live.douyin.com/88815422890 - """ - if 'v.douyin' in url: - # 转换链接/convert url - # 例子/Example: https://v.douyin.com/rLyAJgf/8.74 - url = re.compile(r'(https://v.douyin.com/)\w+', re.I).match(url).group() - print('正在通过抖音分享链接获取原始链接...') - try: - async with aiohttp.ClientSession() as session: - async with session.get(url, headers=self.headers, proxy=self.proxies, allow_redirects=False, - timeout=10) as response: - if response.status == 302: - url = response.headers['Location'].split('?')[0] if '?' in response.headers[ - 'Location'] else \ - response.headers['Location'] - print('获取原始链接成功, 原始链接为: {}'.format(url)) - return url - except Exception as e: - print('获取原始链接失败!') - print(e) - return None - else: - print('该链接为原始链接,无需转换,原始链接为: {}'.format(url)) - return url - # 判断是否为TikTok分享链接/judge if it is a TikTok share link - elif 'tiktok' in url: - """ - TikTok视频链接类型(不全): - 1. https://www.tiktok.com/@tiktok/video/6950000000000000000 - 2. https://www.tiktok.com/t/ZTRHcXS2C/ - TikTok用户链接类型(不全): - 1. https://www.tiktok.com/@tiktok - """ - if '@' in url: - print('该链接为原始链接,无需转换,原始链接为: {}'.format(url)) - return url - else: - print('正在通过TikTok分享链接获取原始链接...') - try: - async with aiohttp.ClientSession() as session: - async with session.get(url, headers=self.headers, proxy=self.proxies, allow_redirects=False, - timeout=10) as response: - if response.status == 301: - url = response.headers['Location'].split('?')[0] if '?' in response.headers[ - 'Location'] else \ - response.headers['Location'] - print('获取原始链接成功, 原始链接为: {}'.format(url)) - return url - except Exception as e: - print('获取原始链接失败!') - print(e) - return None - - """__________________________________________⬇️Douyin methods(抖音方法)⬇️______________________________________""" - - # 获取抖音视频ID/Get Douyin video ID - async def get_douyin_video_id(self, original_url: str) -> Union[str, None]: - """ - 获取视频id - :param original_url: 视频链接 - :return: 视频id - """ - # 正则匹配出视频ID - try: - video_url = await self.convert_share_urls(original_url) - # 链接类型: - # 视频页 https://www.douyin.com/video/7086770907674348841 - if '/video/' in video_url: - key = re.findall('/video/(\d+)?', video_url)[0] - print('获取到的抖音视频ID为: {}'.format(key)) - return key - # 发现页 https://www.douyin.com/discover?modal_id=7086770907674348841 - elif 'discover?' in video_url: - key = re.findall('modal_id=(\d+)', video_url)[0] - print('获取到的抖音视频ID为: {}'.format(key)) - return key - # 直播页 - elif 'live.douyin' in video_url: - # https://live.douyin.com/1000000000000000000 - key = video_url.replace('https://live.douyin.com/', '') - print('获取到的抖音直播ID为: {}'.format(key)) - return key - # note - elif 'note' in video_url: - # https://www.douyin.com/note/7086770907674348841 - key = re.findall('/note/(\d+)?', video_url)[0] - print('获取到的抖音笔记ID为: {}'.format(key)) - return key - except Exception as e: - print('获取抖音视频ID出错了:{}'.format(e)) - return None - - # 获取单个抖音视频数据/Get single Douyin video data - @retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2)) - async def get_douyin_video_data(self, video_id: str) -> Union[dict, None]: - """ - :param video_id: str - 抖音视频id - :return:dict - 包含信息的字典 - """ - print('正在获取抖音视频数据...') - try: - # 构造访问链接/Construct the access link - api_url = f"https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={video_id}" - # 访问API/Access API - print("正在获取视频数据API: {}".format(api_url)) - async with aiohttp.ClientSession() as session: - async with session.get(api_url, headers=self.headers, proxy=self.proxies, timeout=10) as response: - response = await response.json() - # 获取视频数据/Get video data - video_data = response['item_list'][0] - print('获取视频数据成功!') - # print("抖音API返回数据: {}".format(video_data)) - return video_data - except Exception as e: - print('获取抖音视频数据失败!原因:{}'.format(e)) - return None - - # 获取单个抖音直播视频数据/Get single Douyin Live video data - @retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2)) - async def get_douyin_live_video_data(self, web_rid: str) -> Union[dict, None]: - print('正在获取抖音视频数据...') - try: - # 构造访问链接/Construct the access link - api_url = f"https://live.douyin.com/webcast/web/enter/?aid=6383&web_rid={web_rid}" - # 访问API/Access API - print("正在获取视频数据API: {}".format(api_url)) - async with aiohttp.ClientSession() as session: - async with session.get(api_url, headers=self.douyin_cookies, proxy=self.proxies, timeout=10) as response: - response = await response.json() - # 获取返回的json数据/Get the returned json data - data = orjson.loads(response.text) - # 获取视频数据/Get video data - video_data = data['data'] - print('获取视频数据成功!') - # print("抖音API返回数据: {}".format(video_data)) - return video_data - except Exception as e: - print('获取抖音视频数据失败!原因:{}'.format(e)) - return None - - """__________________________________________⬇️TikTok methods(TikTok方法)⬇️______________________________________""" - - # 获取TikTok视频ID/Get TikTok video ID - async def get_tiktok_video_id(self, original_url: str) -> Union[str, None]: - """ - 获取视频id - :param original_url: 视频链接 - :return: 视频id - """ - try: - # 转换链接/Convert link - original_url = await self.convert_share_urls(original_url) - # 获取视频ID/Get video ID - if '.html' in original_url: - video_id = original_url.replace('.html', '') - elif '/video/' in original_url: - video_id = re.findall('/video/(\d+)', original_url)[0] - elif '/v/' in original_url: - video_id = re.findall('/v/(\d+)', original_url)[0] - print('获取到的TikTok视频ID是{}'.format(video_id)) - # 返回视频ID/Return video ID - return video_id - except Exception as e: - print('获取TikTok视频ID出错了:{}'.format(e)) - return None - - @retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2)) - async def get_tiktok_video_data(self, video_id: str) -> Union[dict, None]: - """ - 获取单个视频信息 - :param video_id: 视频id - :return: 视频信息 - """ - print('正在获取TikTok视频数据...') - try: - # 构造访问链接/Construct the access link - api_url = f'https://api16-normal-c-useast1a.tiktokv.com/aweme/v1/feed/?aweme_id={video_id}&iid=6165993682518218889&device_id={random.randint(10*10*10, 9*10**10)}&aid=1180' - print("正在获取视频数据API: {}".format(api_url)) - async with aiohttp.ClientSession() as session: - async with session.get(api_url, headers=self.tiktok_api_headers, proxy=self.proxies, timeout=10) as response: - response = await response.json() - video_data = response['aweme_list'][0] - print('获取视频信息成功!') - return video_data - except Exception as e: - print('获取视频信息失败!原因:{}'.format(e)) - return None - - """__________________________________________⬇️Hybrid methods(混合方法)⬇️______________________________________""" - - # 自定义获取数据/Custom data acquisition - async def hybrid_parsing(self, video_url: str) -> dict: - # URL平台判断/Judge URL platform - url_platform = 'douyin' if 'douyin' in video_url else 'tiktok' - print('当前链接平台为:{}'.format(url_platform)) - # 获取视频ID/Get video ID - print("正在获取视频ID...") - video_id = await self.get_douyin_video_id( - video_url) if url_platform == 'douyin' else await self.get_tiktok_video_id( - video_url) - if video_id: - print("获取视频ID成功,视频ID为:{}".format(video_id)) - # 获取视频数据/Get video data - print("正在获取视频数据...") - data = await self.get_douyin_video_data( - video_id) if url_platform == 'douyin' else await self.get_tiktok_video_data( - video_id) - if data: - print("获取视频数据成功,正在判断数据类型...") - url_type_code = data['aweme_type'] - """以下为抖音/TikTok类型代码/Type code for Douyin/TikTok""" - url_type_code_dict = { - # 抖音/Douyin - 2: 'image', - 4: 'video', - # TikTok - 0: 'video', - 51: 'video', - 55: 'video', - 58: 'video', - 61: 'video', - 150: 'image' - } - # 获取视频类型/Get video type - # 如果类型代码不存在,则默认为视频类型/If the type code does not exist, it is assumed to be a video type - print("数据类型代码: {}".format(url_type_code)) - # 判断链接类型/Judge link type - url_type = url_type_code_dict.get(url_type_code, 'video') - print("数据类型: {}".format(url_type)) - print("准备开始判断并处理数据...") - - """ - 以下为(视频||图片)数据处理的四个方法,如果你需要自定义数据处理请在这里修改. - The following are four methods of (video || image) data processing. - If you need to customize data processing, please modify it here. - """ - - """ - 创建已知数据字典(索引相同),稍后使用.update()方法更新数据 - Create a known data dictionary (index the same), - and then use the .update() method to update the data - """ - - result_data = { - 'status': 'success', - 'message': "更多接口请查看(More API see): https://api-v2.douyin.wtf/docs", - 'type': url_type, - 'platform': url_platform, - 'aweme_id': video_id, - 'official_api_url': - { - "User-Agent": self.headers["User-Agent"], - "api_url": f"https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={video_id}" - } if url_platform == 'douyin' - else - { - "User-Agent": self.tiktok_api_headers["User-Agent"], - "api_url": f'https://api16-normal-c-useast1a.tiktokv.com/aweme/v1/feed/?aweme_id={video_id}&iid=6165993682518218889&device_id={random.randint(10*10*10, 9*10**10)}&aid=1180' - }, - 'desc': data.get("desc"), - 'create_time': data.get("create_time"), - 'author': data.get("author"), - 'music': data.get("music"), - 'statistics': data.get("statistics"), - 'cover_data': { - 'cover': data.get("video").get("cover"), - 'origin_cover': data.get("video").get("origin_cover"), - 'dynamic_cover': data.get("video").get("dynamic_cover") - }, - 'hashtags': data.get('text_extra'), - } - # 创建一个空变量,稍后使用.update()方法更新数据/Create an empty variable and use the .update() method to update the data - api_data = None - # 判断链接类型并处理数据/Judge link type and process data - try: - # 抖音数据处理/Douyin data processing - if url_platform == 'douyin': - # 抖音视频数据处理/Douyin video data processing - if url_type == 'video': - print("正在处理抖音视频数据...") - # 将信息储存在字典中/Store information in a dictionary - uri = data['video']['play_addr']['uri'] - wm_video_url = data['video']['play_addr']['url_list'][0] - wm_video_url_HQ = f"https://aweme.snssdk.com/aweme/v1/playwm/?video_id={uri}&radio=1080p&line=0" - nwm_video_url = wm_video_url.replace('playwm', 'play') - nwm_video_url_HQ = f"https://aweme.snssdk.com/aweme/v1/play/?video_id={uri}&ratio=1080p&line=0" - api_data = { - 'video_data': - { - 'wm_video_url': wm_video_url, - 'wm_video_url_HQ': wm_video_url_HQ, - 'nwm_video_url': nwm_video_url, - 'nwm_video_url_HQ': nwm_video_url_HQ - } - } - # 抖音图片数据处理/Douyin image data processing - elif url_type == 'image': - print("正在处理抖音图片数据...") - # 无水印图片列表/No watermark image list - no_watermark_image_list = [] - # 有水印图片列表/With watermark image list - watermark_image_list = [] - # 遍历图片列表/Traverse image list - for i in data['images']: - no_watermark_image_list.append(i['url_list'][0]) - watermark_image_list.append(i['download_url_list'][0]) - api_data = { - 'image_data': - { - 'no_watermark_image_list': no_watermark_image_list, - 'watermark_image_list': watermark_image_list - } - } - # TikTok数据处理/TikTok data processing - elif url_platform == 'tiktok': - # TikTok视频数据处理/TikTok video data processing - if url_type == 'video': - print("正在处理TikTok视频数据...") - # 将信息储存在字典中/Store information in a dictionary - wm_video = data['video']['download_addr']['url_list'][0] - api_data = { - 'video_data': - { - 'wm_video_url': wm_video, - 'wm_video_url_HQ': wm_video, - 'nwm_video_url': data['video']['play_addr']['url_list'][0], - 'nwm_video_url_HQ': data['video']['bit_rate'][0]['play_addr']['url_list'][0] - } - } - # TikTok图片数据处理/TikTok image data processing - elif url_type == 'image': - print("正在处理TikTok图片数据...") - # 无水印图片列表/No watermark image list - no_watermark_image_list = [] - # 有水印图片列表/With watermark image list - watermark_image_list = [] - for i in data['image_post_info']['images']: - no_watermark_image_list.append(i['display_image']['url_list'][0]) - watermark_image_list.append(i['owner_watermark_image']['url_list'][0]) - api_data = { - 'image_data': - { - 'no_watermark_image_list': no_watermark_image_list, - 'watermark_image_list': watermark_image_list - } - } - # 更新数据/Update data - result_data.update(api_data) - # print("数据处理完成,最终数据: \n{}".format(result_data)) - # 返回数据/Return data - return result_data - except Exception as e: - traceback.print_exc() - print("数据处理失败!") - return {'status': 'failed', 'message': '数据处理失败!/Data processing failed!'} - else: - print("[抖音|TikTok方法]返回数据为空,无法处理!") - return {'status': 'failed', - 'message': '返回数据为空,无法处理!/Return data is empty and cannot be processed!'} - else: - print('获取视频ID失败!') - return {'status': 'failed', 'message': '获取视频ID失败!/Failed to get video ID!'} - - # 处理数据方便快捷指令使用/Process data for easy-to-use shortcuts - @staticmethod - def hybrid_parsing_minimal(data: dict) -> dict: - # 如果数据获取成功/If the data is successfully obtained - if data['status'] == 'success': - result = { - 'status': 'success', - 'message': data.get('message'), - 'platform': data.get('platform'), - 'type': data.get('type'), - 'desc': data.get('desc'), - 'wm_video_url': data['video_data']['wm_video_url'] if data['type'] == 'video' else None, - 'wm_video_url_HQ': data['video_data']['wm_video_url_HQ'] if data['type'] == 'video' else None, - 'nwm_video_url': data['video_data']['nwm_video_url'] if data['type'] == 'video' else None, - 'nwm_video_url_HQ': data['video_data']['nwm_video_url_HQ'] if data['type'] == 'video' else None, - 'no_watermark_image_list': data['image_data']['no_watermark_image_list'] if data[ - 'type'] == 'image' else None, - 'watermark_image_list': data['image_data']['watermark_image_list'] if data['type'] == 'image' else None - } - return result - else: - return data - - -"""__________________________________________⬇️Test methods(测试方法)⬇️______________________________________""" - - -async def async_test(douyin_url: str = None, tiktok_url: str = None) -> None: - # 异步测试/Async test - start_time = time.time() - print("正在进行异步测试...") - - print("正在测试异步获取抖音视频ID方法...") - douyin_id = await api.get_douyin_video_id(douyin_url) - print("正在测试异步获取抖音视频数据方法...") - douyin_data = await api.get_douyin_video_data(douyin_id) - - print("正在测试异步获取TikTok视频ID方法...") - tiktok_id = await api.get_tiktok_video_id(tiktok_url) - print("正在测试异步获取TikTok视频数据方法...") - tiktok_data = await api.get_tiktok_video_data(tiktok_id) - - print("正在测试异步混合解析方法...") - douyin_hybrid_data = await api.hybrid_parsing(douyin_url) - tiktok_hybrid_data = await api.hybrid_parsing(tiktok_url) - - # 总耗时/Total time - total_time = round(time.time() - start_time, 2) - print("异步测试完成,总耗时: {}s".format(total_time)) - - -if __name__ == '__main__': - api = Scraper() - # 运行测试 - douyin_url = 'https://v.douyin.com/rLyrQxA/6.66' - tiktok_url = 'https://vt.tiktok.com/ZSRwWXtdr/' - asyncio.run(async_test(douyin_url=douyin_url, tiktok_url=tiktok_url)) diff --git a/PyPi/demos/demo.py b/PyPi/demos/demo.py deleted file mode 100644 index 093e7f9..0000000 --- a/PyPi/demos/demo.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- -# @Author: https://github.com/Evil0ctal/ -# @Time: 2021/11/13 -# @Description: Douyin/TikTok async data scraper demo. -# PyPi: https://pypi.org/project/douyin-tiktok-scraper/ - - -import asyncio -# pip install douyin-tiktok-scraper -from douyin_tiktok_scraper.scraper import Scraper - -api = Scraper() - - -async def async_test(url: str): - if 'douyin' in url: # 抖音数据爬取 - douyin_url = await api.convert_share_urls(url) - douyin_id = await api.get_douyin_video_id(douyin_url) - douyin_data = await api.get_douyin_video_data(douyin_id) - print(f"视频URL:{douyin_url}\n视频ID:{douyin_id}\n视频数据:{douyin_data}\n") - elif 'tiktok' in url: # TikTok data scraper - tiktok_url = await api.convert_share_urls(url) - tiktok_id = await api.get_tiktok_video_id(tiktok_url) - tiktok_data = await api.get_tiktok_video_data(tiktok_id) - print(f"Video URL:{tiktok_url}\nVideo ID:{tiktok_id}\nVideo Data:{tiktok_data}\n") - # Hybrid parsing(Any platform URL) - hybrid_data = await api.hybrid_parsing(url) - - -asyncio.run(async_test(url=input("Paste Douyin/TikTok share URL here: "))) diff --git a/PyPi/dist/douyin_tiktok_scraper-1.0.0-py3-none-any.whl b/PyPi/dist/douyin_tiktok_scraper-1.0.0-py3-none-any.whl deleted file mode 100644 index ad1dc5060ecd59ada44dbbc1bda61697b01c63d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14544 zcma*OV~{6L*XP}~ZA{ztv~6qJw%yaVZQHhO+wPvW-M`i|*Y2}%?fu`qW3SA}tg09J zIVY;}oT$ie90h4mFfb z-o%kXPtU^E!dXv`-rfTgNa4Q#nm7a7*>He>!0ds5i2hr^{}1}R{)*SaX=|i@SLe^S zp8~_ycF@-Q4;|d}5(Jt81nH!!G{gKlpp>9C*eYP!^5kObjoFmbQyD|)mSVHFIBT*N zQgYX-z=kKt9YXhAU9w2Bw{hS7C%is{nr$+wQ8`{=G8C*S=aB`(KDrGcE9sI1abx?+uiT1aFWT(_rd6>#&TqU{Rn#fbS2royzw zXh-cO%kb<6DK@GMAvS+2IcheKBx#DpauMoeiDQTT_zu#vBF^XtWo+$_f-2mIk{HKy zcj}xW(N3HS^8)6_rLWVTr&oS0n%o+nN5D($OfvzUR%EQwimy)i*G(Y*htXZ)x9-P@ zmR;U%?dX@;8R06QxQ*Iw`?9CIfyx zYc=e)TYEl-Je?h`?s!&~5x?7CAuOxQowR0}6;oIA@`ou(f(d^yMpELuMbKLCkdf-D1m@ub`i}<<#JLRp#{G__#G61ssg=ieo9@M=D?sj z_wAv{;bEjUXCjh|%ywjH5*D~AKpk5_n{Bo0v(EP&-t64*bPFq_d+{ZFG2n9X(0Ihe zB!^^=1za*Cz-raOTv#TQoCJ0!HNZSPOOsG_7a=mZ?X7>J)x?1bo{QP$I zB>z=sCT`ej?I>c%1(&_qSV#fPSPdo>Agc(;o3Q0`m$<%P3QT+|B&wR8`dMV{k6WqU zYx{lYiX{uBgE$~#GP87?Gxmzqy^lkvwB+KY4Q6fOrSSpBpv?+aZ_uK-f*vlu0jkmt z+g-D&d0`}1&;Wp}q1Do#eUjG6+h=&N95!Pg%HD2eI5gI@s-dXp1UWB@+1 zEA$=9m4T*E2%oc}@yEKlTEli53 zokD{n@@QNSvlrmXlV{ELzXd{Hm2(J`u81r*vVK6iIOFyD%ZXV+Ks8pS$Q%YAi)7TA z=;biIP>wEi>XozN4yV5KerTIGzRW;Nrn(i!jQ{rGSNHHh~%%;nWD*T#rdX{o8Uw`j=^Gnc7>tw$JXAe>aH} zWKJT+b8^mpT>oIEDHTI6!YAGdpRU~E)&8e_A?RurD0V#%K znqgzUbjitNDRQluBk=^1H)FvG6Q?t&2Ie2=;t|6tN-p%-&e`K;;z`wJG57dySQqoA5$6E5CVhCo&u_ zkle;iVFXwGOdteKa11Vj>mFAHBTke?2hS%ey%*@zK!#0j(4a>XhZ#1ePE2IRCQeKi zYf$1w;k#6Mf_4eMQ63@D7aV~np+~BZ;V>QI)PP^M{E;nhf>+MJfc$|r)?IZkj<9)< z>m4%j4a;CWa&TtckQM};D8oA#eUYaj_-Ifwv`9jtZ#dF{Briixl-AsRaQM1UZWD)*28vXod^XldLS1O;C_d8a(D5C>I_Vtn?HElpS z)N*_LS^1ct4$sa}H25%@8Ofq{`H(326NC&IN9MLhl@nrhF+$AoLoU3Ope=LTcXgodDflSdc<>0Bz7dL163RS4!!Y zD05t$2Ta`CPH@o4KHK@zovE>B87x#GBwQgZQVBn>_uXTmQCguDZtK@5*~N8WDw^s7 zM$~exnwok|pouN7XQB7I>Bau~$^?g1Zm$JhcP^H24iu%AsudO<)(JHyb2N1ym~U|5 z6<47}n&Y(nc;VIJ(D*b!V?=D)oF;I=(qpE{Iig*kl-i zhBDyf8kXuoJUi6jR%N=+GW)BOVXbyQ$2~8|-L?GiZ(A62K{}C;A5L}7UAKJ@sWqh4 zSNM98*F5k%63AaQ6TGsx+1A`hZL1I6u={M%2cMe^I_g2XiF7;gYJrf_QWa@el}8?3 zZvlmy;-x|Rs78aeGPzk&2(f*$-&n`F(THC-*FJZZh4Y2=`Dcj=7pbS!jM~_^J8aWi zBZj>Y+hJp2E{kecR(6}Z8?+?atE}+iD69Z7XQvU#b=j zQWzJMb7X-5Rbt2|>{4Jd$;OmPGjw6e2#0ro4KPfZL(~neU$j)Li6d}t19G+83W!~<;V9!gc?}xthZQbcWfB%|?yoM-mL)FhJv%MP!Y56`qqb! zy7!|Fgtzx2Z3k0R{#u)=PZv~Xs=PODq))xY|G8?c!DacRM4el-sy|qD7qT)Z+D>Zu zL>>zPj2WSzs9?I3prJY!5dl49XW3B1YDs1(j0p4ODX9@>b)Of|73@r&IT=XIFTo0; zg~qDQc(p10!p^Oo18nZsoVDi0*~#c&ec8^`Hi7z%u!1<%!B5)^b;%vWYtwW=Nj_{y8E}y@S+Xdg8vEvNnk1_|mL;TK%QmFb`n0Wi@l3`D zE}&g;Z_bGM7=FBFXGR@v*cJB#>R=62_Dj9OQ6*Lcw0|guJ`Wt<@;ZFj3dEgM!)(ON zxmq!HkX5rp&Wwituf`>D8K-7v5~f zV1vIaUY}=h@eUCpG2>5rbCV{{JUIl1r9rxS;%s7s%@?wjUxWvJQ41LE_@?CuAvKBv z*Ggfy^M8cSg{;zwRZx^`C&hG>L9+>-L5LfzM&i?9O!={{(~UdCd7Re+1Tq)py9moVUu<(Xr;Q;;}T;Gzwac6rb77Ydhi0FTowe->p`oM|P0PGyveW-Ol5H&nMzk zUJ#ly%9o9D2|N#B5R4EFKYIXGldOX8w$J5UPSY=rua4)Z=^Mgs0#;RSx^A(`P`*}p z|8Q8>DjV+W9k?xhY>+_H&y64R+QON8dPu!q`aqM*XjUXDO<`UB>V}|o;5Yk2%uv!UCbV*9(R8R&+bH!nltqlKbM~COL#X;nBJL& zLf~9Ds7x_Qdu2Ymh`{yaT?M87-f*qX!Yb*rnxHxebU4TeIf*4{WL`}o_O0)D3DkXG z{Z{Ek&0IJC0_qgR!zdwcLZU_s4=-K<*D3P=YMfLPSQ|zh#x(}!ZGY@>x$XyOom8_R zUiG-a8gakRFgk#vjW~iF?J%NCS1|C6(d+gIP+hHz`raTTNnkt#3!!ukdl6@jV??ee z`Q8<{)X$t=roW3i%h`H@6gQbXmOWmqJwr7f5;%e5UrqAbrKG6yyD!oy?s&jsbym6G zu3##6zlJWuPU@`vpb9DLXSA-hm;*<{IUWCD$jk-L(N7MEX}TouFTZs2{dyy)W3u(0 zlf8|BgC^l2%Tw#Hx}O|KR5SThK{P=MMhJ$Uh6$}ylTS;+>kUGy%(i$!PGp;Z4_`M< z5?khSqq$*_Z1uc9qLt%Ssn^r!YUUx0x6xN4G$#b&>GGNVqJ=0Q%Y16WaKG0Lv5@_6 z({lYyM%oT*va0eY503%tVBAjJn$L*Ny1x)MvyzG95{A8VMX;mIU~VwW<(lqd0ke9P zuvM=&(pAFYhdC5^suNNQ^N9m^!1LV(VNZL{>-VbBmuHCEy{>Rrqb=f+U4jO36Y7M8 zw{VX$TsO<<)FK2kg#F!>wFKQQ&xDNu&=6$2Id;bC|~_ z3foKNuR+cv(|ax3Fh^F}pQn=M<8ejGtu}29NAqox<{lJ%|)A ze3G6N0&J%{#utJ4{r9BfEM2c)H`6(Mc&8HTn$)rM#CA`yMY zTg5?X!sMo7zNLx4IXj2WjD^`h3t?clMYituUI=Z9w1n3v8i2%?>E8bSmoY!AiJfH6 zFgk0{a0$DG&9nB*JCzfw{otqy+G?`hX#O;qs+!JTI;(*V)0E_v>6)U?v1)6b02e;} zlLL^4dt$xCBAE_n5nR8u&anNOHsXoqOnE355ltbho1Y_rIdJ)y==X5UNF?RWfBY0Q z9xqlJHYSx2`l_~O{vHn@oTZ0#KpKy;-V!EdURj*+NGO4heATl{nkzJ&NkQU^Z80f4 zn$oM{A#5V(l8t6CERW$3&{__Aq6w>IM-x87L%X0XjK*6tdhLkjaWo(ByiIm-NIw!K z^@&U*%uC`5uwI3b=+c1+SRDW3eB$EzY<25envK7&%(K$!+pxoDm-{Konip688+W09 z6u~%GO{6Sgtr66D0|+!u(-3=++`N{~*o<0?#TomV@uT1R7U(%6-oTINk6-`%yZ^@A zwrI!fq^-j%UU;9XkI{}2qU@ysYe(6}*@$^pLWq`-){!g2DIX6Sp#=OUFc#Fy>kM+u zTolPigf%~e{omXqZQ4kG_%!Rl9j+$!N3e#XEN*3DdgZfG&XfI91GrzL$16^NY7j3Z z0^zKU&vI|F_fB!ZXp`*mXptR%qejsH&s zP3fE3+OAgD6Ns@W*vlN4w~hc3x&(4u^HKy1^E#N2%P7u4^QAFNoC(I|4kg12NHG93 z7d_}SnVn!hJda)M_E4!6`WL+jqa!XYRIOgYRa2?lT^z4#K5jvc57;wNnES>Gx6?+4 z!-!{7Sd7o%js{{+y=_;!=UJ1qCWM@$Z$8Uap)s6%PE(CfE8saj4ZlLrZysWKxsp;Q zx;l~g2S&A>L&TO@Ee|{7rs>r+Z_y-SZ?Dg>_QhTHGY{f{&t+nxL~0%_qw^X8nV4Er zh;61wmfHRp&S3V>aRZB3W8EaYRIP5$-417Z2v6^)6_1Mr zaK~Hroj$#i@DZrc&A%rJdb;G*pI9R<*yjUD>B`OEC|AZk2!o>I^*pSQ@cHC{@;H0W zWhfPSj_`qAn8U<=%!EuaX#1=Ez%xiKehhPE87*c=u1m>BTltNvVxW-IgGo9?5Df7p zxPKu0m{y_@serNg*G3qAXP=uU26G6HY$O^d?@sP;ujV+@7UE(Kg2^PnBOf7Y1%aLt zH_;#?UtkdoBVS_FG|Yv7dv8ye;v zCOKBKKaDLo9l>or28*F^am(B54M=D6^nSIY7wUN6JeTkn=B^gMQ~mccy#a$Qb*NB< ztgY@Gy4Ncjou<~W>ba^SD-5&x+$RHunDLx4!37eE5EwcYHh{w%Tvy^PQuWFiGtx_rAH zFn$gI)z>P@Aa#uXlHT^`a2~$P%a(+?w7m}?-LJI}h}I2%gk{T-<-10x-k@>B0ZaD% z0#|ng)s;L5vBX-)`duuzhG7|g^$erz3D0eBsenl;N>iLLZ0wC>tVQplr8`&b$vw>H z`aB86-eeGRJ@BK$pOIsw*bgBc_X4R9&vOm-G{V_Xp!;a62jF)uV1^Cck>v1LmSP$N>uDqEnB>04y^p4Q=Wk6NP=N9VR`&tbDF2}iHJ#ZkYO3*iyc~X!R7-?<= z9dn1iva!jElU1(&0(e{uSYSdYcKFFywA&p~4wTzF6X*OGgeEs7Oymvnb;#FERi&zM zZ}K9fDDw16Yyw9&VZOul?-cYFNBUL(&Zh$6>&Q;Hi8FpX2k~UoNn-Dwi?v z9-d;Qwu`q8cVztj+IHsv5RPxb%AmX|PV@f8zSpvt!P^Wfe!kKF^%J|%kmgxr*Ypm< z1|BhoS#F8R1kUqerOn%Bm^>e{=aU^eyM#YO_JHEjEYsLX1xypwONT{<;EbBoN`9#? z4h=)NcC#$b|Aj_Xm5#i5cvXo~?fyh|Q55v9qL(S&PG^dnT_buhSg%lgT#M zs%}TnJys1}O%3h(+o`y!>29JRdP;(=S&Y)T#f~}0xdS*vL+_3lAH&{K{?=Ri=t@M=%coa!_ zJY&OI_w;!1LN05|K}waFUN`%!%N2t z7%~$O1X$T7gA!{U-U;5osA4-MLMY$v-|hWVzaDu-Tz};`CjGsAG2d#NwjCx9er{Ai z)N$^S-HbQaJDo+5*njDU()#V=dUf5IDZk|dD3^m^?>UqOA}nsNay?+%ZWby3f+sZ*nRTs1W-O<5uVXRujk0pQo+h2yN$)!QJ(vCK7$X9 z!o7ax#dCpz`FCrKwZ?zohB=)P*|wv62C$JEjdLn z*{T{E#~3;N6|JbjfPm=!JIRTTiJtLqH@0wcrn9g$wPTQx6c&|J7S&Ojw%ufe>$#u` z%lg%K+Cku^Y*UPEsufbjIyqmTtPyAgp0bc<$G;%C>LLInOxnxO9LyTmxf0XQoB~*U zKSJ;h>U<{1A;|3sbaxsw!p-!rpO6#B40s@E1M1Gcyv9dRW)a&YtIMqd?+tCSD+!b( z@-!cD<6NgA>bo&K6yqSs^T$xdk{cng2-qE!X3@mE&V%l6tr6rq_4>`X!NeZ__-tDT zd~IlFpty?^`L0>icsd;|&>f4Rt$q2)HSjk!w59Q&+v@RW@I7A55wA~eVZd?=Aw!Bz z{Gi9oK*V?3dA+ajE}VDZ=^vq;W6Io4!iEKgJwl=XydG0Pxnf~4b3XE#eL8c@#yz3Z zvF@m$l{ub$-dUkwu6_NCrnE4VIdL#)Jh0motC)M;K@99wXj+NQE)>~^G=k8Yp6OlZ zntW;~j5U9<^hdA&Fo->b+qjsz$gog$@P5lycO}oF1`0~D_1gcX^ z2b+O3g^QOfr$iuNbq{~X_ladB|HAEqo|bL|ZwAw~-7lqW1RJWAitK;+) zsCFr~^uNbmNNLcvR6!1=oCd8hgdd{e%hSF4NkKKTda9eqFQMAJd~af+Uwkj4f2Wzp z@|6`?i54Q|L>~#ptb2>eREXAKE@q_eR;LL~9ZxW-XIVr|B~~F-c$cm(W%DJ((SQMM zPiOUOOsVpRL6e+FSvr_Qaa+S&#r~wIebCOuuMe^ynOnSeOAzIu*nP-n$p5-~Gm;i< z*U*80*13Uz=>Oy0D=VrZC?cpLIIMN1jyu}$o%KcoI4IN(55#coXCl?VZAKkE9^N_% zltX}9078|W~D#dE5JfKtU zFj4PfCPXo&mrc8|=hEJqZV~WH<(ZU(FLqstY&|d53R33|)D6fAXPWERi3bVb9cl%- zP*a7c`Xgr+S=Q3R#?__Nr@2WF(9unP;lVD27%9&eJBI?0?W`)Ox+PayDr=FoXBCA< zV{{_ziTZLOD_y;rTpuuK)gh-lt%}qlsR-P1s9%KN!M-%ltrL&)6=yLjddS%4`1tb@{87d-|AW?B=fx$941uY;fpeU?iTMdC-#N#0R(JVq`yBiQGA z2y0-89dpZef%~aq;mC?O>7UU z`l{)2Q1PZOsJvs)OAE-q*;tltUbR~>O~MOK^Bs5j45duQaNdDHK%MSNxL);d#@9@rW&fd)DP>}Af=*bc1Y2gsA9M& zhIJr+ozpkAZ6|G#Nu%E~G^l_&sOIyO-p{tjuMhRx8}{(mfBo`h4O=9$8KB2fQ?<3M!;y9Y&Sp)km{QWRF7FYM zl`y+;U9U%^Q;zn&rslr9bzgFG*1Wk|ysjm^sTq3l`EEUho%9&LPV8!(JNwGY{8f{m zE58D@Y;ahn)_|0NrkH#rM`7hsGK*uh$yOKG(4V@1niAtVjzXJ3>|!m}$>ZGP%J?yq zxzc5I4%#rsNvH>ROAuNg1q+@59(?v8#$I2W8x^jF_SSZ!EzK3NFIk0P#?XTzaA z{=2hPz@DMuA^je*JoO^1i%*gKw#plM@7~mHV?OqZC#rm>LT9?Jc0(N20-%#QK`46< zv8{(#6QFooF_Yoh89&HnQ{SDwwt~>u(!!Fk7J1(IK9vxns{R}QHT2NYNNay>hSeI` zMjs9gcqDM#f`tcg1nAr@*On5T?sV4D^EUK?;O@}XuNmrR^%ELVi*ybYX;BJQJK44s zA=H(1g?GQJk-=?!fh{xrR|B4Bvt>S!s^%Te?a z0|dO6D|pe%4h;S|d))n^GQ?p^5xXi^{hb)~Y**Lz*vp<-wjgpC! zAw5>F0$gq%9oajQ!yyEsZo+TgLlsI??Mhc&F}lvVwi0TC42W6(UYjCbMszhS8MwQU zzB6~b)Yt9pMu3<rVfwp=-vvdi9agaBEA^>j?1i0sPf!Ysr2w& z6A-Eh90So;XIcAcb;N|E>p+Yyt=P%8o15hg;-C4(R~5^Kf$#sCk61$r5wcH|e!$6d zxAagz`;ZV|4(>rvK4kENksIz)$`bsNhGWwXCg28XgDYV=6ha|JoqjT*pd(ARK=0#C z0z(sxy(4m0PIk}hCiE%Y<?Zu;H=oCxIWNN#k2ib#_5!KfuCmZ zLrD;&BIsq~6hAi<5|#ZhFfg51K#4hz3tlV+5r1kr+(B}R3FPpx;%#d7=|9{f>>3kXJ$ zYbq46ufvw#=QE{0l?+BH-K_ot5C3S=vrh16e_(VO;ZDl<+#r9@ za3P;A(5q8q!7}{?Ic4Bp>0fgOJ+Oc%67(4OWvZ-&75gHlq>kzrxpr(X#Ef)vWgvh7 z!5j(<$yAD}Mo!$B)YTqd7drx$=|O}mq;3uI3oDmI8TrC3*!@qT{5CKYie3yk1r
&7d{C5#i_I&(OjEDgu2Gez!F*R!2BC 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 T^{?H~e{ZY5sX&hFUvK{(SD7Oh diff --git a/PyPi/dist/douyin_tiktok_scraper-1.0.1.tar.gz b/PyPi/dist/douyin_tiktok_scraper-1.0.1.tar.gz deleted file mode 100644 index 36e6ed9e2484bfc583f00711bc2157097eca18f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20206 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 J1g(Sw{{XuwGk*X8 diff --git a/PyPi/dist/douyin_tiktok_scraper-1.0.2-py3-none-any.whl b/PyPi/dist/douyin_tiktok_scraper-1.0.2-py3-none-any.whl deleted file mode 100644 index 0846a49e0648b32770cd9d2205ee1faa24f4b41a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14630 zcma*ObCe)Kwy#^ZZQHhO+qT(dn_aeD)n(hZZQI7}x%b^SbIv=n-bAj5%={z1y;o-J zSefyQtso5yf&u^l00Cf*VyF7|0s!bA&EG=!x0=|ydRW@&yI5Mg*jwv68#@^~m^#tx z>s#7cy6EfEId}jADEz;G7EU|WreN*&I4l4F8%F>Df`1G6e?WixU-4SIZw%M%ILmzl zQ|&~WP$POLD#2Y)+!I$HiQ8~W5`XLp08sQ10fGULF4WB^IvH!1=h`B3NBBH6BDX}~ z+s?ldl79ogz;D{WG=h-&jO({H!23s`OG?Tm=3u{S0HJj-H~cMso7oioTiAu&Qq>ss zMvv<4Ml;u|v(jdVfgY@56xn%G)lAGIEH%^C;PKf?^ARkC35+8%+Dg0F`_E{rDYlZt z1igcnnaZUklL%G3l`IwOaf(z)(|K>MsZyxcTLoP-TBR((p)(pfUqwb4)fKTe8>VcT zy#icV*?I*`Pb)u{9pBH~KS%QFe4bw);wM^h*XvPn^Ur>|5kEIU{GY~mi9dRuC*|z3 zH!H|L4UciwxrJ=h_B%GbowfCk#XfiUY+ZA~c5)TYiSIfe*&SC8Emz<>jVbo4E!C@~ z*Bd*&M*Quq@2|EW=iom&-oQ<2O`Ze$6%}mkgJ-bNyrWcP5-b^GrMW^si(0zuG}8*3 z+FLI6qN?INPPrGVa}}pzf0X-dtP(2R*RjN92mRhHFbj%gqUN)-iO#e{v&*AG%Q58n zRT&?#%qcS{%GDAJReePv5-SQUoxn+jtEj;k;)ARW4E#5%HuY?1bC29DQ}QQZH%S-4 zx(a9$m?KG9qOCTSVl@l1EHNSNUfECC5yq~TSVM&RaqRrsTkoI9pVPyxCd}7Yx^1?4 zn(n_dt^MAsefGd^(-@NZO{kd6&w8mR6p}qc8q829bq!d$#mhJp6BT1Z^BpUaAC*DB za@Ap^8O%k61s~HLmCMyaIa*ztl0 zp7HHP=YnUS2qu+IXnd|CqTv+@bM6R5bw@^odrOAHhGuU2g@rM&%`z84sh}mi{MBCa zUR?0^UiNKwI?VO8w7xzUp21UpU31wFvF3@OSe(e0@a$j42IOca8Aj zRjF_Y3fO}HKJW=PF}2S+JEYJjvcy=a}lwj1Sf#q8B#iZ&P(Zua7RwQBu|^yW+7 z-$$-k=6Hr-FBuDki>4w~o^kkCGL}l7aF}6TteCvn=z&dHG^$9VBT+t+3B;~ksT`Lc zf3#cLe^@hO(%#+g$j#kkW&}aDl-qNon$ODF9X2=gP<&NlOqV)lDpsji*?&G=uu|QF zi$tAM$R6G}!c?kM814HBfV(62;VoJhoPXj}g}gZB@CD9}UXnpD6Q$NZhMtOuR+#AG zF}_lYGjr=!vSgE@zwvo%8$X=BLaxuhl)zVY`*N%2G{@a|up;d-pP`ebS(;yX7&_?T z&Z)csfxFtuP0!kKby(-%>nUX9bp1j=PWoo(M z^e~iv!-QMo3p7oJzITzL84pnsoi1_~)kLG_q{zUNEPZ%uOrSP9?3a+FlS_3nA|y9+ zQX*ANaw1-+PnwB4EMZPQD@dDAIdmb*oiY=P9Fl1#nRs(ioJ2#Rq(;3jmZAiw?ougB zQVLOFD^#Ic+jMDWNWh{jige;jol#LrMr>nIqAFHK>Wn`$>Lxm&UO4+?&N8JfbK?A( z*#Bj!=HqI#a~JAhFUF>ZJ zf~VA$kftmKMJ%Ayou-t>{uW7L_HdR!ftKt7Xpu^#RL4Xsi!Mz(q(qfHHL+HeHZ?}f z$%!0==T`AP*iQ9GdBDg(mRORG5}`qk&8&n}6>60{gEFtFeh%*n!Vl|IW6_@<6#IIT zlYjry54~1rLY7QbY|vjcKjUx!Mxln_lSVx@ISQeX8R4)$m(;!8?QMOv_?B#MA7s0r z^%}UD*oM3Tr%0#!(Eb&m4 zM@)-UkbY1jWcNO{6Wq71MBfRA|8fNWPQ;|42=MZG7sKh#yAzD|6QjO$=}b}XAA5Y_ zD;Tkt;)QL`SyZq&mFS9})!*f-zQX*=D3hQ|31-IPtxoAtvRJTbOL`E3HqUKg&-3Wd zZ&8&k_BFKKOMD+E43oUIK{$~0TICdA;Ry=tF4C!w6_Su^glba?QaaOuQO5b>W5j=q znxKrZLj&6WHVt?^)X8A9*^(HaV7~aWT&Uhc5v~E&)eZM#8_}-k0wv zXPZKd$#pNjJ(vzIi(htglBImr4=)p40jkc>(nE!BqjRyy9C;n^xiEywE=Bk7Q!lyU z^^{mO^%>N=we&Q<5jOEY=CH4{*|p$jfVL`gdmvFBj7O(}mQ)t7$-r~sz~GDvp&0rw z4=uc=Z8B1n9;l#43}q5h??6%v*Zb**7Sm-i3~Y=@gj81yC!Z>)SP!PP*I)CLR7s@S zn+qe673}%TQzUHqi>x%LI82_e;0;{V>~fm$^)_1>MRmuu)z!K`t6YEVtE43>c&xP; zmX&1d%v{@yjh-I0F{?GjoEK}pv?kEidOi|;&cP(`48S|DqEdTL#Rhpi!`>SSqDt*n zrPbB=yT|PLLpNQZvoth0#dyUo(-Ln3E*3L-Z9@j8BP~7ZfVv3uLKCV05N2r{d7w)t ziM7Q&__|$Pq;UB7*gnU9BP*BhA-=xh5A-*T_3006(fhh`_;N719D*#qlX_CasSk&` z;~3f@N9YGFi<`JCJziPcbJ8(1lo3YC$_;Koo&Ho53x()aX0;kLg;)+hB)}W(6r)S3ABJk%vhYiCZ5UMyS zfD~Yc0hXuE!3$PtL=uLh$<(!@&X9$+f+{wRpN1LquAVhNyo=NAvcC+Hc(&%<0Bao!hj!9?CnyV0Jg>b z!4&{ zHpHJFwAA2Tl|Ti$Vo%};M3BW8n^}m$@W2&*0EkFT zg_`lti-O%o2&VSaZRY2|7Pmev&y2Xi@4B&#munB$^f=GkQ@G9>VHP?WGA19kgdn!c@RKy6XyJz5OLr z0mIhYk(A7|>K9VTEN%`)yHr7yIMuE+?0&1GY;aVzG;t;rsTTxWNtWh05T8_Ew2}#g z1)@VCD5{t}H?E{AN=-$E&{IxXzh0JH9>hekd|~P+SWX#4ElS3Dow3+_sj9)Rj#~wVKsZ= zviULfnH8=m*vMx;*|EIMSPc^!5oGRj>vnT`e4FvYy{6k6pjCJ1ScQ|71AqEjV(&I8 zq1)Im7XFG0?($E|1;y@&5k-K0){H5WfNI=ZfLW5T&R~|1dJXHKcFWV2=EpKA1E_#b z#kd6rdUV9`s=YatH>KtzXh16)fXbhsCoFcOI|YV_0cZ=su#66*u?z@4wB__MOkw-Q zuWo{N98>oTWrn;Jv>kmPZ?dvv36tNtKnY_-`bYWH7R;RJns9v=nXYVn2?xKHaa3d) z8-SOoX`aYD!u|JxgsBUM09~EJ3-^MUu<5ahQoPffmcuw03LioH{57ro^Q}|r4pxTl zB3k3yXR*~dv-=mZBQ;l=B;2Rk1V*zmBuz>J*Wg3F*pkoY;B;dNW{(>amFpmN`x6=6 zNGz8tsiIGpHGpWSY38)+D8R9vR&>Ewo&#G4zM3w?jO`&*Xo3P)^x92+z6S{7c!8+T zC|=gbG>|-miO@nt!X3aUU1VkvYC7P#8_EAXKlN1m`W$?S*M!L?%Srdlofpnn3mfeB z>zakdaKBG?-K~yN zN!A)Zz0tIliisJLc#ihkarLi`{~7RUYvkZvSic;a1d-Iljn0X%T-N1AA#@M*z*vq`q_b0 z>_kjev2zA(`NTmjAZS6LR!j~mofi-;d;71MQj=UF1@FVx`{(F*&hWh$TrGNhObVCY zZ1tyIm+;BxAcoX!I&|~P3?*QN!`DZt6DUY^Jl*Yhfq*C#3)Q6o+1DvdnmQLN(c$WJ zTIg0Wb3sB1B4#URbPG`0V)E1caMiI67crCY2#TNFPiGc)P~Y^NB~$!#f<^19@%+LL zFW37V7!T>tT_vh4DH>p~`Exc4ih^}IMr6d)2Fu<{hK_EwC?6odc=PjmW2kGo`H_>o zg@lPB@gd9IqlDT7)MICg31um1!6F9CwBE0m%(D7I69lWvE3@N&2v?di{n6E80W_(<;OhwpAq~P z{hlB<3CDh05VAODgygtWXVCuVyLJ4|w&vHl^Q#eSbvyTFN&ic*_~2$gQAr?UJ`;23 z;_~?71||gD3O$7qkFv2D^IteGN2(Zfs+FgoYA)b1OcOPnpIn@~-6=RPXR>U_>s1}-!tzx=qF9qy{*l>WYLPoK`mA^nW#1D}JaCT}NA)2;&N!sb6Mt>}9ofxCW- zEcA21s00|@YKzvwLa!;g#XmQGVs*Xw6|{Gzm-7R{hOz?Eq?9o+^Ukg&LY9o;c&><+ zE4qroC6iRPLv*)Fi%1Ab_=n0`Dn43Mh5Cwt>iaHdb+Mj+70|OhUyJCU29%N``J9~` z0$1EDRblgZ-XTMD2bY`8bk`<&ATJKkU}i@3*M1etyf|&N#nY!{HCd@%!g#(SBzc>& z)CQg|UcUB#D1|pjXUVadEbv#9&B{(v!wde*3AS?v`w&4ps&pmn_`bj~$KkqspTP)+ zH6?JnfMduaWAMgd8Id||NsUThgz9eK4^OVIGL~Jp`==!r4Gd0P?zf3~RqAjA>s?#k za;V7z$1%=tav&$c&X}DZ@9;D)gd20_9#cmW1;vEoDI(MysKZSsDmRdvL1xEbh@|Ln z=}HatlN|1hlR@KQzujHdLxBH=8GGjyAu{H@$|ASSs15&l5`*L&IkAJ>8}Q9!lbZe< z>i+V*=+j<&B}zH}1>C3_qtR3FXeG?LG)>tV%cM19DG^$u-6{-Db_uS(hJKUK3Gv;+ z@dhZB{;(xy>rcW_Ou&(?BWJH?Zr%fC@6NS`2-sxo_d)*g=V7|fN(2}x-Lr*I*ZWf7 z*-})5DnfTdpcIw?Ae}UY(YF72oye^OiA6Zo5PkrE5)9v<2NM&tRT&OLrwhLVwoA9@ zqw^9?y!SVR?$OE#?bGZapIBj3MYdh^FtuePX``gwOCVmY@SWvO8LoeTMcfU}9@G>^ zf6eH#F@*YTNV^H^1(e>8PHCcrsS4h)XCRa%?T*D3|3!)ULYxqS%po)~j}+!HgNlp9 z$irQ@z_+YF65s~i?~|tH*?R;|KX#G@`Bk|x&tbIgVQ5(?em*Y*aZYp7OjdJEZXG^tf%8)<`*V=}<%NB< z4%d}pN`4}b#;M!~2j&1W`DNwKpH5e@y~P(Z7T*jXhAX9=};g?Q?pwtX(uR79t58FZD&WC_wPE@Z)S!-MBz zie6_GU7xevFD=RN_6ni9Q(YXKbS+L#-9BeJK#%X^QxDI@(1*Kb^#MHqDDnt!Ej7Md z-QKB|syrqmIeU`3PnZbl90WtVjhv~ht zFU=A~*@cJK6HQcSC$@Q3a$IN%vC#`bWYlCJ4-vG3flmqRsTmlDe)T$IISa?ajy$-83hGP z+XgyA6}S^={Qi7I8PHXIzUBMeZ8b5Yf9PNRGIw0yKvA-FdML=>A1JjLTVJ#aF(cJY z?Ds%6!+VdW?r91yFF+FoSwA)L9yu|bB0K+il}&a4&`mN;EjETmZzdffx@kS*l{6T= zl{AcF@r;|0*ThLdLpa{|^fKPzl@qd$Hgu zn$@S8c?e|>7%m5=MRO#3v1s_EHpQH|2`qO#uY$JT`4^t5Abp~N~MZ_(Iw2KQR ziLk0C*KkER-b+xIAuh%|J*R6O9|70=hG+oYNxtd>7n#Wsd3+KIO?ZYW@uX(OiqC<| zFi_DiL1<0icke3;f&KGPOMy$9=NiB}wJLG&gw;tgR|07beJ%u_=Dq8c=eLd`(l59P zy=-lNRz#ItM)3}m&-uuod6zz0l3g(k(!Rm8^ZW$=XlwhB_&cQa4K02`>=L7^r-$c| z1w14&Sj6;sshv^9VCADzAs*3CWSL1mGB1#y1f#BM3n!f?%Qrqbi6;Q^3uvry6QpHe z_w4srg75rCU66@*GYG#1I$8`k&Z^h2MQ*vnwL)8q5(RzF;Uz{q=Qz74SJs!njyt_a z{)9I443gWz46kV>l*ai@&SpUAtDU~aUrc60W|tA&Q~R>(SbRJS9Eu}K45u;L2h&ZM znZbCkaO)&48Q&IclJT{DMV0YYyo$iWYO*w=CcR$?ogPuZN%=;v z5gPP4xwP?qZJ_&*jlX+1=SW?%*M=SUZKur>pKq*3-OoJ zeB{AYRixSzIi<==JqowVMo=+E`#dk+I{iPw$P-%QfEr_@qM?lg6Lryw*(lp;7&nYi z75`8%MdrA$^%~_1yxDGx1`x~oAzs{6HY9CR?tA4JG#td$%GhuDwcekES&-a`13@Ap z`kc?_((T!o6n+ty6$2Eb#D_CNjY$=RBEglQhEem`1v?OtFgvU?kJ^hra_b@PzT&nr zMQYD5SemDa1wz2+l3l|T&b?pPeZ59Kzj<9bn`=$1NRnjl%nat-F%^cJIj_!#DVE{* z-6&aca zMGsbsVM`mUhq$OI9sdnyFS)ILil#^}16aw4f?3hz=&kDwh@SZz{Jy+J3L)Mywk^7j zR>gWs6kE2{x6^Y}Hy3q9Sa;<)D*dx{G1p?3))g)vdTv}m(0=X_)PytJ6O%=*+g5){RU9fM42HCAZJI)g)5>#lhL99_z~DOat=B{C&zr80&49 zE$lF6J)0aF;(njc`<^Vqj}tVU8T;{iem-)dVUYvFEU$Z?vk3c90%C}Cz&kI;B)MQ< z6nZSn6z`@D^H0m<~4@4|CcG}PuW<6bGK~Gmhr)R1E7Mi z9nJ6<8v1%Y4Q-c}&Lpfe%#Cn)c-qPhN0qc^*< zF79h$Q(6~P8k5DJZNSp_t8ALe-A*%E)l3Z3^WN{DV%E`LG0Vs#*4X*497Y8K06_ci z#4K7yItDr>IulE07g|d@Gkba&NnuerWl>$FDZ32@nC=V8@GPy~({?;}W!qvzGwskS zmWjE#WQ`zW(3JT+d;WRJ6;}ZOVUiwxrVy6+j^)@srj+-Ek3%@0;Ew0N|2nzdLBE^_ zjIlEV>c-{7(E}fdTLHSVFRyXol$pggNNaPeKzqWP?Ms4W2|O)^-8t4M33_jg4#e2; z@&eFQG318vECY8&q?t8wuJa)KTB-&4PQAVO)*0D;KR(;l0$v;08!GM~M15!$HJnbx z2z14v>F8X3arT=CXX!}eK(^N5PUCvKTEJhQ+ChQj7J`Qso%lnJngfaNwDI~};as?E z!_qxMy2O^bpM(zy40(h>9=#ruL%3mJFmXKcnt!>l&%{3=)3R)!lC^Rm|WfzLXE2CaAC z^}AOrBUuZ(7jjCv0kjE3&u*`jrU7KIMk=ZutT>&fLIdQA7YF~#67Kf@jMrMU`Md6QYu~oo5=6p)Mj+F{x z2*ng|g%Ru^HD8|I9S=F>@XD!PBEN)c)6%`EsX_6*jKQ5|9`korR3%ENlrvov2$S9| zI%6S9y@i;ux_hlAB-L-c5q+y7DoU{mslvN-11Z~YA@+JSNC#SLtx=^)BEv>Gk+O6U z$Kuxd*^0dhQHS8|3$0JmV3}K-HY*_I!MHu}XYl_zdWRNDL>5p10M@tw0OXdrj9*Q|C9Ab{k~tQ6A^^w*2hR&HeKYh$dpO0Vk!yq4Ua{zk-~%l6EOZW92@rYP+d=ClfxB37u@(jRPlC zYo=`g0KI!kB9_!u6}tVBbPGg{3s@HjC$e!~PzMnxh*!8h;PRgeET!@6X*5M!TWhCZ z#r_S=x{n>5R5$KSaPscfQcj$b$k?=QguPL|%3i+d9j_B; zHX_HHtaH>Ls0g1^OP)sFd);VU+$3wINyubWagfssH*w@AdPiF(o+r8qZ*csd@b?c& z8r|t29t~?%6a= zquvArVA`Xse5>}&)_i+kM$)xJ;KBYihbm5o zzu;S#PMDj2^WACe{Q3iHLz0qv-UBDx6GM!ic_{S>p8IQ_3VI5av;1n%t*TJi*6r9| zrHN>SzDa_!=)M5Mf-v%ODn3w|d-d8{8Dwpu%K1D7qB*E5cJeIlvmQvCVl_dSOC)z) z>vy95?zp3xp38mmrl`3!-zQ9$eeg>ozcE9rLAk4T1-PRe5!DD?Rq$wbEq;U2|(C?0&tGvU+)O)%ZRglp=e7%{5chhHRT|y$awD zku)oUI%>N!)lU|7x-1S1`SAzxMa`3V5QpwP+h;H_J})czYlm4-=keDvg)wk6BwUqbGi(gcCZC2_f-DKw!ZqN?Pz zOTAiY{Bojg2bh}z+pCgi|GXl-W}ql@QS6k3d)V{}Txjkpa?Q!Xmvw{#`nZnoEgR46 z$>xAX`_gJO;cGx$&`0J8xV4l;2ZakoY^<7I2*Buskispe%Gii|J)SUSqL55t5>eo$ z!pd9MtjklVu%&&S$M^ADSec%sHIXlxI&&Za6lao};_U}Y7)9|bmPzTZ{X{L-yuwI~ zGuvA+8Cpa1solJiN)nqOr=+CV6Q!#Ol1wCEbgOHDUec*@1uBY)fMkn|CnXhqZW%i1 zdy;3qKiW6CKw%lyhW?=yfMOugw^Qc=W{0|n6t_~26|rA_S+;L}0p@JB?prx5TZH7D zGbAcotaM+NlMqkNx^o*ajw(5iIA7KbCAifRwQJ!wJ*sGYqX0@lg z9OoqeOU~z{joh6*0Nf+R9$OoL) zuW@}`8Tnji1`O2A6vV~D1_YFo8Wsj%;${0%ek-0DW54%m@!ShxW38~EH&x4`G<=CO z@g#Gc29yux)>vEj41=>brYFBn2W)p_Ut${d(xK@thF*^}zax2hkxi~-d*2JhMO!a? zjGfu-nxO$M`=i|r%ce!})t0}!3>HA2)kUj%H>r2U_&bzZ8+P|SipJr>P2IGlJk9O;p@oQY=ZLaOPYG- zPscr$XHxAPqGw_Hvat+k+3#DTTd^-hNuwbNYx${*DU~6A0$?GFT05$c`5q1o@>u8!nuAyVXVPN!^5pQJo<_FE)dlR2m{CqpRX@!n)Wn550&uqKi zaIXCDjZG>t@4diA9Lcq-bq9R_O&syip z&I9kGFgoBhj=H3ivmotxI!ngE~)<-QVg-eG;>@C~|^Hs*_u)dlhN8}K&*g4-5$ zD53%fE|#!a?QIRN``*71-){4tfQb>VBHU&>?Q;?_vVae}6vn`16{^j!#|$7?6AdU> zJ&(R{QRaTD8b8&)u5Li{jh=`5j$iHZ*}ywBs3xe|XIin|z++2DxFTo*Tv~x;n#b^f z^;6Ro8BtoToO~oU$P+j)?}R87Y(Hlg_ZQPx7Ik;QW%x^e~(GI*Rhy<-1GrVTq#5$}m zmd%p451aTZq>RNOhgt`WzW zn3${}FK(`PHx?K_euWnoCy?(>+-yb)#x7-1`Z{%_N<@nAITGl|MKUi!RX!H7hHaNL zM<_g5(vmU_S=K0`19%x8l6sBc=O|ewdUw2%X^k+Yh8kO@I92m`ns-oa)*!@B(AK0t>LzCZcBzI`50P{sebN7ETFHK+yFu;e7@cSpn3|3yfTI zxUOuq)p7PC&+ySGwm#@?nVc8B%+t;sRB8KwVvo*YQ{u*lHXj_C1)+w&O3!h z-H|vlK*ZU0^&PN#wnTo{}Y+m_>N=-$x&tkHWl^lI73WZgMZbynRO zuTCbwrOkBpIujizA`RbDZ(jBiX0C!xWFx(9Fq(Eh?hxGgfY=0R^^P-XjDPI$I^- z8xWL^P@@k8<@bbzML(^f5XRAt1A4bxCxe!v@H`AB{rJx3@L0@I_bz7R$98A-3Gs(8 z5Q!1OJa0$-k|`_ju^;hE)3J=d^vMw1`B7Gg?9Du{}rqDl5S75F{g@W79ZEwQHo;oTiU zwl?bHlDV)7ddDAsr!OdMuc{Z|DzJ);;!h`yK}}$%z_dB~C_l)O1C&!!=&c~Wp(voWdc!)CPBljeyT56DfL78mR@uDCRC5|VOFl@-ZL?r?A5lE1#)rGqunt^B* z|6`Kj>*TgcJl2eCdy}n;_%1LQ90DD-=CmP6kicuEAn}B z6c+S55i^g)RP8Ow7lUMox!NHdZIlXgKsJh?h?=2zIHr4Ov%C^?jL#zHLUB3@J zoJTfQXR~){C@1KtsGU;VA0Bk8`-R*Ue^YDcuss4G&_Xdz9ZmLo7wjh!zxhopj)uijpWSJTq$7o_dxYS0==%6v3djJ%7>XL1xoYTo8G|or2#&IwId-{MViag zFY>EXTszx;09goRyU{MBNdkU5?TT-{ohY7fxFZEKhK(hiW0j#I^Ib+mdou`yJKLUV zEDtlk{*cKvhS_ybL2S+{=iYg>E9$u#c;`_C-WVrR>-mxmeffw~>=e{iv$M z>9O|0&SSo-g-e%;vu^I$QoG)ezNli5uu-CO58w?=9g7Ep5tC`w-ndrNldTV2-Z)DG zXzSJzS7B}20xSWTP_UsTT5nU6rmgQ|28PWCrpmH8JVxCfn1ooa5<~sqysfP}xW-^1 zd}9-(11zra6Irbo_l@`?d&^VI@6}}rw0OOkp+e(`AiT?hCgcW@G!3VE=vaoVrQwq9 z^%)`*3}Vi9FulG9LOzODWZs!tI9XgEpUhWv6zCrg}8KvtY+ zptj{Eq`2*%+tRpeVu?k(=L0trfyXU75Ck)(cZ#}Z|Lk6jX0`JU=$=ww2;g$e*^JOi z0t|Xrz=P?ccMfk%{0qBYflq$xx#ppoC?OQWg7E)%JN8TMA)dc4de{zU2*s_&aSSfq-i4rG|62eZ9-f z2Y^Gj05s4Y=fgH`&bk{tBX0OOIe$NR>b6GC=6NqbnVf$^Dgal(Uz*q+2ohF4Y0v%2 zl&o8SWmM ziX@+74IHaK#JSq}eOXSMHFO9R^64gDe3vLs)i z?8D$`04-bH`_GLbs2M!>ee2p8d6k*@L{f|fW1P^09N+FqXIk|}W^(2V1j$&*isc}k zVU*&RGsT}=zv@P_76gm);7`_F)h`i|;1@zf!ELv-`PK5)$7tQbocn1|V(; zILXM}Q<&Gac1z&+fU1M{g^(q@OF^kLa0F%TjbV3$-P?hn^;xisX_?6~Ev!!o?eJ9} zO9nZ8RR*y4!2&miyKRo1#R7lb(Yu@5c}|Z*M<=HMMz6RS91dJ$w{`qVpR%bNaO*_j zsnN4=vjv^IVP7{u1YAk}+ar#+HPtvO%K~$s0C_y>NL}*Ijz-*xs}VSEy05WLnEnG! zA5s?f38B(0au97fGxHL@oYEFmG}MlQtVw!N51tx0!OylB_;wv~X6Zz{8QQ1M0~0e! zsm!_`a4*cz&&AsN0(k|Gxf&Hcl~sCIRi?(0E}Vf;Sx`NflJ{G6?OQ_5?F#V&<5vYT zZjJ9H^z~zeH7d~HOXL*_n3|`H--ayVYz$!LH*eCzp1JrBOvO_*8L9va3oJjMqF@3E z77{A;=Gnf}dnR$D3a|%~SYF+T+q`~01hJT=OElE}Q)j#<+>c!NOx;Xv=v;oeNRQF~nVgKGADg5bn~9~Dqm!bMp#3j~ z{vq|CSs4MD0s;Vd{*`-Z{$oQ*qQde@A~924DFqAw0(-tWqznj z!U~(58l(s}o;*tPMhlsWGZ!#@NQ4`y?+T_&(txju-yA<`essNb7PZ9}H0IEqwQvn0 zzTTp6Csgx2j8m~cx3VXnc%*;@w6)Xtb5V7dRLa;ciBOjP9#(!`f#Pf48tle<6W7o} z;fUSwz34=T4oZC?IPxc@5}luWNpF3!PX$z`&-~r==<02L!IO4bd!xggjr4kQyt!Z0 zWNfyfNLgbPp;!gMX=lO`IyM>*%Yw{%cBv+az>iRsNj;!hMJYe?b)xafL_&M#vH*9#C>XBvx}dFEY9fzy2I95_M`$T zTtph9BMRGpMk=%SWAhcD^Al7-8W0Et;NNGe{e5TuyEF&<j_%&p4u)>lwr-BLhOVYA#!lugjI2y7Ol(YU#x5W?y;qv} zl1nUohNZ4=#6I`P+kC8 zuj;GcIPvB=zCtG4VuF#9-sfUJI5#O)2kJ95aJ>>1cIy*$d~zMXIT{R6)6xe+6ai-g zPsf*KN@8#@d3P8Y0}AoA0H=4K+d6sy(~dTUfj~tmnS|IT(%<}lq$DGcjmS{2(L6ea zPwu!oTz)#*+cOG);ecI(%<*UZCB0lA^Vg9V;c-b?E|oUA}~?p$9KEOpkw~v zPxMdD7xa67LuE~ON58M^X`rmEZ1wxCGp8@yY5)Am{ddG)n@3=H;L9sQlD~;k)MUu$ z66NSP`r$;CXsrnTeGmrK?)XR)eH8>5mTX~CR7^923@h1`nVJ;L@R1n>Y80(#Rdg77 zh;SJTYyuP-xhT3a1zJ=*I*vS>T2e%M5DvO2IfZaY&?p#Xx-tm4tg$&m5=xO%6oi>J zTnuQCq^JrDE~bf$u!x^AE7`=zpE$U(zQXmY4rK~bP%Cs(2!M6NL{?RtjC42!gtl~) zNZ6wIh!#r<0x9CwRTK^;4^*u}E|V^Zl}ZE_NxnP&haVln(*!A1AEIH#0l6n9~mNG{yrnGAJ5I z9cl{DX__(Q@S+gKMlY=x@iJCB9i^CXal7OlhbDx9nt?_)xgvXG0sK@9lJw*tLX`Pu zx9lP={vG7bocxF zctAvU{-@7hVE3-JvcncoyerUqo20MQ@Ct$eAi@~|aoYzG2_sNb^b`Wy2KYDHGJjp~ zthO{*?kCD;2nc}p!nn={hnA&2xf2nbU+}gzJd#}Sxi#Jj2XYkw5RH6&eO?J57^Ewc?Z|1vj?i6HyGQzxr*9&V-qNm0k(o4v4&M zLe%kd7ioSMRrYsByAfSqNJd=qco_wzLTH>oE8yJ2Ae2aMwRFnq>(th*=tA5|qICmxlq5Uuye zjpQ`H^Sjy(%!(p#s)~1)v>3=BMaA;{1>7^{D5`FwU-Ilr1e)O&gK$`ToI2if0Yrn5 zFnx1FjQJiWEWVcvx3EX1Dr6KL=n?hNq>eI$ea#+Mkre?FeyW;eELg#T!4XvPMHR23 zNhF-lGRNR7x@ZFtrSkb3|9E8$DT>0%#ar_UF8v!`2cUc1GwNZqxJ|S$g5LVVAlg+q zVq`x1gzYF``AKi?{0MZ=h8_3ZHJw^(`(>^^YTnij%k96_ck12O2Zf+blJ9w^MGlyy zQEP?xe76-mJe2-jV;RxJICE%S>!WGavyKX~5JjRE!;E86zZk-FX%N%C2pD;{qxYe! zSXQ_6@LWQfN)bf6uZY2(KYrx9W2yN3)!C#uOeOPw_V~C@yzCs`j5Mt5?*h5CSNfbi z7*Y5_?uVMN5{28nDK8ZyiZb~+ z^;Vy!x8k4Chfo0i-R4j5vMVEsJ4s^OQoeopdzsG%aDxh(;>s^|_@Z_giY|ewb@g$y zJ%8c4-dbKb9b(S^2Nj6@-CSv$*-+eFUOWrfzjZiwu-|B_8SIb5e(5-@(Vs>9(eH86 zZ8=c471Om01z=a2f(CwU<9!9d)zuWE?|?IqLUh`v;Kvp4oXEj6Y?b zHH{u;Mt3i?%6H7d#&3sKeffepv$lQkyI!E0eEB`EkK%gG7uZos2*b!f|8o1Fo%Z0m zeps*oZ`s1@%Ek9^SEgEe`PBFDi|pA9zx~Q@)iL&`cv~8Ndcu8vDs59FHrD{&+rUH+ z-84s*?JE;_0ejrP4;(&v;Zl-_G?G)&Q4UiW=u}L0CJT5W^B2A_S;|o1dL<>Nz|Xl7 zULI;cE@rS?LlQB4U&i^eTOK!~rNuw)9u2AHz8}}Hr$1EfRmSd_G0ELC07yjbHc^Su zLs{22_=q$lGhnc!RAB@$7;tedTzM?u%5iw{IHasATtC4qJFWwy#Q05!KOT34%A2_a zRDSdHkuVe~VnmqXQc@mKDNvc%HDG;=&{JvJ<(E8>>Z)^YE8`jf2g=4t(w_s_4&|vSzZNZb0_Qc*3B`1lw4Oku22J7+E9WjnFaK7 z|JJ>tma_OCNj~qnYhX8)73`U~2fGA;f0=|EBbYmUWeElfeZHwKC_r)QG70ugIUDwt-Dj{f!WV2h*`L^=Zfkve3+2<|<@WaH*e@=er9f_mH%4CTnv8r;73U$5sSZj+|3D$5h_H_|@g&56vv5 z{k5O^w4?t+D6=F8o?%`H01-$I)~Hkf(^%7m6nMItQu`R%**fkN@ro2^c>^iJ>27VA zXGsIU=SDd3;wMvzfHHj>kxnlZK+Ny1N`Ue~RreO*k$_x}+;Xa%r;XU!nI$sJUB3eN z2FF>2SM_NCKYCx#>k4BO;F%mhTuHwkVnaH=aBLR($?AL8Blp!gT1WDqGYn=0=JUS$ zpKjY`qbqJp`&_y{Z>qhtq+U+FDzS9mQM7q6eeS2WU9n%xTP!VO7lT-dpVa}cV9$R8 zUnebr{%089Y|v& z-ZyiKwW=-fuf@|M;CN<=?`9?6#_IFTEecxQZwL~O=*op(;8JrxPnh%-3i`8q-e&TE zFSnbm@U~4@9G;EVbXZ+ zzfO;LZ*=1|5Poo&%cE3Dr(6vgI?0vj^y{ydHpl+5;kUw$IeoBBF(a6^R1x%=MH=$w z$X^D}SSLN(O6Vtb#UxYeM+*!-lcf3iNB&vRlL0fTSXq<4NVl<;ESgflsx+k#=~0_J zhF=54y(F-pYC5GzT?Wb{nEe*al5*}JPx&pjT(=<%mh7NDQ#m?)Fl3beKgusVkXpL+ zrq+D81Taz2;=(D)$s&I%!Z5HzU&MAj%as>m(T#okNy6YbNL9H{=vb0`UnwZGop~Zh zqr7%7Bn)8j3)lPg`eW(@1(FN&r2qvbC5Z?_aELjwe$y2GNCoj5@+;tacGU(!K6$gk zA%90HqVQnVZ3xoRu>bxerB%1$$Z6e4u7M+Sg~pG*44;R7JU%hjG6k{pITf|JAc8Bt zRSYT#G5HzOl(Q(lbh&Mr2~WKYf80FF-0$S|RL|FIjTk8k`9Mb>lM4j95gji)GC>M_ z`9go*R8O!xg)joKlM5p}fNx#(pm_Xd6Pv`Ig+CKH@ag~xH+1=E>Sr6P?N7--*0v+% zo6~Ct6OCZA|2bmaEhC$}=T8wiB%b6vfmxnUIL`7F&kw`Q|9$nU`%GS|V zt}LGOR%5MHupnYs1_iAH9V$j(V5&YTOhy^|_C;3i&eaCt4i%xr!jdE~k=udOC4ruW znj*DzyL{)T$II{bTg>!H3X8q#k%&| zi-WLG2k})%U(q@Z*ahEcyl!nHxnI$nM4wA0#R#2z7u4w3;jh8G0v#^_ zua5u?4;dk%RCv4Jj1^%`dYDiTTrBgtUGZ1>rA|2?-_4&mg$CBi5L7%9s#>i}b zcD8u!>zCqg=yPcC0z1Xm;TCir0W2+;ntJ>PQtWhL$!w1rwVR9L}Zo2%Z6|ezt#1FRs`&C zPv4;%L5+d25H-aQB$qo8o)OY5bm&3U*g+UvWMdl*SRj?2}U221VK8H`sKjr2)F5Y6ywyb+J_&#oLuJb5M^aiJ}i*nT7& zwUO#(l@?pgz16L!-8fpAzB=Ns35gXzwz!v(>+;WG=66LVibFpe_h}ea;zEVi|G1>Q zWua0^lHsxYfZ-Q1oKq`Xf)eJaM;M4{!<4X)L4qeM!&)tMbohMO-2`L;AZ_>^1T}OA!!hH0 z?pG;y@{2y8|G>EIDgq1!(@`-bo`*WBS5vD;U8_$f+idUt@pDGal@;VGpCR~i%DEfo zK%juZk%}<(BR`Qn@9`{%JmyaP5xdcdoR>W;7Vb_pI|C-@UbiH!sCKX;_iKF~YFu96 zRu$$4=IP`Q)+zX#b6fChZ>$p#BSn7Xg^|k4@0!xF;MFc;ucpJEbE;i2&sYTXz$3p$ zd=8`kr-@q*kJJ$frt*_JIpDB0dwErVa8JYDUwXEE7p@pW@(Vt7^z~K-Tvd&H{xCqT zwNOFRyESv`Zte8_D(qjq^)Q|20GzpE7OPtdLL=fiIA0s%pzvtxk)-4QZ5Z|q@UcO?mYO%jmA&yryhJ=TF0^B;t9(TbT!Pe^yhvM&4 zR=fxTh@-!M2jMoo%${Z2*4PFDk*F#HLc%PAQUSrz%L_@JFAQy7blo5MyxnDUe%bmT z?JF1u;x$EvRZ5xcWYKGiFtmBGRru_sNSO-Vmu~W}ydYlk}=j8l=UB z7qd7bfaz2vpIVM~E#hf-T;#ztIE!12)-RnpJ9Tw+EcCkkKff9p+8l+vuZ-)1aHosY`6a8FAKUjVD3(k`%{s-> zKOP`2W9`n+oYfEEAv}Q3r(jdBRI7U7{Cz0r<$=Vqw|F3>FP+ny77VO)oUO2=Uiqvs z`ni%|8Ag^s-9BF88=f)>MobZWe4S}|yo^_Oe`)gZfK>;pLlJoHzZ1^y8lxFKYE_l} zOX~_$^Et%dAugeC{esH25KmwOFDlGiIVdp~bpF*Q?rBczkmpKW@TW54*}thR*YkaB z?c&omv;JMrK$QB_@1v4^f{ZS(+vByuvT}8jm`#X5l??8#e)oe9WPVt-4wI>!_LxBH zMNQu;rw`I+9&rpACsM%QPt)Uq!b+S($Sr`KwqXvScB{8VJ(e;aeEBqcR?AI{+DhD*o%Zpyt%S(FyGB){_sa=8zH;9|7Es! zCVq5f3XUTx_r?~vexOkpZ=P8U()~f%;+-8O=|Xm1=~bU+SDdHO4wc;dx^CRpYvVie$H?!Dbb}h@`V$XBTC2E?6ftCdihWycJa3A zKuMH35_5QZ;*^2eN$CacjbuWL1vphE!=DueZgdK^l@~Hp%?p|?qpoeP9A2zU*?*&i z^p3iW?XoDb7nK@0)FcYMHk-oJv)xaIuCzqf!kD7`C*BbtyVG(2p6s7X%Qa{(H`ntl zoHVp1^6MvCP;qQ*b063>@Kz8!h8_f!i3!1!Z7c4f4jdUQv^LSpY|Fcl#qLg=^&18ei#YUL5VX8q=}`~I zdty7=m647#?iX2Pd`22a!K+_tA5Xo6d6Kq-d8$_yh^8$?0RWgOW19z zR@~Q)4I+wl`El??seH;Pe5jYko&Ln2cn7C7au3+TJAc_o{x1J+{v2S~K&f+MUa1JB zXc$hxEZWP`8`v%?W=Zkfjgx*KR7S;~7@QQo#u(DXQ3?b1SSjjS{3TDL1J=1$5n)|G z9~_kxx>fb%m+BK_u(#7e5AS1E@0=|$z~h8PnoZ%FwA4oNTNWqlY4!8+vBsi}d?^Y+ zj;!1tBVHF=wPU@0*OX*7h_XaI)Z~w7=gUZHGK?EItykQg9MM?^Q7^W`9ynw2`Om_e z*8+FRtcSHTNMHC*G2v`IoWh^>rF}tymZOO(gg9&l@JoGC0tJ|(mn0PYYJ_>ME`)`B zE77!@W~+ zKH3(kj(oXC)&BlCu)-3*Vb2Bo2<%{PxHs_xO{UY}e{Y9oOq6j1|JKI! z^rU@)TYE|Y=AYtr`8_=R~~??|CJz+=UvE+I1f7)IJ~{1!VUCiL9l%nG8h}D$RDg| z#yw8K{gORqGpa_AW5fOWq+;{B@J9GqUBc-J&_*zjM+?m?7!ImnDZ)iyX#0Zv-_@Z0 z12)|+`2r>z@DEIu(N%=eb+BLQ6ijxs2Qnk@q83s&yLI4!Oa)8J1{VHTLE}L4q8nre zql|{p=8_s@hGuHjKyv~IWQIHi?ZyWIB)+t=5v#P4k@xcjtU=*5M1!OYSgf`U*z~lt zoDr+6tdX~UDw@`e3YyjrAsU*NLAM)3#?mAV!?~!Lvsz}95xFsXam1JQ24G?EtxZdMmzPf;B|_F zpr&4R3jD?u6~vzUYAA+^Xefq=#+SNDwt+C83k+~?oas~S1rkhZ?1@li(v~2oaygw~ zey4XH$fq?NG`M3-<~b^(6glD0ka#+MZH9UVJUZ+$l*VH;7>r|Nnry+MscX;-E;v`{ z{nUqSa5;47T0TeN(N<9WS-i&RGEhnvs9HXA;fpv>e0iM4Xg^S;wj4XqD;caJ#FRQI z%p%3_=VRDLE7IWz3eeSK7?v`aDk`xc5!+om9}rpfNl=#?pBpxCt8Xs>caMygAYh0ZfPh{g4OW67WqbR{g(` zvwcueRWmg4RvlTT>NL@pfDdFJjOt^Lz}T=yT?2g$gz*qA;2=1rd&ni!pi4xN*~Z*<{IUKn*C-ei$B);ki{ z@aqii8w2W%Et)R7*bFc#4AmN3;`$s?@xh*A2h?Kb)@e&>{G~6sP%;~8+`>iPGwKj0 z0bNmF*r-YU>GyBC_zC^#i*FfUT3^_88uiQw0MXDp#xWGX=~(!Ibxl3fyWZc(y&XMa z1HK9&SZCC7CQyk1DPP1? z0D*rN4V4+dQYxVBH&Eq7=p49!&G~Ma3N$|sWco6*eGqEv%E|Q)e*moS=%fOfk6Laz z=F0M%kYZUYQTQZUYZls3Kau!QO+;uZ#w50+RbaQj-w+IYceBG(qF)|vVNY^IyeA0Ay=R+DEcl5oh0Lz7oLP1d2 zc%k1`hXDI9pXrn+9KJ2_va%2%7BEy8IEpbs239K1Ed`hlP3bv(%5gG^XF!gwMW?pP!$v z;i)#X1dpzxX<=#8%H)T5-(uE_=B6jbM`G%OW_k(0C-x0VQl4a3gT+b+6aoc;9f)zv zUE#p-vCbA~BfI865^+`YBh5&~F<`yQDZ~%5gwvFRU9fvQ@A*nf>Q9x(vZGLyoiS9* z57!vslbz5P^Y`JazFcRdEIppPpE|o|W;2r`m7mTWtC8m$3+I?3g1W`X-Px8HC`V9P zv7#EOEqdsld@aqapCkU1C5~0G_LF%8EwyZ0JB?cYyA+%1WEN59Pxjz^WNTC9WCVD2n|fuQZbA9rvAztzfh#G@1;8e?v?j z0M0DOBr;Q3LZUYiCD`yDB}B{&KW`S9I~NiZ{-706V#Fi?j!KWVq9CFf3{D6`JYQwm z!2RfqiZn|y_tYS!9vJZcZ>1rY-D)f*IO+{GKD_OZDwhZxhz!23J|PV_>~<8=P&RUI z?|2pAtXD-(hjVot@z)JbxkQ#6?}VYNA! zpA#(I*hiVXwcR8tYDScX(V!=;KJT z?~QMucu#PCpsC>JU_^5Kg(C8m@QIj^FxI25pLqv8T`;Lz{A^@9h<-~vs^S`tDJA32c-~r#Kp;%QuOKd~<@(IS+ z7c`EI(5(~N*M6YX*x5PDbq$N$0p(ZVG;w47;v-;RS4Y$#gkj^+0oB7Ox`1zI{Sx^t zsC5y_Xxv{jdh!f&(74WZZEx+`*7jFNY_`uraRbu<{(bu^po1QUIiz^))TxSx|Jvb) zP&tj2b>+ap>IN<`CUDbpzw~&axYWh1BakL%hn-`=*KYpp6NK&_X0|6Un~4$0vBO#^5ekEA;T-+MScr-&Mfc zrDtdFENKJR{&V=2AE~10g~M41^89QK!BKpX9Ix3Xs?qRPG65{Fux*rhUIA8zCh>Em z3pfDr$RG-l@Nzw(|JKv*3;6T8rw}=Q^3ZKG^mnJ9Tpt#tmgVW&>a?{jxZRqany8Y) z=eth6V7m6<7o-WL}Uk=?bd)cAPhF{?6c!Y?8!Lc%g9KFBn(=b-)0IE1;XOL%EiwJR=6GL@*X5?Nzj6gbz&kE zynHu$UdBfgAxW$sF^bETBg%U3@H(CSdhVT6Az54?xm_TIA?+C!`$F1J?BIT}#HBK| zc_qwpyIVD4s9omTnw9%!3bb2XX5`Bjtehi z<#`--v3SR-z$x-JP?5C^`gc7%A7o-lo#Wk@Ggek6H}DW0JeU;+BF6#++n|_rYtz@b zfFJ?wYu&cUI%A8GV8ZxM70Nu73^zs!?Wq$3HS|d1hOuFXSv;(WjIyg~Uyx>fJZ94_ zSE)KB1_lb3s`T$ulzGMGU$#;Csm_}0TcR>7pfLxnc5;XIPFi;pNEc*QL(1(MLt$c+m-J4L*Ps#ijA;O>SqUk-TK%mg) z!gj(95E2m3eKfx&w4H+lM3mv&-wqPku?Dzq+^t%CGADgVNoY$K7UZwV84Z_2U`$g8 z=c-cx$wlMF2vYM$%-Q-oF_9^u^r4Jt2$12N!`+qxo$8^C6fo2hsYkL*?5`Clik5@S zdsMfb-|4I%$A?ZUetBi(&uSPb!$kI@!#uz27=wm5K)lo+3y6gy`4+8$Qi`%xh`hoM4T$nj5Ei@oD?gA3nQ zi!&EX16OsviTGCwBLbp1-;ojDB)Ip0Ru@E*Id%18QTwcE7TN%)4eKegADu;;_q0O~ z;0q_*6NYdP<8GU!Pb&!BaRfuL=bV4U1TKzG9j2>kXMny~fRPCoe46JAIkgxS^a34I zg1aRKp*M3qX2=ieUG3N%CLk`C3xU+){o^tYbA3TNuDrXzaPWpDQF^z~&+(}jXAjYl z;bt=Z7vi;pJ6FfAZdUf>{?RK(*S4G zvN82SqzDbpKrUzqDypWM42eHFrl<+q)*xcqO|VxFISZ9|_zhW(2~k5sCuD8ejT{*c zake|QEN0ivuIhcb}!&xg9 z#lt*YnJ8Z3J^T33JU$5P`b?xih6a><26)S+JzDiLXaqZ?Gmg&>=@|S3CUq; zahY2oZ1`uM3Ap#6YC^{eY~ZzLFxqW@=f|h|-=q z@cZxLe+n9e1eIIImXHT$W8$t^9H~*J-uvqRGXB|L@3&+{uc=CNzor&RW6Eah#<0UB z&}(C&Es%9=vjqa2c~dW2y2E*Hrjs{NDfUYr<49J8EVk#r-bkP^b1?az(Bf?415j%BxX1z>Eqdp0$Ch7JwmIUkB*JmnuFFTj zqlH^R8l5-UHa%z~RQ^taxwu^Z=YG*voC~&e}wO-jw{2uLB_*w zD2Z3utK}0?-#~GC*VWP0H)3pW{pbpEtp>+2uO5c03htdY#$^SSRfRC}!6ZJ4|sji}}C%Ye))eMkTuw7ts4Nwtco3C6A zP&>Q=-Y09Tp&t88OgqwdFr2#ePSU#x8r&cf!cY<+Lcq2|xI*D(Z0%a>Ld|Q-bqAWW z%3v&ZhR&{xR0q9Aw$d%FqcWtx@Zv8&HbC7ADEym`DBVl!Us!naPLTh17W^*YzDupwy}g; z&)lmnK!sr12XV%lnELON_xCvyD^^CH;{lgZ%FexJydm*Ac3nXli=5QLw&pmsyi{Vw?PKxVx}=n{UQegfQ~u!zz07(>IlfG$Xr1DiqL0sM2H|uFtyDNkm~_ME z;p=l9U`6=tUf+8+J>`UfCx$;_;+lPym$oE>RTM#^Xz=(I&@TeHMxs&s-E5-qvFuoC zhXV-Q&Fa)cBcx`w&@nV%#-Be z^ex=*I_&;Ps@q&uumdfO)KOXqNtL?lo zQL{WPgA-LNyXHvR%&MV0zbUgi67_aMPsyL4D1>J6D&U|&%kv!18z}JXmP2nSr+On3 z(i+2d!-euCtCBXVhhd_cRbo#F0(ZzhB^JAUv-1vURkuc^3>TkwNV0y0 z3W}gyE85D+Z%gOSZgxi22lqwzDz>8m(W{ck0LwcQsG0Uxwax;F2h7>>AJVW<$Z5Vm zYs+F%ID?iVM(FWKET^}&QngAuXoeV+MJ`zZRH#9o%NhGx;^=pdqWVn66RGqTPq8iX z%C8C?+}Nt)=4a&;QAoewSY`!ssl$!3v?5@syAaUfFhkuQQY10n0T{|`;_jI#_d46H zvDr9UkD>)0OHwTeTp3Pi_adNM;N@_3M`PLVx|-#ev;Sf!bLcbfH0c&qP-D9{%UeqR zj*M6Ibw_}X`K+>#H)YC^qh6#VjENLQ=5to7u5Zkeu~<9|Je;%tCT0v5vD_h7$VgSr z_%Xq$(9xFRcsIiNj?3eRWOVGwwzoeYtceiw>(f{)!#|ziY-I6@m25qIN%P$)d(N-> z;8o(Cop4B}eUjFXq3ct4;iK<9OX?liRKy8gw6Y zIfl4XQL!bR8W3CW@d&%l6X$-%q@Q#$-%yu-=$XhD(}WyX!XU!TGGi8$kZeqwy`V-$ z77nXxIsy2RIJfFx9YpqFa%d5ygr<#v19#GsNy!?J&`hEeI+PSO)>q0W7X>-?Q-g~> za3;va;XR@m?4skDa>)8GibU=jYxrjt>9v+YkIB_kxz`En)^UoTw-O+HE473mtbu>T z(oGPw$~3l+j#9)Rhub3t2VUB~+pDGNbSP@nf+{1Q5 zQ(VQ7{tVCBn)!01D#v-*a#kxp_rD=6<^q)vMm>$8fS&Z4JOzy|JUUz5$v-CazK?p_ zm%VW=dJLQcq9Fuf&QhF1K3~eswDBTzrV&oWA~ngcwPvFrvtbqM2STz~iB#swmC-;t z?W_o{=@^`}XS@i>^6d~N6Ey;nHkWrWD-l8t-BD!ZhjDXNh{oCFVl8)zF7SMQoSBhtH#7#}@* z?%ZxxC!2&t%LXg|n%Ud54QWrVQ@HMBRYyWjsTa3PRUhL0hHWj+ zzvs*yulnWuS*fJX3auoem7&esj@m-bL;jGLZIBEBjtg1Z7=rI#FgdSncZ#KCI2caA zdvh<{7w&n8su(STS-*0a*HUPSWAwrK4_5RsZcD{`e=@8}cj1Eq!XptGQj|336I@2k zrHnWh2{%7+S}ay=i-$9mxApbadk)c!(s_ba8;Nk%&>Cf1YvnzoeaP(#6YuW+MVy4< zKV{4WU;+{}r`^(Y4erqCtAhKMO%(Rgz&J@h}`6GE}Cl4E_?jAApEz!oN2 zE2Pcq``9$TtvT0%)`J33^+{a)vEyprFRj|zE=@nY!o(lUYTpV4um-i=<&0tzMn+Hd z>krPhK*&`S+m)Evb9D8Z(cBeIxH|+@Ny6VnMO^jqj^PSJ;C->~XoB*F*$OIhTJqG| z#F!RaBT9NH>7;4u+-vP>gD}x-gcG&H$c~+3phHSh7-&rf{G5o#<+dc=`1aRx(QNfs z5vBz8{qk2WF@on%_oEI05<(H1(K8Qer-?sjSqD4IK~oxA;DG)4`uF&Z(gG|N;XOSc z(CZEyy+3woD9^Gw2#Bq~@ARJWDzrHDaAhsNkmpl3WG$Cx3J2M{}XWGYC%4_KyiX>F!5_$72Rg2HzYr@v8+HqvoJ7M z@Rh>Sn{&25`qWPo!X;*cHs^*x6F- zvZ?Gn&?w95Vix`h0wC)Jw|yqxVhM|%1G=L z@jH9AHsqj(OH(Y+N+-OK;w)wvy5cvYq)RQ0zmZOB>(ETbZ>_+`7=pR`jCcQRB2@Ju zwKC3JvSAhcaqOBB>n27U-P*3P(e_4nN_Y6uUsdEx%Dj<*yYImIP7ao{nvd^>s zeWkl(J)#Ew_q@*zqM<)SmzV_wb|ibTfvyDX{&(QnH^Zm#J$LF`j`S7Tu7RS}#T&=6I{qa|=Apm0=@X!%JbjMczb|6J6Q< z)E10$3WWcRxOg1ed|b}Yfl9-QpD&yZ+;{vUM^j;o@LNBFY{IXQL%%=v40Colo*_iU z^zoYNs!kmq{)buB66FP}!hnJq5mB{+j~5e?z`;>QE41*7BpSd~EU(NF$u!VoCiS>6 ztzd>POSvQe_2X69GP=05lr_FOq@!#)H!5@kSl(HCS1?IzSwvwclSvR~v*1kEChTmG zNM1EQ$F!2Z`2nE40)6~P|C?-HfqiM8f#2`1z%G4zr2hW$(bXlLZpgnLK*xK&NESAe z%Dwul9N>S+n5$0U?v3>iqILZ&aO?ZF?I*DMwZHVMVHaqS3RIr}_Py>ky*~ZpX`K87 z^fK0;ioPQkX8hOqpM7Ge1ZJhX^}M|(0Av+%aywc9XQ+o%9evN zMA$|Dm$aaP2!)>T8P!_+4>cbEqm*1+0mAjSu^;b-*-&oL|K?bz{|$4aa(^E=JaQj4 zCHt^ZMWihz_;ie`-|oCuu!E@eT@bh*2|1%HU~n4cFZ=3>b@Usr7exHR4!CgRdh0&V z6hQ3uL)>LVwEuw$^c3^79j@0${1NDB?8h{`v2nP&Jq+K@L2S^$-{Qsp>fj;RP}6%SjnRzR*#3VdSXP{sv4rRZ&fhR9#;ZLT zv{&r{WHrXfMI~|EeszCkQpll!ALx=XpWjDTbhM(gac>afM@KzaK|-Z#%e$2R7uka7@3?B^{1Qw2=oI7yUsNMMC*|D(w4q<{{~cB-JIhejT*04TbI2P>;SK9AQgv*9ndmn-Qq2M@e%2BxvqmQ)_O zduJTvjsE+vr(zVfyl&|09bwlkm6{d~0c00l{jMy1eFcEu824l+FW1cga>527PFwH) zM>d7k67*jgw>w&6^B&!Kv7u(g687mD)jZ-5-*xsVbe8GZLV3P_L@`0sxVf89!a|L3 z{veK^v&xC3qSzVJpVD9hadiWw1m(f!;$J%#t}&!Nd8_NE&mY2j`|cvx6;B4xV~@q1 zZm_yOE-8tl)%2U;<^&7N0JFd^R{zINiI>)~2EvcLelXJ?KKF;unT~Zf>Vo#vreckyVk3_OX`6e!mqBXVb<3r~*|JJzQP72`IbGm7`aac?yUh zM0e`-258wP;I;L3Lu4rvYspf`7`yR5EG4Sjipco&q8ux8{omIJFK4$CaTftck;u!+ zIfT*wVp8@!cTnY2To0{Zs0$L(JI8dFxrFq)J&f%=z-~uEE9&Gna=eHZu7@l)-zlMx z3jBSrB%me|SC-)=V77esF-@`8484-HPlNe<4l`Z_NMe^g`y9wFHeD|-_%7QdFGpP$ za4%|v8uY(W1zsC|@^m^Aq#>Au9LZ+zf-JN2&hID5`KM1%-AyR@fOa?A%oi*_XLYWb z!v9ckL~qO%Mr=5yq`r&eHG6;a-2Pe-_ts4k8{_7PHE@x#Jo6$x6=9Q>N`;;|7KnTu zWzV87E9`dDiBBDc;%>#JAYCYvz{mcrcW?XRGNM+g2;k}Vcx0Mz`GsCoSzCP)OQN!L zMr=N>Z-mXgrhRSZL_$J^1}ZJ_8|okjO+^c46WJY*E+N9K5O(wZU!>X)oh@9o9t^zG zQ&BVpGt*ToE^1uf_&B}s-urv{xn|>X8U122{ON|4?qh<)00gAO@_(WyL_S#k5N45GJwIxPRbl zS3B@QGRfvaw&7>o^;yBOPK|rJ|HY7T2`^lrBMO;fBE?wHE;_q16~h~^ZLTz$$D8fl zCjN8ZWax9e(nNe@Zr2lcU1o72Bb4uH<`I;%)(o>bn^IZB_nLdp? zL`(^xEkhL&Vn<*5|A?5(yeEi{9Eg*!8mRG))9B=V%Ta07I%vi1Q|6@+;!R@-OCFGC z)tva{8)v}Nr7%R!DJrh`YO*b>ZY4vWtJqC(Ywr**2RBjukJinzsR@Qz!!#+4(!D4KWvznG!dS~(kqh!!osHSEe2)+6>#3k^r7p^?#w**_yV(ZR8~IDberw ztmb(y*hD*Gh}i0-Ec`TdTxU2+33^`!)g&j9k8louj-aSYs6$9<|0QCdBaPVV1U*Z= z0bEiMrQ4&$gGLcU5XZ2apUdH2+gdTN=kIaP`HLKb!?$pYobpJjPJXhtYB;`Q@Z;?Q zsH|SuCpqtFV@;^EWeKBW_9$PghbaGqZRtHhj_0mD;L-a1P@`L?d@j6F?PZUp$fnzw2?^e+?4P zXSYa2r+O99e06i3KuvJY56BC40oJU?96ki4$(iViWae>{{OX38f5tHxI;WgUpYT`u zGCc`>r;pG{@5jBF=)^F0K6h;YSUtjGq-PphdfvAeO_N-j_q1ZfY<2VsoJ!4cIYOGv z?$74H*zMOIwvutb$vxeW)cuqn<(&J3r&v(U z^O+ly^pJY`$CuC0U5q}~W!+TCvguBSvF*tJ9{)%Qq0`5yyIYVI9^vbdYW5uqYay{* zSw&fsRsk+IDx4zVG$A52SFvJbj(^5mtphw(L7(f9k0g->lE(Fp@gW;wg#;*c;$E*4 zy|E%#frgKQO*76eig#0I3lmftzYcnCnLJm=P?FcD6&oz_X@tnrIs@gct@eWgqZ)sI zteY5@GkKswR6;Aq+avnqnLHpt5la7T1+gUEQ4Pte?S`R@AQslbrPC&LSm~nEeW@x& z5AIz?V|UL{SjTV)hjJ#QG|Zbp@LhON`5VuC*7f;AKY~U>GqqyBvZU1G#dc9?RZ9T* z_UwyWxYqaWk-lotZx`^v?VV28(G4-pw-BVC&rDK4;g6=DV^ceaE#Y<;AhvaQVR@fp z?~t2s>f_iy2Nxvev9VoWzb)`SCG@I6nUjX)reZdI*KGL2o)zQjq#!}ft?XPgTjW@Jb~l-~V7^b!ZV70M)lShQ>9-u0BkYH{w^ppDt-8CO;>L7)*!EiEwBb$UO@7mg<^ z;QA(vv-ju%4pgMQxVU7ek*@*99@bcMsEmqV@UM9@^MtHELnCHv#jtL9$IGIEcU?bE zc0=qH4IXlvH4);oVptYI`O+X>l4|w9*RQa`^z`||K%%&z_MgU|GoGn;6#T$srqbnT zm+_q-bep}sy^B>#=!LHna9~gRofQoaqtCtj1B9J?a$t>l)~u&p{W?R`$f{@7UOHpzTgtaKnKL+@NS9CF z4bo33^U)_pOB;`)3pF4l=?d6KyKG{bFSSS)pgbJk?D zK@AHmakG|~NVPSg02T#SBkXz%3(l*@SQi$rn1l*eK!frEfjOKcm#dWwwWr?kPhARF zOk+auQwyY_K&Qub0gZ;YH@XiTJZO!_Th$5exD(P9RCN|%ND4ubLA{zh;xD{5d0MoE zFgWkCIZ!e|be$HnZwSO)KjQ@6{k;vhhFH`;NkrF=K$2ZvfL*RAN(DMf3|~i|30|JK zKHg{fZ1d8#t2i?1CgdBQM?fDoKZky3LqNG?l~itw$kI^K*>)sYCsUB^t3OI{H;#-~ z`89$3cp2ToDH{@vFM3+QomQL64r2n%PXirdU1H^tkffVis})}kpnQDedC0Qe+NdW0 zsOb2UXvYGw;oNJ;?=GqQ7e#z4ZS;0|;xFvINSo;dQU%oyl$T*v-hlaojtDcy56^m& zT2c#gL)SHnaLUSZ(Nuqk4XXTB!LJ6}R)XI*Uh>~NX+LP70EpV>qSFuFB;CjbaZ{lVx6p5n+Tc3U7 zIbOGHS<+mqIURZiAcN`m!fj-6m zC&t0Z`iQgmI0aEvynOzOA?)At;4pb2O|0&U^F7^o{RC>6@N=@KUJ)9Hx0&eSe#zSh z3Mlzwpqcs{N;X&>nCFg@0cN25EJkDD&FTZ>c-ZlwrL;zox`E|JN%>vsFY&Y+lLZ4i zaHsQ=7V+eVFP^wEa#}v!g7kD(HvF_MfhfG?c@B1WW)a0#z`k?kf4~Ief#hD463lg6 zZ077kXc1((b}6?W&Mg6YpoBf%!~`4yVX4}GlKThZ`!i=6rX#bc;45cn>xli8O5DEH)M@$CI^1eIYdZ1-e z)h$VKqr+#lbcW(y<3b-#y{fXh*d&jKvr8%ZQaTR}3v@o<-3v?3EvI>mq;u@h=kT4|c+LZfTJ2nu5Oq`m`U!yJqhu4VgO=Xi7)7bD_y!||}nyy(%HLzj}lnTGtb5TzV( zv5A{E8&jU{^t;lVZR%%)h<48F-=@EjW}>{@VQI?iAr?Ultvsv^aJm#z(gp(=Y6O4V z{2Q`rt@2gwID^)H%SW`2T~t#$P3KYv)}E;R@T-1%gSTlWBUtvNg#oi%-ty9!+MTZ^ zCpCZa$~rCQul4(XBl7X-gV3w2EAnK9VECVkg+b4Q=r)J0sr9%EUZ=bc^ef_uM?~9W zmv5JK5>2IoPjtVy&Rvd_-Ifs+)6#lvuv+XcY3Z5WXz^f7jGdk))Hj}qHj{A)og1hC zZ@Xn->A^0l#-_2+J=ELPay30goI8V@Uv$(HJBN@1Ur15& zw;FprUhTSR+`f!`n%Hwn*l&>sT?<-I5z(g*dm?20jBpHSAnsmEnN1O`n$Jt->>REN znNEx$#My@d()XKg9AbCQ7IsAQiCqBy;j3uT5)G4$Bol;+1JsmEK&$tmOx!8UOoNF! zj+Wn1fwB8~mu4c7btif=t?=?%f_^(XB0_vUy5M+Wd`HZVScLg2CaX3dWl;R^-qJq+ zH>2CZ>9BUx|JdVc^l!^3jv2kspV=J{IayvTa~c!UsmRxVT%t#CUI2g3bga2I6JMdZ zcZVjmNwddHFah^sUdg09Lxg|)Pwz-)3+{iEUt$s$8$qztgx6I>gZ}^6>XR zX)0b(rby4U9&hZNgwIJEyv*sLVxfo3|ovVz%e+5i3Xm`6Po7yZ9d z*vJhAlde!{}VZFMVvj%667em|3K zSS73B)1kZizhLqd*)Rg#5nSG?6Ka@j^YwjZ50%gm{XR+QZ7vb>k`Rzpq|-{$X0CUV z@H$mCEWx?(O+S574@`PFcJW(x3SS6^vY;R0c|I+(+oi@+m_J*;>H!ksa+yzMsL;k{e7>VUDp1L(Ne zN;MMEKFQ7Nwc$V4+k3H48pUh}oH-Md()k<@nG_1#uK)I7m+J~X4YLoSZ}rAlzCT~N s**>~zUGK*I%QtW)ucgq@;(S64ZHzbnzo*WjQ6jmoOYtyC8!5?u00XwUw*UYD diff --git a/PyPi/dist/douyin_tiktok_scraper-1.0.3-py3-none-any.whl b/PyPi/dist/douyin_tiktok_scraper-1.0.3-py3-none-any.whl deleted file mode 100644 index 4d46501806fd0f728f9afae21eb448ff908d8d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14629 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 JgzXb-o%lPiJp<3h2Gh~5$L98%MC^Rm6B&p za|$3F_u-AyaNA1eWf%^OlI{O6M?Nv_uI{L1xq(O8vbZzInbv}f9Mply9UuTn9t;MV zBaY+l}uRF->74 zc>cu7?(Q7&PftMp*4+y@*SFvpf#savH%iJPiXn4#x_ZR8w^Y0iU)vhqz4h5A z!k?g$HNOKlJs`+_g7((UPruW+uQma|&&|j)zd{jUF68&?>6st(91_gC#?~(8aqXOc z9uU;y<@Nc;tJUPEt*tFh6X0u?)u;c{=J{jex8L3J0+`Md?h$VfG8B=Z4jgJwlad`j zJWrow6VJ{jC}&)A(vJ2bp(b$S`~?3?L>);<_E+&>6ifp%V_(dKuL61jot_*9gkq$9 z9Frjqnl78#!P_w~XrovF*h1uFq&OY-#GM|bg_E$1>yJJvRcY)~BTz;WZXKnP$T2WJ zMhfvoaJ;ey+ErA9gWy5t3R6H8fic--PH|#6P#3Ry`iRw;U(3zLW)a5Ak~qP(%>etqQmf_BXT9GL`FH7 zj+mvlR(N@O;D(VB4}FZ$60s69wP94UT-Xt0_n~<45r_p0-bQgTNF^#buD`Oc@&=7b zblg}6Qh*EQGR)3YRwjwjOTBes<@i`fGHKE$bk;@aC&IIRP}m!RN0nE8*cIOKCj@-o zMpvB~f!ZD~WZ#umdz)t*F6Z|s61*d<^Bdj=jGH_E+Rhus?aOYj51sa0-WP=DABc`2 z(AZt!9|$im!kRX_y8({Zm)D-jn*c|jFoVz6LDE0@;_y!DM4&5MEaCm|FR<6VK>S^A z&-mB8k7?**zq=$pkWPRD;M%OKJABT?uD6(=9Z+om4(Lx9gjfEj4^V4en;igXdC{r7 z>@FO~GK97EO!j>M4*#6b9kI&Mxes_9fzWq*cj(6t>)hw1AL+LLAn41J&_NzSf3@dK zAE5>syX8&a?XCdbR`0FgR?SPIVhG5jKVXB>bz2Ls7�Ik#cQKxIkacDHSPz_Wdhn03VdF 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 diff --git a/PyPi/dist/douyin_tiktok_scraper-1.0.4.tar.gz b/PyPi/dist/douyin_tiktok_scraper-1.0.4.tar.gz deleted file mode 100644 index 0aa11843aae3b06739ff49600036de77be641d78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20166 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 Fe*nijf=B=W diff --git a/PyPi/dist/douyin_tiktok_scraper-1.0.5.tar.gz b/PyPi/dist/douyin_tiktok_scraper-1.0.5.tar.gz deleted file mode 100644 index 7c4ad7c59d01a220615098f5669aa44b83795e44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20219 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 YB!6Jye|@Ye?VeFC>Z%o}TBxc10cqNvod5s; diff --git a/PyPi/dist/douyin_tiktok_scraper-1.0.6-py3-none-any.whl b/PyPi/dist/douyin_tiktok_scraper-1.0.6-py3-none-any.whl deleted file mode 100644 index 8d8b35f5453bb4dbdaf87b8a62ccb98ed8a3566d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14659 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 *L7ymm3L&>&>IB;WlRCi3 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 z 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 diff --git a/PyPi/dist/douyin_tiktok_scraper-1.0.7-py3-none-any.whl b/PyPi/dist/douyin_tiktok_scraper-1.0.7-py3-none-any.whl deleted file mode 100644 index 151a7eb22a7a503aa40ebe16a1eb5f63252b800f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14603 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 diff --git a/PyPi/dist/douyin_tiktok_scraper-1.0.7.tar.gz b/PyPi/dist/douyin_tiktok_scraper-1.0.7.tar.gz deleted file mode 100644 index 7414b3cf688afc3908c3a6e2c5ff01e6243bfc62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20214 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 diff --git a/PyPi/douyin_tiktok_scraper.egg-info/PKG-INFO b/PyPi/douyin_tiktok_scraper.egg-info/PKG-INFO deleted file mode 100644 index 0d38208..0000000 --- a/PyPi/douyin_tiktok_scraper.egg-info/PKG-INFO +++ /dev/null @@ -1,376 +0,0 @@ -Metadata-Version: 2.1 -Name: douyin-tiktok-scraper -Version: 1.0.6 -Summary: Douyin/TikTok async data scraper. -Home-page: https://github.com/Evil0ctal/Douyin_TikTok_Download_API -Author: Evil0ctal -Author-email: Evil0ctal1985@gmail.com -License: MIT License -Keywords: TikTok,Douyin,抖音,Scraper,Crawler,API,Download,Video,No Watermark,Async -Platform: UNKNOWN -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3 :: Only -Requires-Python: >=3.6 -Description-Content-Type: text/markdown -License-File: LICENSE - - -

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)数据爬取工具,支持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-V1 status](https://img.shields.io/website?down_color=lightgrey&label=API-V1%20Status&down_message=API-V1%20offline&style=flat-square&up_color=%23dfb9ff&up_message=online&url=https%3A%2F%2Fapi.douyin.wtf%2Fdocs)](https://api.douyin.wtf/docs) -[![API-V2 status](https://img.shields.io/website?down_color=lightgrey&label=API-V2%20Status&down_message=API-V1%20offline&style=flat-square&up_color=%23dfb9ff&up_message=online&url=https%3A%2F%2Fapi-v2.douyin.wtf%2Fdocs)](https://api-v2.douyin.wtf/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) - -
- -## 👻介绍 - -> 🚨如需使用私有服务器运行本项目,请参考部署方式[[Docker部署](./README.md#%E9%83%A8%E7%BD%B2%E6%96%B9%E5%BC%8F%E4%BA%8C-docker), [手动部署](./README.md#%E9%83%A8%E7%BD%B2%E6%96%B9%E5%BC%8F%E4%B8%80-linux)] - -本项目是基于 [PyWebIO](https://github.com/pywebio/PyWebIO),[FastAPI](https://fastapi.tiangolo.com/),[AIOHTTP](https://docs.aiohttp.org/),快速异步的[抖音](https://www.douyin.com/)/[TikTok](https://www.tiktok.com/)数据爬取工具,并通过Web端实现在线批量解析以及下载无水印视频或图集,数据爬取API,iOS快捷指令无水印下载等功能。你可以自己部署或改造本项目实现更多功能,也可以在你的项目中直接调用[scraper.py](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/Stable/scraper.py)或安装现有的[pip包](https://pypi.org/project/douyin-tiktok-scraper/)作为解析库轻松爬取数据等..... - -*一些简单的运用场景:* - -*下载禁止下载的视频,进行数据分析,iOS无水印下载(搭配[iOS自带的快捷指令APP](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334) -配合本项目API实现应用内下载或读取剪贴板下载)等.....* - -## 🖥公共站点: 我很脆弱...请勿压测(·•᷄ࡇ•᷅ ) - -> **API-V2:** 支持输入`Douyin|TikTok`用户主页爬取该作者[主页视频数据(去水印链接, 已点赞视频列表(权限需为公开), 视频评论数据, 背景音乐视频列表数据, 等等...), 详细信息请查看V2文档, 服务器响应时间有时会变长, 使用时请将`timeout`值设高. - -🍔Web APP: [https://douyin.wtf/](https://douyin.wtf/) - -🍟API-V1: [https://api.douyin.wtf/docs](https://api.douyin.wtf/docs) - -🌭API-V2: [https://api-v2.douyin.wtf/docs](https://api-v2.douyin.wtf/docs) - -💾iOS Shortcut(快捷指令): [Shortcut release](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/discussions/104?sort=top) - -📦️桌面端下载器(仓库推荐): - -- [Tairraos/TikDown](https://github.com/Tairraos/TikDown/) -- [Johnserf-Seed/TikTokDownload](https://github.com/Johnserf-Seed/TikTokDownload) -- [HFrost0/bilix](https://github.com/HFrost0/bilix) - -## ⚗️技术栈 - -* [web_app.py](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/web_app.py) - [PyWebIO](https://www.pyweb.io/) -* [web_api.py](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/web_api.py) - [FastAPI](https://fastapi.tiangolo.com/) -* [scraper.py](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/scraper.py) - [AIOHTTP](https://docs.aiohttp.org/) - -> ***scraper.py:*** - -- 向[Douyin|TikTok]的API提交请求并取回数据,处理后返回字典(dict),支持异步。 - -> ***web_api.py:*** - -- 获得请求参数并使用`Scraper()`类处理数据后以JSON形式返回,视频下载,配合iOS快捷指令实现快速调用,支持异步。 - -> ***web_app.py:*** - -- 为`web_api.py`以及`scraper.py`制作的简易Web程序,将网页输入的值进行处理后使用`Scraper()`类处理并配合`web_api.py`的接口输出在网页上(类似前后端分离) - -***以上文件的参数大多可在[config.ini](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/config.ini)中进行修改*** - -## 💡项目文件结构 - -``` -. -└── Douyin_TikTok_Download_API/ - ├── /static -> (PyWebIO static resources) - ├── web_app.py -> (Web APP) - ├── web_api.py -> (API) - ├── scraper.py -> (Parsing library) - ├── config.ini -> (configuration file) -``` - -## ✨功能: - -- 抖音(抖音海外版: TikTok)视频/图片解析 -- 网页端批量解析(支持抖音/TikTok混合提交) -- 网页端解析结果页批量下载无水印视频(V3.0.0暂时移除,请自行部署V2.X版本) -- API调用获取链接数据 -- 制作[pip包](https://pypi.org/project/douyin-tiktok-scraper/)方便快速导入你的项目 -- [iOS快捷指令快速调用API](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334)实现应用内下载无水印视频/图集 -- 解析作者主页内所有视频([API-V2](https://api-v2.douyin.wtf/docs) 支持抖音/TikTok) -- 解析视频内所有评论信息([API-V2](https://api-v2.douyin.wtf/docs) 支持抖音/TikTok) - ---- - -## 🤦‍待办清单: - -> 💡欢迎提出新的建议或将你的思路在issue中与我分享,或直接提交PR至[Development分支](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/tree/Development) ♪(・ω・)ノ) - -- [ ] 编写一个桌面端的下载器实现本地批量下载 -- [ ] API-V2添加对hash_tag页面的数据爬取 [#101](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/issues/101) -- [ ] 对其他短视频平台添加支持,如:抖音火山版,快手,西瓜视频,哔哩哔哩 - ---- - -## 📦调用解析库: - -> 💡PyPi:[https://pypi.org/project/douyin-tiktok-scraper/](https://pypi.org/project/douyin-tiktok-scraper/) - -安装解析库:`pip install douyin-tiktok-scraper` - -```python -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 share URL here: "))) -``` - -## 🗺️支持的提交格式: - -> 💡提示:包含但不仅限于以下例子,如果遇到链接解析失败请开启一个新 [issue](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/issues) - -- 抖音分享口令 (APP内复制) - -```text -7.43 pda:/ 让你在几秒钟之内记住我 https://v.douyin.com/L5pbfdP/ 复制此链接,打开Dou音搜索,直接观看视频! -``` - -- 抖音短网址 (APP内复制) - -```text -https://v.douyin.com/L4FJNR3/ -``` - -- 抖音正常网址 (网页版复制) - -```text -https://www.douyin.com/video/6914948781100338440 -``` - -- 抖音发现页网址 (APP复制) - -```text -https://www.douyin.com/discover?modal_id=7069543727328398622 -``` - -- TikTok短网址 (APP内复制) - -```text -https://www.tiktok.com/t/ZTR9nDNWq/ -``` - -- TikTok正常网址 (网页版复制) - -```text -https://www.tiktok.com/@evil0ctal/video/7156033831819037994 -``` - -- 抖音/TikTok批量网址(无需使用符合隔开) - -```text -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文档 - -> 💡提示:也可以在web_api.py的代码注释中查看接口文档 - -***API-V1文档:*** -本地:[http://localhost:8000/docs](http://localhost:8000/docs) -在线:[https://api.douyin.wtf/docs](https://api.douyin.wtf/docs) - -***API-V2文档:*** -在线:[https://api-v2.douyin.wtf/docs](https://api-v2.douyin.wtf/docs) - -***API演示:*** - -- 爬取视频数据(TikTok或Douyin混合解析) - `https://api.douyin.wtf/api?url=[视频链接/Video URL]&minimal=false` -- 下载视频/图集(TikTok或Douyin混合解析) - `https://api.douyin.wtf/download?url=[视频链接/Video URL]&prefix=true&watermark=false` -- 替换域名下载视频/图集 - -``` -[抖音] -原始链接: -https://www.douyin.com/video/7159502929156705567 -替换域名: -https://api.douyin.wtf/video/7159502929156705567 -# 返回无水印视频下载响应 -[TikTok] -original link: -https://www.tiktok.com/@evil0ctal/video/7156033831819037994 -Replace Domain: -https://api.douyin.wtf/@evil0ctal/video/7156033831819037994 -# Return No Watermark Video Download Response -``` - -***更多演示请查看文档内容......*** - -## 💻部署(方式一 Linux) - -> 💡提示:最好将本项目部署至美国地区的服务器,否则可能会出现奇怪的BUG。 - -- 首先要去安全组开放8080(Web)和8000(API)端口。 -- 在宝塔面板应用商店内搜索`进程守护`或手动安装`supervisord`: - -``` -[宝塔面板] -https://www.bt.cn/new/download.html -[aapanel] -https://www.aapanel.com/new/download.html -[Supervisor] -http://supervisord.org/installing.html -``` - -- 配置项目[config.ini](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/main/config.ini)文件 -- 安装依赖文件`pip install -r requirements.txt` -- 设置`supervisord`守护进程 -- 启动命令: - -```console -[Web] -python3 web_app.py -[API] -python3 web_api.py -``` - -- 程序入口: - -```text -[Web] -http://localhost:8080 -[API] -http://localhost:8000 -``` - -## 💽部署(方式二 Docker) - -> 💡Docker Image repo: [Docker Hub](https://hub.docker.com/repository/docker/evil0ctal/douyin_tiktok_download_api) - -- 安装docker - -```yaml -curl -fsSL get.docker.com -o get-docker.sh&&sh get-docker.sh &&systemctl enable docker&&systemctl start docker -``` - -- 留下config.int和docker-compose.yml文件即可 -- 运行命令,让容器在后台运行 - -```yaml -docker compose up -d -``` - -- 查看容器日志 - -```yaml -docker logs -f douyin_tiktok_download_api -``` - -- 删除容器 - -```yaml -docker rm -f douyin_tiktok_download_api -``` - -- 更新 - -```yaml -docker compose pull && docker compose down && docker compose up -d -``` - -## ❤️ 贡献者 - -[![](https://github.com/Evil0ctal.png?size=50)](https://github.com/Evil0ctal) -[![](https://github.com/jw-star.png?size=50)](https://github.com/jw-star) -[![](https://github.com/Jeffrey-deng.png?size=50)](https://github.com/Jeffrey-deng) -[![](https://github.com/chris-ss.png?size=50)](https://github.com/chris-ss) -[![](https://github.com/weixuan00.png?size=50)](https://github.com/weixuan00) -[![](https://github.com/Tairraos.png?size=50)](https://github.com/Tairraos) - -## 📸截图 - -***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](https://api.star-history.com/svg?repos=Evil0ctal/Douyin_TikTok_Download_API&type=Timeline)](https://star-history.com/#Evil0ctal/Douyin_TikTok_Download_API&Timeline) - -[MIT License](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/Stable/LICENSE) - -> Start: 2021/11/06 -> GitHub: [@Evil0ctal](https://github.com/Evil0ctal) -> Contact: Evil0ctal1985@gmail.com - - - - diff --git a/PyPi/douyin_tiktok_scraper.egg-info/SOURCES.txt b/PyPi/douyin_tiktok_scraper.egg-info/SOURCES.txt deleted file mode 100644 index b65ca11..0000000 --- a/PyPi/douyin_tiktok_scraper.egg-info/SOURCES.txt +++ /dev/null @@ -1,10 +0,0 @@ -LICENSE -README.md -setup.py -douyin_tiktok_scraper/__init__.py -douyin_tiktok_scraper/scraper.py -douyin_tiktok_scraper.egg-info/PKG-INFO -douyin_tiktok_scraper.egg-info/SOURCES.txt -douyin_tiktok_scraper.egg-info/dependency_links.txt -douyin_tiktok_scraper.egg-info/requires.txt -douyin_tiktok_scraper.egg-info/top_level.txt \ No newline at end of file diff --git a/PyPi/douyin_tiktok_scraper.egg-info/dependency_links.txt b/PyPi/douyin_tiktok_scraper.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/PyPi/douyin_tiktok_scraper.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/PyPi/douyin_tiktok_scraper.egg-info/requires.txt b/PyPi/douyin_tiktok_scraper.egg-info/requires.txt deleted file mode 100644 index f13c0cd..0000000 --- a/PyPi/douyin_tiktok_scraper.egg-info/requires.txt +++ /dev/null @@ -1,3 +0,0 @@ -aiohttp -orjson -tenacity diff --git a/PyPi/douyin_tiktok_scraper.egg-info/top_level.txt b/PyPi/douyin_tiktok_scraper.egg-info/top_level.txt deleted file mode 100644 index 1aa2edf..0000000 --- a/PyPi/douyin_tiktok_scraper.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -douyin_tiktok_scraper diff --git a/PyPi/douyin_tiktok_scraper/__init__.py b/PyPi/douyin_tiktok_scraper/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/PyPi/douyin_tiktok_scraper/scraper.py b/PyPi/douyin_tiktok_scraper/scraper.py deleted file mode 100644 index bb7ccf0..0000000 --- a/PyPi/douyin_tiktok_scraper/scraper.py +++ /dev/null @@ -1,555 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- -# @Author: https://github.com/Evil0ctal/ -# @Time: 2021/11/06 -# @Update: 2022/12/09 -# @Version: 3.1.5 -# @Function: -# 核心代码,估值1块(๑•̀ㅂ•́)و✧ -# 用于爬取Douyin/TikTok数据并以字典形式返回。 -# input link, output dictionary. - - -import re -import os -import random -import aiohttp -import platform -import asyncio -import orjson -import traceback -import configparser - -from typing import Union -from tenacity import * - - -class Scraper: - """ - 简介/Introduction - - Scraper.get_url(text: str) -> Union[str, None] - 用于检索出文本中的链接并返回/Used to retrieve the link in the text and return it. - - Scraper.convert_share_urls(self, url: str) -> Union[str, None]\n - 用于转换分享链接为原始链接/Convert share links to original links - - Scraper.get_douyin_video_id(self, original_url: str) -> Union[str, None]\n - 用于获取抖音视频ID/Get Douyin video ID - - Scraper.get_douyin_video_data(self, video_id: str) -> Union[dict, None]\n - 用于获取抖音视频数据/Get Douyin video data - - Scraper.get_douyin_live_video_data(self, original_url: str) -> Union[str, None]\n - 用于获取抖音直播视频数据/Get Douyin live video data - - Scraper.get_tiktok_video_id(self, original_url: str) -> Union[str, None]\n - 用于获取TikTok视频ID/Get TikTok video ID - - Scraper.get_tiktok_video_data(self, video_id: str) -> Union[dict, None]\n - 用于获取TikTok视频数据/Get TikTok video data - - Scraper.hybrid_parsing(self, video_url: str) -> dict\n - 用于混合解析/ Hybrid parsing - - Scraper.hybrid_parsing_minimal(data: dict) -> dict\n - 用于混合解析最小化/Hybrid parsing minimal - """ - - """__________________________________________⬇️initialization(初始化)⬇️______________________________________""" - - # 初始化/initialization - def __init__(self): - self.headers = { - 'User-Agent': "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36 Edg/87.0.664.66" - } - self.douyin_cookies = { - 'Cookie': 'msToken=tsQyL2_m4XgtIij2GZfyu8XNXBfTGELdreF1jeIJTyktxMqf5MMIna8m1bv7zYz4pGLinNP2TvISbrzvFubLR8khwmAVLfImoWo3Ecnl_956MgOK9kOBdwM=; odin_tt=6db0a7d68fd2147ddaf4db0b911551e472d698d7b84a64a24cf07c49bdc5594b2fb7a42fd125332977218dd517a36ec3c658f84cebc6f806032eff34b36909607d5452f0f9d898810c369cd75fd5fb15; ttwid=1%7CfhiqLOzu_UksmD8_muF_TNvFyV909d0cw8CSRsmnbr0%7C1662368529%7C048a4e969ec3570e84a5faa3518aa7e16332cfc7fbcb789780135d33a34d94d2' - } - self.tiktok_api_headers = { - 'User-Agent': 'com.ss.android.ugc.trill/494+Mozilla/5.0+(Linux;+Android+12;+2112123G+Build/SKQ1.211006.001;+wv)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Version/4.0+Chrome/107.0.5304.105+Mobile+Safari/537.36' - } - # 判断配置文件是否存在/Check if the configuration file exists - if os.path.exists('config.ini'): - self.config = configparser.ConfigParser() - self.config.read('config.ini', encoding='utf-8') - # 判断是否使用代理 - if self.config['Scraper']['Proxy_switch'] == 'True': - # 判断是否区别协议选择代理 - if self.config['Scraper']['Use_different_protocols'] == 'False': - self.proxies = { - 'all': self.config['Scraper']['All'] - } - else: - self.proxies = { - 'http': self.config['Scraper']['Http_proxy'], - 'https': self.config['Scraper']['Https_proxy'], - } - else: - self.proxies = None - # 配置文件不存在则不使用代理/If the configuration file does not exist, do not use the proxy - else: - self.proxies = None - # 针对Windows系统的异步事件规则/Asynchronous event rules for Windows systems - if platform.system() == 'Windows': - asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) - - """__________________________________________⬇️utils(实用程序)⬇️______________________________________""" - - # 检索字符串中的链接 - @staticmethod - def get_url(text: str) -> Union[str, None]: - try: - # 从输入文字中提取索引链接存入列表/Extract index links from input text and store in list - url = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', text) - # 判断是否有链接/Check if there is a link - if len(url) > 0: - return url[0] - except Exception as e: - print('Error in get_url:', e) - return None - - # 转换链接/convert url - @retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2)) - async def convert_share_urls(self, url: str) -> Union[str, None]: - """ - 用于将分享链接(短链接)转换为原始链接/Convert share links (short links) to original links - :return: 原始链接/Original link - """ - # 检索字符串中的链接/Retrieve links from string - url = self.get_url(url) - # 判断是否有链接/Check if there is a link - if url is None: - print('无法检索到链接/Unable to retrieve link') - return None - # 判断是否为抖音分享链接/judge if it is a douyin share link - if 'douyin' in url: - """ - 抖音视频链接类型(不全): - 1. https://v.douyin.com/MuKhKn3/ - 2. https://www.douyin.com/video/7157519152863890719 - 3. https://www.iesdouyin.com/share/video/7157519152863890719/?region=CN&mid=7157519152863890719&u_code=ffe6jgjg&titleType=title×tamp=1600000000&utm_source=copy_link&utm_campaign=client_share&utm_medium=android&app=aweme&iid=123456789&share_id=123456789 - 抖音用户链接类型(不全): - 1. https://www.douyin.com/user/MS4wLjABAAAAbLMPpOhVk441et7z7ECGcmGrK42KtoWOuR0_7pLZCcyFheA9__asY-kGfNAtYqXR?relation=0&vid=7157519152863890719 - 2. https://v.douyin.com/MuKoFP4/ - 抖音直播链接类型(不全): - 1. https://live.douyin.com/88815422890 - """ - if 'v.douyin' in url: - # 转换链接/convert url - # 例子/Example: https://v.douyin.com/rLyAJgf/8.74 - url = re.compile(r'(https://v.douyin.com/)\w+', re.I).match(url).group() - print('正在通过抖音分享链接获取原始链接...') - try: - async with aiohttp.ClientSession() as session: - async with session.get(url, headers=self.headers, proxy=self.proxies, allow_redirects=False, - timeout=10) as response: - if response.status == 302: - url = response.headers['Location'].split('?')[0] if '?' in response.headers[ - 'Location'] else \ - response.headers['Location'] - print('获取原始链接成功, 原始链接为: {}'.format(url)) - return url - except Exception as e: - print('获取原始链接失败!') - print(e) - return None - else: - print('该链接为原始链接,无需转换,原始链接为: {}'.format(url)) - return url - # 判断是否为TikTok分享链接/judge if it is a TikTok share link - elif 'tiktok' in url: - """ - TikTok视频链接类型(不全): - 1. https://www.tiktok.com/@tiktok/video/6950000000000000000 - 2. https://www.tiktok.com/t/ZTRHcXS2C/ - TikTok用户链接类型(不全): - 1. https://www.tiktok.com/@tiktok - """ - if '@' in url: - print('该链接为原始链接,无需转换,原始链接为: {}'.format(url)) - return url - else: - print('正在通过TikTok分享链接获取原始链接...') - try: - async with aiohttp.ClientSession() as session: - async with session.get(url, headers=self.headers, proxy=self.proxies, allow_redirects=False, - timeout=10) as response: - if response.status == 301: - url = response.headers['Location'].split('?')[0] if '?' in response.headers[ - 'Location'] else \ - response.headers['Location'] - print('获取原始链接成功, 原始链接为: {}'.format(url)) - return url - except Exception as e: - print('获取原始链接失败!') - print(e) - return None - - """__________________________________________⬇️Douyin methods(抖音方法)⬇️______________________________________""" - - # 获取抖音视频ID/Get Douyin video ID - async def get_douyin_video_id(self, original_url: str) -> Union[str, None]: - """ - 获取视频id - :param original_url: 视频链接 - :return: 视频id - """ - # 正则匹配出视频ID - try: - video_url = await self.convert_share_urls(original_url) - # 链接类型: - # 视频页 https://www.douyin.com/video/7086770907674348841 - if '/video/' in video_url: - key = re.findall('/video/(\d+)?', video_url)[0] - print('获取到的抖音视频ID为: {}'.format(key)) - return key - # 发现页 https://www.douyin.com/discover?modal_id=7086770907674348841 - elif 'discover?' in video_url: - key = re.findall('modal_id=(\d+)', video_url)[0] - print('获取到的抖音视频ID为: {}'.format(key)) - return key - # 直播页 - elif 'live.douyin' in video_url: - # https://live.douyin.com/1000000000000000000 - key = video_url.replace('https://live.douyin.com/', '') - print('获取到的抖音直播ID为: {}'.format(key)) - return key - # note - elif 'note' in video_url: - # https://www.douyin.com/note/7086770907674348841 - key = re.findall('/note/(\d+)?', video_url)[0] - print('获取到的抖音笔记ID为: {}'.format(key)) - return key - except Exception as e: - print('获取抖音视频ID出错了:{}'.format(e)) - return None - - # 获取单个抖音视频数据/Get single Douyin video data - @retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2)) - async def get_douyin_video_data(self, video_id: str) -> Union[dict, None]: - """ - :param video_id: str - 抖音视频id - :return:dict - 包含信息的字典 - """ - print('正在获取抖音视频数据...') - try: - # 构造访问链接/Construct the access link - api_url = f"https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={video_id}" - # 访问API/Access API - print("正在获取视频数据API: {}".format(api_url)) - async with aiohttp.ClientSession() as session: - async with session.get(api_url, headers=self.headers, proxy=self.proxies, timeout=10) as response: - response = await response.json() - # 获取视频数据/Get video data - video_data = response['item_list'][0] - print('获取视频数据成功!') - # print("抖音API返回数据: {}".format(video_data)) - return video_data - except Exception as e: - print('获取抖音视频数据失败!原因:{}'.format(e)) - return None - - # 获取单个抖音直播视频数据/Get single Douyin Live video data - @retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2)) - async def get_douyin_live_video_data(self, web_rid: str) -> Union[dict, None]: - print('正在获取抖音视频数据...') - try: - # 构造访问链接/Construct the access link - api_url = f"https://live.douyin.com/webcast/web/enter/?aid=6383&web_rid={web_rid}" - # 访问API/Access API - print("正在获取视频数据API: {}".format(api_url)) - async with aiohttp.ClientSession() as session: - async with session.get(api_url, headers=self.douyin_cookies, proxy=self.proxies, timeout=10) as response: - response = await response.json() - # 获取返回的json数据/Get the returned json data - data = orjson.loads(response.text) - # 获取视频数据/Get video data - video_data = data['data'] - print('获取视频数据成功!') - # print("抖音API返回数据: {}".format(video_data)) - return video_data - except Exception as e: - print('获取抖音视频数据失败!原因:{}'.format(e)) - return None - - """__________________________________________⬇️TikTok methods(TikTok方法)⬇️______________________________________""" - - # 获取TikTok视频ID/Get TikTok video ID - async def get_tiktok_video_id(self, original_url: str) -> Union[str, None]: - """ - 获取视频id - :param original_url: 视频链接 - :return: 视频id - """ - try: - # 转换链接/Convert link - original_url = await self.convert_share_urls(original_url) - # 获取视频ID/Get video ID - if '.html' in original_url: - video_id = original_url.replace('.html', '') - elif '/video/' in original_url: - video_id = re.findall('/video/(\d+)', original_url)[0] - elif '/v/' in original_url: - video_id = re.findall('/v/(\d+)', original_url)[0] - print('获取到的TikTok视频ID是{}'.format(video_id)) - # 返回视频ID/Return video ID - return video_id - except Exception as e: - print('获取TikTok视频ID出错了:{}'.format(e)) - return None - - @retry(stop=stop_after_attempt(3), wait=wait_random(min=1, max=2)) - async def get_tiktok_video_data(self, video_id: str) -> Union[dict, None]: - """ - 获取单个视频信息 - :param video_id: 视频id - :return: 视频信息 - """ - print('正在获取TikTok视频数据...') - try: - # 构造访问链接/Construct the access link - api_url = f'https://api16-normal-c-useast1a.tiktokv.com/aweme/v1/feed/?aweme_id={video_id}&iid=6165993682518218889&device_id={random.randint(10*10*10, 9*10**10)}&aid=1180' - print("正在获取视频数据API: {}".format(api_url)) - async with aiohttp.ClientSession() as session: - async with session.get(api_url, headers=self.tiktok_api_headers, proxy=self.proxies, timeout=10) as response: - response = await response.json() - video_data = response['aweme_list'][0] - print('获取视频信息成功!') - return video_data - except Exception as e: - print('获取视频信息失败!原因:{}'.format(e)) - return None - - """__________________________________________⬇️Hybrid methods(混合方法)⬇️______________________________________""" - - # 自定义获取数据/Custom data acquisition - async def hybrid_parsing(self, video_url: str) -> dict: - # URL平台判断/Judge URL platform - url_platform = 'douyin' if 'douyin' in video_url else 'tiktok' - print('当前链接平台为:{}'.format(url_platform)) - # 获取视频ID/Get video ID - print("正在获取视频ID...") - video_id = await self.get_douyin_video_id( - video_url) if url_platform == 'douyin' else await self.get_tiktok_video_id( - video_url) - if video_id: - print("获取视频ID成功,视频ID为:{}".format(video_id)) - # 获取视频数据/Get video data - print("正在获取视频数据...") - data = await self.get_douyin_video_data( - video_id) if url_platform == 'douyin' else await self.get_tiktok_video_data( - video_id) - if data: - print("获取视频数据成功,正在判断数据类型...") - url_type_code = data['aweme_type'] - """以下为抖音/TikTok类型代码/Type code for Douyin/TikTok""" - url_type_code_dict = { - # 抖音/Douyin - 2: 'image', - 4: 'video', - # TikTok - 0: 'video', - 51: 'video', - 55: 'video', - 58: 'video', - 61: 'video', - 150: 'image' - } - # 获取视频类型/Get video type - # 如果类型代码不存在,则默认为视频类型/If the type code does not exist, it is assumed to be a video type - print("数据类型代码: {}".format(url_type_code)) - # 判断链接类型/Judge link type - url_type = url_type_code_dict.get(url_type_code, 'video') - print("数据类型: {}".format(url_type)) - print("准备开始判断并处理数据...") - - """ - 以下为(视频||图片)数据处理的四个方法,如果你需要自定义数据处理请在这里修改. - The following are four methods of (video || image) data processing. - If you need to customize data processing, please modify it here. - """ - - """ - 创建已知数据字典(索引相同),稍后使用.update()方法更新数据 - Create a known data dictionary (index the same), - and then use the .update() method to update the data - """ - - result_data = { - 'status': 'success', - 'message': "更多接口请查看(More API see): https://api-v2.douyin.wtf/docs", - 'type': url_type, - 'platform': url_platform, - 'aweme_id': video_id, - 'official_api_url': - { - "User-Agent": self.headers["User-Agent"], - "api_url": f"https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={video_id}" - } if url_platform == 'douyin' - else - { - "User-Agent": self.tiktok_api_headers["User-Agent"], - "api_url": f'https://api16-normal-c-useast1a.tiktokv.com/aweme/v1/feed/?aweme_id={video_id}&iid=6165993682518218889&device_id={random.randint(10*10*10, 9*10**10)}&aid=1180' - }, - 'desc': data.get("desc"), - 'create_time': data.get("create_time"), - 'author': data.get("author"), - 'music': data.get("music"), - 'statistics': data.get("statistics"), - 'cover_data': { - 'cover': data.get("video").get("cover"), - 'origin_cover': data.get("video").get("origin_cover"), - 'dynamic_cover': data.get("video").get("dynamic_cover") - }, - 'hashtags': data.get('text_extra'), - } - # 创建一个空变量,稍后使用.update()方法更新数据/Create an empty variable and use the .update() method to update the data - api_data = None - # 判断链接类型并处理数据/Judge link type and process data - try: - # 抖音数据处理/Douyin data processing - if url_platform == 'douyin': - # 抖音视频数据处理/Douyin video data processing - if url_type == 'video': - print("正在处理抖音视频数据...") - # 将信息储存在字典中/Store information in a dictionary - uri = data['video']['play_addr']['uri'] - wm_video_url = data['video']['play_addr']['url_list'][0] - wm_video_url_HQ = f"https://aweme.snssdk.com/aweme/v1/playwm/?video_id={uri}&radio=1080p&line=0" - nwm_video_url = wm_video_url.replace('playwm', 'play') - nwm_video_url_HQ = f"https://aweme.snssdk.com/aweme/v1/play/?video_id={uri}&ratio=1080p&line=0" - api_data = { - 'video_data': - { - 'wm_video_url': wm_video_url, - 'wm_video_url_HQ': wm_video_url_HQ, - 'nwm_video_url': nwm_video_url, - 'nwm_video_url_HQ': nwm_video_url_HQ - } - } - # 抖音图片数据处理/Douyin image data processing - elif url_type == 'image': - print("正在处理抖音图片数据...") - # 无水印图片列表/No watermark image list - no_watermark_image_list = [] - # 有水印图片列表/With watermark image list - watermark_image_list = [] - # 遍历图片列表/Traverse image list - for i in data['images']: - no_watermark_image_list.append(i['url_list'][0]) - watermark_image_list.append(i['download_url_list'][0]) - api_data = { - 'image_data': - { - 'no_watermark_image_list': no_watermark_image_list, - 'watermark_image_list': watermark_image_list - } - } - # TikTok数据处理/TikTok data processing - elif url_platform == 'tiktok': - # TikTok视频数据处理/TikTok video data processing - if url_type == 'video': - print("正在处理TikTok视频数据...") - # 将信息储存在字典中/Store information in a dictionary - wm_video = data['video']['download_addr']['url_list'][0] - api_data = { - 'video_data': - { - 'wm_video_url': wm_video, - 'wm_video_url_HQ': wm_video, - 'nwm_video_url': data['video']['play_addr']['url_list'][0], - 'nwm_video_url_HQ': data['video']['bit_rate'][0]['play_addr']['url_list'][0] - } - } - # TikTok图片数据处理/TikTok image data processing - elif url_type == 'image': - print("正在处理TikTok图片数据...") - # 无水印图片列表/No watermark image list - no_watermark_image_list = [] - # 有水印图片列表/With watermark image list - watermark_image_list = [] - for i in data['image_post_info']['images']: - no_watermark_image_list.append(i['display_image']['url_list'][0]) - watermark_image_list.append(i['owner_watermark_image']['url_list'][0]) - api_data = { - 'image_data': - { - 'no_watermark_image_list': no_watermark_image_list, - 'watermark_image_list': watermark_image_list - } - } - # 更新数据/Update data - result_data.update(api_data) - # print("数据处理完成,最终数据: \n{}".format(result_data)) - # 返回数据/Return data - return result_data - except Exception as e: - traceback.print_exc() - print("数据处理失败!") - return {'status': 'failed', 'message': '数据处理失败!/Data processing failed!'} - else: - print("[抖音|TikTok方法]返回数据为空,无法处理!") - return {'status': 'failed', - 'message': '返回数据为空,无法处理!/Return data is empty and cannot be processed!'} - else: - print('获取视频ID失败!') - return {'status': 'failed', 'message': '获取视频ID失败!/Failed to get video ID!'} - - # 处理数据方便快捷指令使用/Process data for easy-to-use shortcuts - @staticmethod - def hybrid_parsing_minimal(data: dict) -> dict: - # 如果数据获取成功/If the data is successfully obtained - if data['status'] == 'success': - result = { - 'status': 'success', - 'message': data.get('message'), - 'platform': data.get('platform'), - 'type': data.get('type'), - 'desc': data.get('desc'), - 'wm_video_url': data['video_data']['wm_video_url'] if data['type'] == 'video' else None, - 'wm_video_url_HQ': data['video_data']['wm_video_url_HQ'] if data['type'] == 'video' else None, - 'nwm_video_url': data['video_data']['nwm_video_url'] if data['type'] == 'video' else None, - 'nwm_video_url_HQ': data['video_data']['nwm_video_url_HQ'] if data['type'] == 'video' else None, - 'no_watermark_image_list': data['image_data']['no_watermark_image_list'] if data[ - 'type'] == 'image' else None, - 'watermark_image_list': data['image_data']['watermark_image_list'] if data['type'] == 'image' else None - } - return result - else: - return data - - -"""__________________________________________⬇️Test methods(测试方法)⬇️______________________________________""" - - -async def async_test(douyin_url: str = None, tiktok_url: str = None) -> None: - # 异步测试/Async test - start_time = time.time() - print("正在进行异步测试...") - - print("正在测试异步获取抖音视频ID方法...") - douyin_id = await api.get_douyin_video_id(douyin_url) - print("正在测试异步获取抖音视频数据方法...") - douyin_data = await api.get_douyin_video_data(douyin_id) - - print("正在测试异步获取TikTok视频ID方法...") - tiktok_id = await api.get_tiktok_video_id(tiktok_url) - print("正在测试异步获取TikTok视频数据方法...") - tiktok_data = await api.get_tiktok_video_data(tiktok_id) - - print("正在测试异步混合解析方法...") - douyin_hybrid_data = await api.hybrid_parsing(douyin_url) - tiktok_hybrid_data = await api.hybrid_parsing(tiktok_url) - - # 总耗时/Total time - total_time = round(time.time() - start_time, 2) - print("异步测试完成,总耗时: {}s".format(total_time)) - - -if __name__ == '__main__': - api = Scraper() - # 运行测试 - douyin_url = 'https://v.douyin.com/rLyrQxA/6.66' - tiktok_url = 'https://vt.tiktok.com/ZSRwWXtdr/' - asyncio.run(async_test(douyin_url=douyin_url, tiktok_url=tiktok_url)) diff --git a/PyPi/setup.py b/PyPi/setup.py deleted file mode 100644 index febf0d6..0000000 --- a/PyPi/setup.py +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env python -# -*- coding: utf-8 -*- -# RUN Command Line: -# 1.Build-check dist folder -# python setup.py sdist bdist_wheel -# 2.Upload to PyPi -# twine upload dist/* - -import setuptools - -with open("README.md", "r", encoding='utf8') as fh: - long_description = fh.read() - -setuptools.setup( - name='douyin_tiktok_scraper', - author='Evil0ctal', - version='1.0.7', - license='MIT License', - description='Douyin/TikTok async data scraper.', - long_description=long_description, - long_description_content_type="text/markdown", - author_email='Evil0ctal1985@gmail.com', - url='https://github.com/Evil0ctal/Douyin_TikTok_Download_API', - packages=setuptools.find_packages(), - keywords='TikTok, Douyin, 抖音, Scraper, Crawler, API, Download, Video, No Watermark, Async', - # 依赖包 - install_requires=[ - 'aiohttp', - "orjson", - "tenacity", - ], - classifiers=[ - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3 :: Only", - ], - python_requires='>=3.6', -)
- -