ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

DouK-Downloader 抖音 TikTok 作品批量下载与数据采集实战指南

DouK-Downloader 抖音 TikTok 作品批量下载与数据采集实战指南 DouK-Downloader 抖音 TikTok 作品批量下载与数据采集实战指南【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader想把抖音账号的作品、评论、账号数据批量拉下来存盘DouK-Downloader 基于 Python 异步请求实现抖音 / TikTok 双平台作品下载与数据采集另带直播录制和 Web API 服务化。本文给出最短跑通路径、参数速查与源码入口适合批量下载与长期采集的用户。能力矩阵能采什么哪些功能已下线维度能力作品下载抖音视频 / 图集 / 实况 / 动图最高画质TikTok 视频原画 / 图集音乐与动态 / 静态封面账号维度抖音发布 / 喜欢 / 收藏 / 收藏夹作品TikTok发布 / 喜欢作品多账号批量链接维度批量下载链接作品后台监听剪贴板链接自动下载直播获取抖音 / TikTok 直播拉流地址调用 ffmpeg 录制数据采集作品评论、合集 / 合辑、账号详细数据、综合 / 视频 / 用户 / 直播四类搜索、抖音热榜工程能力增量下载、断点续传、并发 4、自动跳过已下载、CSV/XLSX/SQLite 持久化、代理请求、局域网远程访问⚠️ 边界清单以下功能在当前版本不可用或受限使用别依赖Web UI 交互模式重构中选中只会提示该功能正在重构见 主调度类 的disable_function内置加密参数算法xBogus / aBogus 等README 明确已过期失效、不再维护需自行准备生成代码从浏览器读取 Cookie、扫码登录获取 Cookie主菜单对应代码已整段注释TikTokDownloader.py 第 114-118 行批量下载收藏作品(抖音)仅支持当前已登录 Cookie 对应账号暂不支持多账号付费作品README 明确不支持多开实例未做优化需复制整个项目文件夹独立运行首次下载环境准备到文件落地Python 3.12 与两条安装路径唯一硬性要求是 Python 版本pyproject.toml 声明requires-python 3.12低于 3.12 无法运行。拿到源码后二选一git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader pip install -r requirements.txt python main.pycd TikTokDownloader uv sync --no-dev uv run main.py依赖清单就是技术栈本身httpx[socks]异步请求、rich终端渲染、fastapi/uvicorn服务化、pydantic数据校验、aiosqlite/openpyxl持久化。Cookie 获取F12 复制 odin_ttCookie 决定接口权限和视频画质仅在失效后需要重新写入不是每次运行都写。步骤参照 Cookie 获取教程浏览器打开https://www.douyin.com/可无痕登录账号按 F12 打开开发人员工具选「网络」选项卡勾选「保留日志」筛选器输入cookie-name:odin_tt点击加载任意作品评论区选中一个请求复制Cookie完整值写入方式两种主菜单选手动输入 Cookie (抖音)粘贴回车或从剪贴板读取 Cookie (抖音)直接回车。首次下载编号步骤运行python main.py首次启动显示免责声明输入YES该选择持久化仅首次出现按上文写入抖音 Cookie返回主菜单选终端交互模式选批量下载链接作品(抖音)→手动输入待采集的作品链接粘贴一条抖音作品链接回车进度条走完后文件落在储存根路径root下的folder_name目录默认Download任意菜单直接回车返回上级输入Q或q结束程序 文件名由name_format决定默认create_time type nickname desc即创建时间_作品类型_账号昵称_作品描述。settings.json 按用途分组速查首次启动时 settings.py 的__create在项目根目录自动生成settings.json默认值集中在Settings.default第 21-121 行。改完配置文件必须重启程序才生效不支持热加载。身份凭证参数默认值一句话作用修改建议cookie抖音身份凭证字符串或字典均可登录后写入失效再更新cookie_tiktokTikTok 凭证额外需browser_info_tiktok里的device_id等初始设置douyin_platform/tiktok_platformtrue是否启用对应平台不用哪个关哪个存储路径参数默认值一句话作用修改建议root储存根路径填已存在目录空值代表项目根目录folder_nameDownload顶层下载目录名避免非法字符name_formatcreate_time type nickname desc文件命名模板从id/desc/create_time/nickname/uid/mark/type七键组合desc_length/name_length64/128描述 / 文件名最大字符数文件名过长再调max_size0文件大小上限字节0 为不限制超大文件想跳过时设置并发与限制参数默认值一句话作用修改建议timeout10请求超时秒有效范围 2-10max_retry5请求失败重试次数有效范围 0-5chunk2MB每次从服务器接收的数据块大小有效范围 128KB-2MBmax_pages0分页请求次数上限0 等价 99999控制账号拉取量downloadtrue是否下载文件只采数据设falserun_command启动时预执行的功能指令免去重复选菜单见下文持久化参数默认值一句话作用修改建议storage_format数据持久化格式取csv/xlsx/sql三值空值不落任何数据文件网络参数默认值一句话作用修改建议proxy/proxy_tiktok平台代理地址启动时实测连通性ffmpegffmpeg 可执行文件路径录制直播必填五个参数的校验逻辑与回退行为校验集中在 parameter.py共同特点非法值不会报错退出而是静默回退并写警告日志。cookie__check_cookie第 280-287 行接受字典或字符串其他类型记警告并返回空值。未登录时账号页、私密账号作品接口直接失败画质偏低第一怀疑它。root__check_root第 368-382 行先判目录存在不存在则尝试在父目录下创建都不行才回退项目根路径并写root 参数…不是有效的文件夹路径警告。name_format__check_name_format第 404-415 行要求空格分隔的每个键都在七键内任一非法整体回退默认组合create_time type nickname desc不逐键过滤。max_pages__check_max_pages第 525-535 行把 0 与非正整数统一按 99999 处理。喜欢 / 收藏接口只返回发布日期不返回操作日期程序必须拉全量再按日期筛选此参数是唯一量级阀门。proxy__check_proxy第 453-502 行启动时实际请求平台页面测连超时或报错直接返回None代理静默失效在日志里搜代理测试成功 / 失败确认状态。旧版本字段有自动映射rename_paramssettings.py 第 122-143 行default_mode→run_command、update_cookie→douyin_platform、update_cookie_tiktok→tiktok_platform、original_cover→static_cover。把 DouK-Downloader 接进你的工作流终端交互模式python main.py # 终端交互模式 - 批量下载链接作品(抖音) - 手动输入待采集的作品链接15 个功能入口定义在 main_terminal.py 的__function第 141-209 行抖音 11 项账号作品 / 链接作品 / 直播 / 评论 / 合集 / 账号详细 / 搜索 / 热榜 / 收藏 / 收藏音乐 / 收藏夹 TikTok 4 项账号作品 / 链接作品 / 合集 / 直播。已知限制批量下载收藏作品(抖音)仅支持当前登录账号。配置驱动run_command在settings.json把菜单选择顺序用空格连写进run_command启动后程序自动走完菜单链路适合定时任务run_command: 终端交互模式 批量下载账号作品(抖音) 使用 accounts_urls 参数的账号链接(推荐)__check_run_command将其按空格拆分并倒序成栈菜单每进一层弹一个账号链接可预先写在accounts_urls每项含url、tab、earliest、latest、enable字段。已知限制run_command跳过菜单不跳过前置条件Cookie 未写入时平台功能照样不可用。Web API 服务化主菜单选Web API 模式服务监听0.0.0.0:5555SERVER_HOST/SERVER_PORTstatic.py 第 9-13 行实现为 main_server.py 的APIServer.run_server第 82-101 行。访问http://127.0.0.1:5555/docs或/redoc查看自动生成的交互文档。鉴权每个接口经token_dependency第 46-51 行读取请求头token交 function.py 第 73 行的is_valid_token()校验失败返回HTTP 403。该函数当前默认return True无需令牌公开部署前把它改成固定令牌校验并可用/token接口测试。from httpx import post data {detail_id: 0123456789, pages: 2} headers {token: } resp post(http://127.0.0.1:5555/douyin/comment, jsondata, headersheaders) print(resp.json())已知限制默认绑定 0.0.0.0对外暴露前必须先设令牌并挂反向代理终结 TLS。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-bullseye最终镜像python:3.12-slimEXPOSE 5555、数据卷/app/Volume。已知限制容器无法访问宿主机文件系统与本地浏览器依赖宿主环境的功能不可用。源码阅读路径一次请求经过哪些模块以粘贴抖音作品链接并下载为例link/extractor.py 用正则把短链解析成完整链接、抽出 19 位作品 IDinterface/ 下的接口类基类模板 template.py按游标分页请求extract/extractor.py 从响应提取字段并写入记录downloader/ 先落临时文件夹再移入储存文件夹storage/ 按storage_format持久化。调度中枢是 TikTokDownloader.py 的TikTokDownloader类负责菜单分发与run_command直达。三个核心模块调度层TikTokDownloader菜单分发、Cookie 写入、版本检查另开守护线程periodic_update_params第 439-447 行每900 秒COOKIE_UPDATE_INTERVAL 15 * 60static.py 第 16 行刷新 msToken、tt_wid 并回写 Cookie。接口层API模板src/interface/template.pygenerate_params/request_data/check_response三段式run_batch循环直到has_more为 falsedeal_url_params里抖音追加a_bogusTikTok 追加X-BogusX-Gnarly子类只需关心 URL 与游标规则。下载层Downloadersrc/downloader/download.pySemaphore(MAX_WORKERS)限制并发MAX_WORKERS 4static.py 第 2 行注释注明对直播无效request_file流式写临时文件。两个值得读的工程细节重试与退避retry.py 第 10-23 行Retry.retry按max_retry上限循环每次失败后await wait()智能延时——延时而为对数正态分布均值6 秒、下限 0.5 秒function.pyget_wait_time达到上限才终止任务。文件完整性与续传FILE_SIGNATURESstatic.py 第 29-54 行内置 jpg/png/mp4/mov/mkv/flv 等文件头魔数用于校验真实类型并纠正后缀下载器在__update_headers_rangedownload.py 第 938-949 行按临时文件当前大小设置Range: bytes{position}-配合save_file的先临时后移动实现断点续传。故障排查先看这 6 种现象现象原因解法数据获取失败、视频清晰度偏低Cookie 失效或未登录按教程重写 Cookie私密账号需已登录且已关注该账号的 Cookie文件没出现在预期目录root非法已回退项目根目录日志搜root 参数警告改为已存在目录后重启代理配置了却没生效启动时代理测连失败程序自动忽略先手动验证代理可用再确认日志出现代理测试成功喜欢 / 收藏作品采集很慢接口只返回发布日期需拉全量再按日期筛选用max_pages限制请求页数缩小earliest/latest区间升级后旧作品丢失旧版数据在_internal/Volume新版未继承按 README 更新方案一将旧版_internal/Volume复制到新版_internal多开实例行为异常项目未针对多开优化复制整个项目文件夹各开独立实例⚠️ 终止程序或 ffmpeg 一律按Ctrl C不要点终端关闭按钮粘贴的链接含换行符会导致 ID 提取失败。适用场景与合规提醒DouK-Downloader 适合个人作品归档、中小规模账号数据采集、Web API 服务化集成三类场景双平台能力完整全部逻辑可读可改。⚠️ 本项目涉及数据采集与下载使用前请完整阅读 README 末尾免责声明因采集与下载行为产生的一切法律责任由使用者自行承担作者概不负责。【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表