DouK-Downloader 抖音TikTok下载采集:从上手到源码

发布时间:2026/10/22 1:32:16

DouK-Downloader 抖音TikTok下载采集:从上手到源码 DouK-Downloader 抖音TikTok下载采集从上手到源码【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader解决批量作品归档问题你手上有 200 条抖音作品要归档逐条右键另存在浏览器里不现实你还要保留作品描述、点赞数、作者标识这类结构化数据。DouK-Downloader历史名称TikTokDownloader就是为此而生的一个基于httpx异步请求的抖音/TikTok 作品下载与数据采集工具覆盖作品下载、账号采集、直播录制、服务化集成四类场景全部逻辑开源可读。使用场景能力单人归档单链接下载自动跳过已下载账号批量采集发布/喜欢/收藏作品批量下载链接批量下载粘贴链接下载监听剪贴板链接直播录制获取拉流地址ffmpeg 录制数据采集评论、合集、账号、搜索、热榜服务化集成Web API 暴露局域网远程访问工程保障多线程、断点续传、数据持久化⚠️ 以下功能在当前版本中已弃用或失效请勿依赖Web UI 交互模式重构中菜单选择后仅提示该功能正在重构见disable_functionsrc/application/TikTokDownloader.py 约第 138-145 行内置加密参数算法xBogus/aBogus 等已过期失效、不再维护部分功能可能无法正常工作需自行准备生成代码从浏览器读取 Cookie / 扫码登录获取 Cookie已弃用/失效主菜单对应代码已注释src/application/TikTokDownloader.py 约第 114-118 行。5 分钟跑通首次下载环境硬指标只有一条Python ≥ 3.12Windows 10 及以上、macOS、Linux 均可README 推荐用 Windows 11 自带终端以获得最佳交互体验。两条等价安装路径任选其一git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader uv sync --no-dev uv run main.pycd TikTokDownloader python -m venv venv pip install -r requirements.txt python main.py依赖清单requirements.txt即技术栈本身httpx异步请求、rich彩色终端、fastapi/uvicorn服务化、pydantic数据校验、aiosqlite/openpyxl持久化。首次运行步骤看到免责声明输入YES确认该选择持久化仅首次出现主菜单选择手动输入 Cookie (抖音)粘贴 Cookie 回车也可选从剪贴板读取 Cookie (抖音)复制后直接回车返回主菜单选择终端交互模式选择批量下载链接作品(抖音)→手动输入待采集的作品链接粘贴一个抖音作品链接回车等待进度条走完文件落在项目下的Download目录文件名含创建时间、昵称、描述任意菜单直接回车返回上级输入Q或q结束程序。 Cookie 是浏览器端身份凭证仅在失效后需要重新写入并非每次运行都要更新。获取步骤参考 docs/Cookie获取教程.md浏览器访问抖音网页版按F12打开开发人员工具「网络」选项卡勾选「保留日志」筛选框输入cookie-name:odin_tt点击任意作品评论区后复制一个请求的Cookie完整值。最小可运行片段写入 Cookie 后python main.py # 手动输入 Cookie (抖音) - 粘贴 Cookie # - 终端交互模式 - 批量下载链接作品(抖音) # - 手动输入待采集的作品链接 - 粘贴作品链接 # 产物落在 Download/ 目录文件名含创建时间、昵称、描述挑 8 个关键参数配置文件settings.json首次启动自动生成生成逻辑见 src/config/settings.py 的__create约第 151-162 行默认值定义在Settings.default约第 21-121 行。不看全量参数这 8 个改错会直接影响结果参数默认值一句话作用改错的后果cookie抖音身份凭证决定画质非 dict/str 记警告返回空全部未登录root储存根路径不存在且创建失败回退项目根目录folder_nameDownload顶层下载目录名非法字符被过滤为空回退默认值name_formatcreate_time type nickname desc文件命名模板任一键非法整体回退默认四键storage_format数据持久化格式不在白名单返回空数据不落盘max_pages0分页请求次数上限0 或非法值统一按 99999 处理proxy平台代理地址启动测连超时代理被静默忽略timeout10请求超时秒低于 2 或非整数回退默认值 10校验逻辑都在 src/config/parameter.py__check_cookie约第 280-287 行同时接受字典与字符串非法类型记警告并返回空值__check_root约第 368-382 行先判目录存在再尝试在父目录下创建都不行才回退项目根路径并写警告日志__check_name_format约第 404-415 行要求每个键都在NAME_KEYS七键内任一非法即整体回退create_time type nickname desc不抛异常__check_max_pages约第 525-535 行中0与非正整数统一按 99999 处理__check_proxy约第 453-502 行启动时实际请求平台页面测连超时或报错直接返回None。喜欢/收藏接口只返回发布日期而非操作日期程序必须拉全量再筛选max_pages是这个场景唯一的量级阀门。配置修改后需重启程序才生效不支持热加载读取时缺失参数会自动补齐默认值并写回settings.py__check约第 178-192 行旧版本字段经rename_paramssettings.py 约第 122-143 行自动映射default_mode→run_command、update_cookie→douyin_platform、update_cookie_tiktok→tiktok_platform、original_cover→static_cover。读懂核心数据链路完整链路一句话串起输入经 src/link/extractor.py 解析短链为完整作品链接src/interface/ 下各接口类发起分页请求src/extract/extractor.py 统一提取字段src/downloader/download.py 先落临时目录再移入储存目录src/storage/ 按storage_format持久化调度中枢是 src/application/TikTokDownloader.py 的主菜单分发与run_command直达。调度中枢TikTokDownloader一句话职责菜单分发、Cookie 写入、版本检查、run_command直达功能。重点看约第 439-447 行的periodic_update_params它开一个独立守护线程每轮等待COOKIE_UPDATE_INTERVAL15 分钟src/custom/static.py 第 16 行后刷新 msToken、tt_wid 并回写 Cookie这就是长时间运行后画质不衰减的原因。终端菜单的 15 个功能入口定义在 src/application/main_terminal.py 的__function约第 141-209 行每个入口就是一个菜单文案 处理函数的元组。三段式模板API一句话职责统一的请求框架。src/interface/template.py 的API类固定了generate_params→request_data→check_response三段式约第 95-299 行拼 URL 参数、发请求、按has_more更新游标判断翻页。account.py、detail.py、comment.py、live.py、search.py、hot.py 这些子类只关心各自的 URL 与游标规则。你重点看约第 301-395 行的四个请求方法因为它们都套了Retry.retry装饰器失败后await wait()智能延时再试直到max_retry上限默认 5 次才终止重试循环在 src/tools/retry.py 约第 10-23 行。下载层Downloader一句话职责把下载 URL 变成完整文件。三个细节值得读类属性semaphore Semaphore(MAX_WORKERS)src/downloader/download.py 第 45 行MAX_WORKERS 4见 src/custom/static.py 第 2 行把并发下载锁在 4 路__update_headers_range约第 938-949 行读取本地临时文件的字节数写Range: bytes{position}-请求头这是断点续传的实现request_file约第 584-653 行先落临时目录save_file约第 844-846 行完成后再移入储存目录避免半截文件污染目标文件夹。FILE_SIGNATURESsrc/custom/static.py 约第 29-57 行内置 jpg/png/mp4/mov 等文件头魔数下载后据此校验真实类型并纠正后缀。部署容器与 Web API 服务Docker 路径三行起容器docker pull joeanamier/tiktok-downloader docker run --name tk -p 5555:5555 -v tiktok_downloader_volume:/app/Volume -it joeanamier/tiktok-downloader docker start -i tk也可用 Dockerfile 本地构建双阶段构建最终镜像基于python:3.12-slim。容器内无法访问宿主机文件系统与本地浏览器从浏览器读取 Cookie等依赖宿主环境的功能不可用其余功能正常。Web API 路径主菜单选择Web API 模式程序在0.0.0.0:5555启动 FastAPI 服务常量定义于 src/custom/static.py 约第 9-13 行SERVER_HOST/SERVER_PORT服务实现在 src/application/main_server.py 的APIServer.run_server约第 82-101 行。浏览器访问http://127.0.0.1:5555/docs或/redoc可查阅自动生成的交互文档。鉴权机制每个接口经token_dependencymain_server.py 约第 46-51 行读取请求头中的token交由is_valid_token()src/custom/function.py 第 73 行校验失败返回 HTTP 403。项目默认无需令牌公开部署时建议在is_valid_token()处设置固定令牌防止恶意请求设置位置 README 已明确标注并可用/token接口测试令牌有效性from httpx import post # 调用评论采集接口 resp post( http://127.0.0.1:5555/douyin/comment, json{detail_id: 0123456789, pages: 2}, headers{token: }, ) print(resp.json()) 生产化各一句多实例请复制整个项目文件夹隔离运行对外暴露前挂一层反向代理终结 TLS 并做限流长期运行将 uvicorn 日志重定向到文件落盘。现象原因解法获取失败、画质偏低Cookie 失效或未登录重写 Cookie私密账号用已关注它的账号文件不在预期目录root 非法已回退项目根目录查日志中 root 警告改为已存在目录代理配置了却没生效启动测连失败程序自动忽略手动验证代理确认日志有代理测试成功喜欢/收藏采集很慢只返回发布日期需拉全量筛选用max_pages控制请求页数升级后旧作品丢失旧版数据在_internal/Volume将旧版_internal/Volume复制到新版多开实例行为异常项目未针对多开优化复制整个项目文件夹各开独立实例DouK-Downloader 适用于个人作品归档、中小规模账号数据采集与 Web API 服务化集成三类场景。使用前请完整阅读 README 末尾的免责声明下载与采集行为产生的法律责任由使用者自行承担。【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/22 1:32:16

PS3 老游戏怎么跑中文?RPCS3 汉化补丁系统一次讲透

PS3 老游戏怎么跑中文?RPCS3 汉化补丁系统一次讲透 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 晚上十点,你打开那盘搁置了两年的 PS3 老游戏,标题画面、菜…

2026/10/22 2:42:27

大模型偏好调优:从奖励模型到RLHF与DPO的实战指南

大模型能不能“写一手好文章”“回一句得体的建议”,很多时候靠的不是它背了多少数据,而是它在“什么算好、什么算差”这件事上有没有被教明白。早期大家发现,单纯靠预训练加指令微调,模型可以做到“有问必答”,但回答…

2026/10/22 2:42:27

AI重塑企业业务流程:八大场景、实施方法与避坑指南

1. 先聊清楚:AI重塑业务流程到底在重塑什么过去一年我走访了不少企业,从几百人的制造工厂到几千人的连锁零售公司,大家都在聊AI,但绝大多数都卡在同一道坎上:不知道从哪个环节切入,也不知道AI换掉老流程之后…

2026/10/22 2:42:27

SLES等保测评命令全解析:从身份鉴别到审计日志的检查与整改

做等保测评的人最清楚,进到一台SUSE Linux Enterprise Server面前,满屏命令里到底哪些是测评项该看的,哪些只是系统运行的正常输出,这中间隔着一整套安全控制点的理解。SLES在企业里多是核心业务的承载系统,等保2.0要求…

2026/10/22 2:42:27

MIMO技术实战:从信道估计到自适应层数的工程落地指南

简介:这份PDF文档系统梳理了MIMO(多输入多输出)无线通信技术的发展脉络,面向通信工程、电子信息类专业学生及移动通信技术研究者,帮助读者建立从原理到应用的完整认知框架。文档从MIMO技术的基本概念入手,阐…

2026/10/22 2:37:23

Honeywell EPKS SafeView配置实战:只读监控界面的正确打开方式

简介:本资源是一份面向Honeywell EPKS系统操作员与DCS工程技术人员的实战型配置指南,聚焦SafeView这一关键人机界面管理功能,解决工业现场Windows通用桌面环境下画面混乱、关键信息易被遮挡、多应用协同低效等典型问题。文档基于Honeywell标准…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑