Important
本项目仅供技术研究、个人备份和已获授权的内容处理。请遵守平台服务条款、著作权规则及所在地法律法规,不得用于侵权、批量滥用或商业盗采。
DouK-Downloader 提供统一的桌面图形界面,可直接粘贴分享文案或链接,完成抖音单个素材、抖音主页作品以及哔哩哔哩视频下载;同时保留关键词搜索、评论和账号信息采集等能力。
本分支重点增强了以下体验:
- 重新设计的桌面 GUI,统一色彩、层级、按钮和状态反馈。
- 单个抖音素材下载,支持视频、图集、实况及可选封面。
- 哔哩哔哩视频下载,支持画质选择和音视频自动合并。
- 根据实际目标文件判重:文件被删除后可以重新下载。
- 主页批量下载支持账号选择、作品预览和分类下载。
- 运行日志、任务状态、下载目录和登录状态集中展示。
| 模块 | 能力 |
|---|---|
| 单个素材 | 自动识别完整分享文案中的抖音或哔哩哔哩链接 |
| 抖音下载 | 视频、图集、实况、静态封面,无水印媒体下载 |
| 哔哩哔哩下载 | 最佳画质、1080P、720P、480P、360P,自动合并 MP4 |
| 主页批量 | 多主页解析、作品统计、账号勾选、分类下载 |
| 搜索采集 | 按关键词、发布时间、时长、内容形式等条件采集 |
| 评论采集 | 多作品评论与回复采集,可限制页数 |
| 账号采集 | 批量采集抖音账号基础信息与统计数据 |
| 数据导出 | CSV、XLSX、SQL 等格式 |
| 任务反馈 | 实时日志、状态栏、登录状态与结果路径展示 |
- Python
3.12 - Windows 10/11、macOS 或 Linux
- 可访问目标平台的网络环境
- 抖音部分接口需要有效 Cookie
- 哔哩哔哩高画质可能受账号权限、地区和视频本身清晰度限制
项目依赖中的 imageio-ffmpeg 会提供可用的 FFmpeg;哔哩哔哩音视频分离流会自动合并,无需手工处理。
git clone https://github.com/wyg916/DouK-Downloader.git
cd DouK-Downloader
py -3.12 -m venv venv
.\venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt
python gui_main.py安装完成后也可以双击:
run_douk_downloader.bat
git clone https://github.com/wyg916/DouK-Downloader.git
cd DouK-Downloader
python3.12 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
python gui_main.py需要使用原有完整终端菜单时:
python main.py在顶部“工作区设置”中选择下载根目录。所有下载和采集结果都会保存到该目录或其子目录。
数据格式用于搜索、评论和账号信息导出,可选择:
xlsxcsvsql
点击“登录 / 更新抖音 Cookie”,按照程序提示完成登录。Cookie 只保存在本机运行目录的配置文件中。
Warning
Cookie 等同于登录凭证。不要截图分享,不要提交到 Git,不要发送给任何人。
切换到“单个素材”TAB,可直接粘贴 App 中复制的完整分享文案,例如:
复制打开抖音,看看这个作品…… https://v.douyin.com/example/
或直接粘贴:
https://www.bilibili.com/video/BVxxxxxxxxx
程序会自动提取 URL 并识别平台。
抖音选项:
- 支持视频、图集和实况。
- 可选择同时下载静态封面。
- 单素材下载以目标目录中实际存在的文件为准进行判重。
- 如果手工删除已下载文件,再次执行会重新下载。
哔哩哔哩选项:
- 支持短链
b23.tv和标准视频链接。 - 可选择最佳画质或指定画质上限。
- 自动选择目标画质以内的最佳视频流和音频流。
- 下载完成后自动合并为 MP4。
切换到“主页批量”TAB:
- 粘贴一个或多个抖音主页链接。
- 点击“获取预览”。
- 查看作品数量和前 5 条作品摘要。
- 选择需要处理的账号。
- 勾选图集、视频、封面等类型。
- 点击“下载所选内容”。
“下载前清空账号文件夹”会覆盖该账号之前的本地结果,请谨慎使用。
- “搜索采集”:填写关键词、页数和筛选条件。
- “评论采集”:输入一个或多个作品链接,可采集评论回复。
- “账号信息”:输入一个或多个主页链接,批量导出账号信息。
任务进度、警告和异常会显示在底部“运行日志”区域。
实际目录会根据平台、账号和配置略有不同:
你选择的下载目录/
├─ Download/ # 抖音单个素材或作品
├─ Bilibili/ # 哔哩哔哩视频
├─ 账号昵称或账号标识/ # 主页批量下载
└─ 数据文件 # 搜索、评论、账号信息导出
公开仓库不会包含以下本地内容:
config_simple.ymlcookies.txtVolume/settings.json- 浏览器 Cookie、登录令牌和代理信息
- 下载的视频、图片、日志、数据库和缓存
- 本机虚拟环境及本地打包文件
这些路径已经加入 .gitignore。提交代码前仍建议执行一次秘密扫描,并检查:
git status
git diff --cached如果 Cookie 曾经被提交到任何公开仓库,应立即在对应平台退出全部会话并重新登录,使旧 Cookie 失效;仅从 Git 历史删除文件并不能撤销已经泄露的凭证。
当前 GUI 的单素材下载会忽略全局下载记录,以目标目录中的实际文件为准。如果目标文件已经删除,再次执行应重新下载。
批量任务仍可使用记录机制避免重复抓取;需要覆盖本地内容时,请在主页批量页使用对应覆盖选项。
哔哩哔哩高画质通常采用音视频分离流。本项目会下载两条媒体流并自动合并;请等待日志出现最终 MP4 路径后再打开文件。
程序会选择指定画质以内的最佳可用清晰度。实际画质取决于视频本身、登录状态、账号权限和地区限制。
可依次检查:
- 分享链接是否仍有效。
- 是否已经登录或更新 Cookie。
- 网络是否可以正常访问抖音。
- 运行日志中是否出现风控、验证码或接口变化提示。
确认顶部显示的下载根目录与实际查看的目录一致。单个哔哩哔哩视频默认位于 Bilibili/ 子目录,抖音素材通常位于 Download/ 或账号目录。
安装开发依赖:
pip install -r requirements.txt
pip install pytest ruff运行测试:
python -m pytest -q代码检查:
ruff check gui_main.py src/downloader/bilibili.py src/downloader/download.py \
src/tools/console.py src/config/settings.py src/custom/internal.py
python -m compileall -q gui_main.py src当前单素材测试覆盖:
- 分享文案 URL 提取与平台识别
- 抖音实际文件判重
- 哔哩哔哩格式选择
- ANSI 日志清理
- 分块下载与重试相关逻辑
DouK-Downloader/
├─ gui_main.py # 桌面 GUI
├─ main.py # 终端模式入口
├─ src/
│ ├─ application/ # 应用编排
│ ├─ downloader/ # 抖音与哔哩哔哩下载
│ ├─ interface/ # 数据采集接口
│ ├─ manager/ # 缓存、数据库与记录
│ ├─ storage/ # CSV/XLSX/SQL 等存储
│ ├─ testers/ # 自动化测试
│ └─ tools/ # 通用工具
├─ static/ # 图标与运行时静态资源
├─ locale/ # 本地化资源
├─ requirements.txt
├─ pyproject.toml
└─ LICENSE
欢迎提交 Issue 和 Pull Request。提交前请:
- 确保没有包含 Cookie、下载内容、日志或个人路径。
- 为新增逻辑补充或更新测试。
- 运行测试和代码检查。
- 在 PR 中说明改动目的、影响范围和验证方式。
本项目基于 JoeanAmier/TikTokDownloader 继续开发,感谢原作者及所有贡献者。
本仓库中的改动主要包括桌面 GUI、单个抖音素材下载、哔哩哔哩视频下载、实际文件判重和相关稳定性优化。项目继续遵循 GNU General Public License v3.0。分发修改版本时请保留许可证、源码和上游归属说明。
- 本工具不提供内容授权,也不绕过付费、访问控制或数字版权保护。
- 使用者应确认自己拥有下载、保存、分析和处理目标内容的合法权利。
- 平台接口可能随时变化,项目不保证所有功能永久可用。
- 因使用本项目产生的账号、数据、版权或法律风险由使用者自行承担。


