Add Douyin video downloader with auto-cookie feature

This commit is contained in:
2026-03-02 21:42:52 +08:00
commit 0f3dd8f287
50 changed files with 6471 additions and 0 deletions

370
README.md Normal file
View File

@@ -0,0 +1,370 @@
![项目图](https://tvax2.sinaimg.cn/large/006908GAly1hgn9zod1yuj30zk0hstmf.jpg)
<h1 align="center">✨ 抖音去水印作品下载 ✨</h1>
<div align="center">
[English](README-EN.md) | 简体中文
[![License: MIT](https://img.shields.io/github/license/johnserf-seed/tiktokdownload?style=for-the-badge)](https://github.com/Johnserf-Seed/TikTokDownload/blob/main/LICENSE)
![Release Download](https://img.shields.io/github/downloads/Johnserf-Seed/TikTokDownload/total?style=for-the-badge)
![GitHub Repo size](https://img.shields.io/github/repo-size/Johnserf-Seed/TikTokDownload?style=for-the-badge&color=3cb371)
[![GitHub Repo Languages](https://img.shields.io/github/languages/top/Johnserf-Seed/TikTokDownload?style=for-the-badge)](https://github.com/BeyondDimension/SteamTools/search?l=c%23)
[![Python v3.11.1](https://img.shields.io/badge/python-v3.11.1-orange?style=for-the-badge)](https://github.com/Johnserf-Seed/TikTokDownload)
![Terminal: wt](https://img.shields.io/badge/Terminal-wt-blue?style=for-the-badge)
[![GitHub Stars](https://img.shields.io/github/stars/johnserf-seed/tiktokdownload?style=social)](https://github.com/Johnserf-Seed/TikTokDownload)
[![GitHub Forks](https://img.shields.io/github/forks/johnserf-seed/tiktokdownload?style=social)](https://github.com/Johnserf-Seed/TikTokDownload)
[![GitHub Issues](https://img.shields.io/github/issues/johnserf-seed/tiktokdownload?style=social)](https://github.com/Johnserf-Seed/TikTokDownload)
[![GitHub Closed Issues](https://img.shields.io/github/issues-closed/johnserf-seed/tiktokdownload?style=social)](https://github.com/Johnserf-Seed/TikTokDownload)
[![F2 Downloads](https://pepy.tech/badge/f2/month)](https://pepy.tech/project/f2)
[![PyPI version](https://badge.fury.io/py/f2.svg)](https://badge.fury.io/py/f2)
[![jsDelivr monthly hits](https://data.jsdelivr.com/v1/package/gh/Johnserf-Seed/TikTokDownload/badge)](https://www.jsdelivr.com/package/gh/Johnserf-Seed/TikTokDownload)
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FJohnserf-Seed%2FTikTokDownload&count_bg=%235FFFFF&title_bg=%23FB1953&icon=tiktok.svg&icon_color=%23250C1F&title=view&edge_flat=false)](https://hits.seeyoufarm.com)
[![TikHub](https://img.shields.io/badge/%E8%B5%9E%E5%8A%A9%E5%95%86-TikHub-orange?style=flat-square&logo=tiktok)](https://beta-web.tikhub.io/users/signup?referral_code=6hLcGD94)
[![Discord](https://img.shields.io/discord/1146473603450282004?color=5865F2&logo=discord&logoColor=white?style=for-the-badge)](https://discord.gg/3PhtPmgHf8)
[![Patreon](https://img.shields.io/badge/Patreon-TikTokDownload-red.svg?style=flat&logo=patreon)](https://www.patreon.com/TikTokDownload713)
</div>
## 🚀 环境准备/Environment
> [![Microsoft 应用商店](https://tvax1.sinaimg.cn/large/006908GAly1hgn87jhad8j305001qa9y.jpg)](https://aka.ms/terminal)
>
> 旧的控制台无法很好适配推荐使用Windows Terminal。
>
> [![Python v3.11.1](https://www.python.org/static/img/python-logo.png)](https://www.python.org/ftp/python/3.11.1/python-3.11.1-amd64.exe)
>
> Python3.11.1 低于该版本可能会有意外的错误
>
> [![GitHub 发行版](https://tvax2.sinaimg.cn/large/006908GAly1hh16psn51aj30a5020gly.jpg)](https://github.com/Johnserf-Seed/TikTokDownload/releases/tag/v1.4.2.2)
>
> 更新F2前的最后一个发行版下载
<details><summary> ⚙ Windows Terminal 设置(必看) </summary>
![wt配置](https://github.com/Johnserf-Seed/TikTokDownload/assets/40727745/997b6fc2-586e-4268-bee8-43bb8d68622c)
</details>
## 🧰 功能/Features
- DouYin 接口全新Abogus
- ✅ 用户信息。
- ✅ 查询用户信息。
- ✅ 下载发布作品。
- ✅ 下载收藏作品。
- ✅ 下载收藏原声。
- ✅ 下载喜欢作品。
- ✅ 下载图集作品。
- ✅ 下载短剧作品。
- ✅ 下载作品封面。
- ✅ 下载作品文案。
- ✅ 下载作品原声。
- ✅ 下载直播。
- ✅ 下载合集作品。
- ⌛ 下载关注作品。
- ✅ 关注用户信息。
- ✅ 粉丝用户信息。
- ✅ 下载好友作品。
- ✅ 下载首页推荐作品。
- ✅ 下载相关推荐作品。
- ⌛ 提取评论。
- ✅ 详细直播间信息。
- ✅ 关注用户开播状态。
- ✅ 直播间弹幕负载数据。
- ✅ 直播间弹幕采集。
- ✅ 详细用户信息。
- TikTok 接口
- ✅ 下载发布作品。
- ✅ 下载收藏作品。
- ✅ 下载喜欢作品。
- ✅ 下载图集作品。
- ✅ 下载作品封面。
- ✅ 下载作品文案。
- ✅ 下载作品原声。
- ✅ 下载播放列表。
- ✅ 下载合集作品。
- ✅ 下载搜索作品。
- ⌛ 下载关注作品。
- ⌛ 下载好友作品。
- ⌛ 下载推荐作品。
- ⌛ 下载相关推荐作品。
- ⌛ 提取评论。
- ✅ 详细直播间信息。
- ✅ 直播间开播状态。
- ⌛ 直播间弹幕发言。
- ✅ 详细用户信息。
- 更多接口,请查阅 [「F2开发者接口」](https://johnserf-seed.github.io/f2/guide/apps/douyin/)
- 异步下载
- ✅ 同时处理和下载多个作品,提高效率。
- ✅ 异步线程,减轻系统压力减少接口出错。
- ✅ 网络并发数,减少被服务器校验。
- ✅ 超时重试设置,降低采集错误率。
- Cookie
- ✅ 使用--auto-cookie自动从浏览器获取cookie。
- 接口数据模型
- ✅ 开箱即用的接口参数配置,提供完整参数生成。
- 请查阅[「使用接口模型生成XB参数」](https://johnserf-seed.github.io/f2/guide/apps/douyin/#%E4%BD%BF%E7%94%A8%E6%8E%A5%E5%8F%A3%E6%A8%A1%E5%9E%8B%E7%94%9F%E6%88%90xb%E5%8F%82%E6%95%B0-%F0%9F%9F%A2)
- 请查阅[「使用接口模型生成AB参数」](https://johnserf-seed.github.io/f2/guide/apps/douyin/#%E4%BD%BF%E7%94%A8%E6%8E%A5%E5%8F%A3%E6%A8%A1%E5%9E%8B%E7%94%9F%E6%88%90ab%E5%8F%82%E6%95%B0-%F0%9F%9F%A2)
- 接口数据过滤器
- ✅ 通过过滤接口数据,提高采集与数据处理效率。
- 请查阅[「过滤器采集数据」](https://johnserf-seed.github.io/f2/guide/apps/douyin/#%E4%BD%BF%E7%94%A8%E6%8E%A5%E5%8F%A3%E6%A8%A1%E5%9E%8B%E7%94%9F%E6%88%90xb%E5%8F%82%E6%95%B0-%F0%9F%9F%A2)
- 更多功能
- ✅ 长短链解析。
- ✅ 自定义保存目录。
- ✅ 是否下载原声。
- ✅ 是否下载封面。
- ✅ 是否下载文案。
- ✅ 单次下载作品数量。
- ✅ 单次返回作品数量。
- ✅ 自定义文件名模板。
- ✅ 代理设置。
- ✅ 指定下载时间区间。
- ✅ 提取单个/列表用户id。
- ✅ 提取单个/列表作品id。
- ✅ 提取单个/列表合集id。
- ✅ 提取单个/列表直播间rid。
- ✅ 原声json歌词转lrc歌词。
- ⌛ 设定下载作品点赞阈值。
- ⌛ 设定下载作品播放阈值。
- 更多配置文件操作,请查阅[「F2配置文件」](https://johnserf-seed.github.io/f2/site-config.html)
- 多用户配置
- ✅ 对不同用户建立不同配置与不同的下载模式。
- ✅ 灵活的cli模式方便用户快速切换配置。
- ⌛ 灵活的webui模式方便用户快速切换配置。
- 版本更新
- ✅ 全新开发 F2 依赖pip进行升级
- ✅ 自动检查 pypi 上的最新版本
- 文件检查
- ✅ 下载文件前检查文件是否已经存在,避免重复下载。
- ⌛ 添加”黑名单“,不检查这些作品是否存在。
- 命令行交互
- ✅ 提供cli模式与开发者模式
- ⌛ 提供webui模式
- ⌛ 提供本地接口转发,方便部署调用。
- 自动重命名
- ✅ 无需关心用户是否改名,从而造成重复下载。
- ⌛ 无需关心作品是否改文案,从而造成重复下载。
- 本地加密参数调用
- ✅ ABogus(dy)
- ✅ XBogus(dy、tk)
- ✅ verifyFp(dy)
- ✅ s_v_web_id(dy)
- ✅ ttwid(dy、tk)
- ✅ web_id(dy)
- ✅ _signature(dy)
- ✅ x-tt-params(tk)
- ✅ msToken(dy、tk)
- ✅ odin_tt(tk)
- ✅ device_Id(tk)
## 💡 待办/ToDo
- 创建自动化任务
- [更多请查看项目板](https://github.com/users/Johnserf-Seed/projects/1/views/1)
## 🖥 支持的操作系统/Supported Operating Systems
<details>
<summary> TikTokDownload 1.6 / F2 0.0.1.6-pw2 支持的操作系统列表 </summary>
- Windows 11
- Windows 10 版本 1809OS 内部版本 17763或更高版本
- macOS Monterey12.0)或更高版本
- macOS Big Sur11.0)或更高版本
- macOS Catalina10.15)或更高版本
- Ubuntu 20.04 LTS 或更高版本
- Debian 10 或更高版本
- CentOS 7 或更高版本
- Fedora 34 或更高版本
- Deepin (UOS) 20 或更高版本
</details>
## 📥 安装与运行/Installation and Running
1. **📦 安装/Installation**
请查阅 [「安装」](https://johnserf-seed.github.io/f2/install.html)
2. **▶️ 运行/Running**
请查阅 [「配置文件」](https://johnserf-seed.github.io/f2/install.html)
3. **🔬 测试/Test**
在 F2 安装目录打开终端运行,如果配置正确那么你不会看见报错。
```bash
python -m pytest
```
## 📸 运行过程/Running Process
<details>
<summary> 🎬 无配置文件扫码登录 </summary>
https://user-images.githubusercontent.com/40727745/fc1e6c46-d0c3-4f2a-a4a5-ca3d781e7d11
</details>
<details>
<summary> 🎬 主页作品下载 </summary>
https://user-images.githubusercontent.com/40727745/12c21d55-b629-485a-b904-54d86341c371
</details>
更多运行过程请查阅 [「F2 readme」](https://github.com/Johnserf-Seed/f2/blob/main/README.md)
## 🗂️ 项目结构/Folder
<details>
<summary>📁 目录</summary>
```bash
├─ .github
│ └─ ISSUE_TEMPLATE
│ ├── --------.md
│ └── -------.md
├─ API
│ ├── TikTokTool.txt
│ ├── user_base_info.json
│ ├── user_post_delete.json
│ ├── user_post_detail.json
│ ├── user_post_info_image.json
│ ├── user_post_info_video.json
│ └── user_profile_info.json
├─ GUI(待重构)
│ ├── Main.ui
│ ├── preview.png
│ ├── README-EN.md
│ ├── README.md
│ ├── requirements.txt
│ ├── resource.py
│ └── Resource.qrc
└─ Server
└─ algorithm
├── build-win.bat
├── package.json
├── requirements.txt
├── Server.py
├── Server.txt
├── s_v_web_id.js
├── s_v_web_id.py
├── x-bogus.js
└── x-tt-params.js
├─ .gitignore
├─ Banner.png
├─ build-win.bat
├─ Dockerfile
├─ LICENSE
├─ f2-logo.ico
├─ README-EN.md
├─ README.md
├─ requirements.txt
├─ run-server.bat
├─ run-server.sh
├─ TikTokTool.py
├─ version
└─ _config.yml
```
</details>
## 💖 赞赏/Sponsor
<a href="https://tikhub.io/"><img style="border-radius:20px" src="https://github.com/Johnserf-Seed/f2/assets/40727745/70a67dd1-dccb-44a9-b635-c29a950f1daf"></a>
[TikHub](https://tikhub.io/) 是一家提供优质数据接口服务的供应商。通过每日签到,可以获取免费额度。可以使用我的注册邀请链接:[https://beta-web.tikhub.io/users/signup?referral_code=6hLcGD94](https://beta-web.tikhub.io/users/signup?referral_code=6hLcGD94) 或 邀请码:`6hLcGD94`,注册并充值即可获得`$2`额度。
[TikHub](https://tikhub.io/) 提供以下服务:
- 丰富的数据接口
- 每日签到免费获取额度
- 高质量的API服务
- 官网https://tikhub.io/
- 项目地址https://github.com/TikHubIO/
![赞赏](https://user-images.githubusercontent.com/40727745/217866800-23980dc1-f3ce-4bc7-b192-518651fef8da.png)
感谢对本项目的支持!如果您觉得这个项目有帮助,欢迎赞助。您可以直接访问我们的 [![Patreon](https://img.shields.io/badge/Patreon-F2-red.svg?style=flat&logo=patreon)](https://www.patreon.com/F2_pypi)
## 📧 联系/Contact
如果有任何问题或者建议,可以通过邮箱联系我:
- 邮箱:[johnserf-seed@foxmail.com](mailto:johnserf-seed@foxmail.com)
## 🙏 鸣谢/Acknowledgments
- [Windows Terminal](https://aka.ms/terminal)
- [Python](https://www.python.org/)
- [httpx](https://github.com/encode/httpx)
- [click](https://github.com/pallets/click)
- [aiofiles](https://github.com/Tinche/aiofiles)
- [aiosqlite](https://github.com/omnilib/aiosqlite)
- [rich](https://github.com/willmcgugan/rich)
- [qrcode](https://github.com/lincolnloop/python-qrcode)
- [pyyaml](hhttps://github.com/yaml/pyyaml)
- [jsonpath-ng](https://github.com/h2non/jsonpath-ng)
- [m3u8](https://github.com/globocom/m3u8)
- [pytest](https://github.com/pytest-dev/pytest)
对于他们的贡献和努力,表示由衷的感谢。
## ⚖️ 免责声明/Disclaimer
此项目不出售、共享、加密、上传、研究任何个人信息。此项目及其相关代码仅供学习与研究使用,不构成任何明示或暗示的保证。使用者因使用此项目及其代码可能造成的任何形式的损失,作者不承担任何责任。
## 📜 版权声明/LICENSE
MIT License
Copyright (c) 2021 JohnserfSeed
此项目的源代码在 MIT 许可证下授权,有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 📝 贡献者守则/CoC
此项目欢迎所有的贡献者。我们希望能够创建一个友好的环境,让每个人都能在尊重和理解的氛围中共同工作。在参与贡献之前,请参阅我们的 [贡献者守则](CODE_OF_CONDUCT.md)。
## 👨‍💻贡献者/Contributors
我们欢迎任何形式的贡献,无论是提交错误报告,提出改进意见,或者是提供代码和文档。我们都欣赏你的帮助。
![Contributors](https://contributors-img.web.app/image?repo=Johnserf-Seed/TikTokDownload)