-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Documentation
🔥 TikTok 发布/喜欢/合辑/直播/视频/图集/音乐;抖音发布/喜欢/收藏/收藏夹/视频/图集/实况/直播/音乐/合集/评论/账号/搜索/热榜数据采集工具:完全开源,基于 HTTPX 模块实现的免费数据采集和文件下载工具;批量下载抖音账号发布、喜欢、收藏、收藏夹作品;批量下载 TikTok 账号发布、喜欢作品;下载抖音链接或 TikTok 链接作品;获取抖音直播推流地址;下载抖音直播视频;获取 TikTok 直播推流地址;下载 TikTok 直播视频;采集抖音作品评论数据;批量下载抖音合集作品;批量下载 TikTok 合辑作品;采集抖音账号详细数据;采集抖音用户 / 作品 / 直播搜索结果;采集抖音热榜数据。
⭐ 文档对应项目版本:5.5
;文档内容正在完善中,如有发现任何错误或描述模糊之处,请告知作者以便改进!
⭐ 本项目包含手动构建可执行文件的 GitHub Actions,使用者可以随时使用 GitHub Actions 将最新源码构建为可执行文件!
-
运行可执行文件 或者 配置环境运行
-
运行可执行文件
- 下载 Releases 或者 Actions 构建的可执行文件压缩包
- 解压后打开程序文件夹,双击运行
main
-
配置环境运行
- 安装
3.12
版本的 Python 解释器 - 下载最新的源码或 Releases 发布的源码至本地
- 运行
python -m venv venv
命令创建虚拟环境(可选) - 运行
.\venv\Scripts\activate.ps1
或者venv\Scripts\activate
命令激活虚拟环境(可选) - 运行
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
命令安装程序所需模块 - 运行
python .\main.py
或者python main.py
命令启动 TikTokDownloader
- 阅读 TikTokDownloader 的免责声明,根据提示输入内容
- 将 Cookie 信息写入配置文件
-
手动复制粘贴 Cookie(推荐)
- 参考 Cookie 提取教程,复制所需 Cookie 至剪贴板
- 选择
复制粘贴写入 Cookie
选项,按照提示将 Cookie 写入配置文件
-
从浏览器获取 Cookie(推荐)
- 选择
从浏览器获取 Cookie
选项,按照提示选择浏览器类型
-
扫码登录获取 Cookie(弃用)
- 选择
扫码登录获取 Cookie
选项,程序会显示登录二维码图片,并使用默认应用打开图片 - 使用抖音 APP 扫描二维码并登录账号
- 按照提示操作,将 Cookie 写入配置文件
- 返回程序界面,依次选择
终端交互模式
->批量下载链接作品(抖音)
->手动输入待采集的作品链接
- 输入抖音作品链接即可下载作品文件
TikTok 平台功能需要额外设置配置文件 browser_info_tiktok
的 device_id
参数,否则平台功能可能无法正常使用!参数获取方式与 Cookie 类似,详见 Cookie 获取教程
- 获取镜像
- 方式一:使用
Dockerfile
文件构建镜像 - 方式二:使用
docker pull joeanamier/tiktok-downloader
命令拉取镜像 - 创建容器:
docker run -it joeanamier/tiktok-downloader
- 运行容器
- 启动容器:
docker start -i 容器名称/容器 ID
- 重启容器:
docker restart -i 容器名称/容器 ID
- 启动容器:
Docker 容器无法直接访问宿主机的文件系统,部分功能不可用,例如:从浏览器获取 Cookie
;其他功能如有异常请反馈!
点击查看 Cookie 获取教程;无效或失效的 Cookie 会导致程序获取数据失败或者无法下载最高分辨率的视频文件!
程序功能 | 是否需要登录 |
---|---|
下载账号发布作品 | ⭕建议登录 |
下载账号喜欢作品 | ⭕建议登录 |
下载链接作品 | ❌无需登录 |
获取直播推流地址 | ❌无需登录 |
下载直播视频 | ❌无需登录 |
获取作品评论数据 | ❌无需登录 |
下载合集作品 | ❌无需登录 |
获取账号数据 | ❌无需登录 |
采集搜索结果 | ❌无需登录 |
采集热榜数据 | ❌无需登录 |
下载收藏作品 | ✔️需要登录 |
下载收藏夹作品 | ✔️需要登录 |
获取收藏合集数据 | ✔️需要登录 |
获取收藏音乐数据 | ✔️需要登录 |
获取收藏短剧数据 | ✔️需要登录 |
- Cookie 仅需在失效后重新写入配置文件,并非每次运行程序都要写入配置文件!
Cookie 会影响下载的视频文件分辨率,如果无法下载最高分辨率的视频文件,请尝试更新 Cookie!
- 程序获取数据失败时,可以尝试更新 Cookie 或者使用已登录的 Cookie!
⭐ 推荐使用 Windows 终端(Windows 11 自带默认终端)运行程序以便获得最佳彩色交互显示效果!
- 完整链接:使用浏览器打开抖音或 TikTok 链接时,地址栏所显示的 URL 地址。
- 分享链接:点击 APP 或网页版的分享按钮得到的 URL 地址,抖音平台以
https://v.
开头,掺杂中文和其他字符;TikTok 平台以https://vm.
或https://vt.
开头,不掺杂其他字符;使用时不需要手动去除中文和其他字符,程序会自动提取 URL 链接。
- 项目支持使用
CSV
、XLSX
、SQLite
格式文件储存采集数据。 - 配置文件
settings.json
的storage_format
参数可设置数据储存格式类型,如果不设置该参数,程序不会储存任何数据至文件。 -
采集作品评论数据
、采集账号详细数据
、采集搜索结果数据
、采集抖音热榜数据
模式必须设置storage_format
参数才能正常使用。 - 程序所有数据均储存至
root
参数路径下的Data
文件夹。
项目部分功能支持从文本文档(TXT)读取链接,如需使用,请在计算机任意路径创建一个空白文本文档,然后编辑文件内容,每行输入单个链接,编辑完成后保存文件。
文本文档编码:UTF-8
https://www.douyin.com/user/abcd?vid=123456789
https://www.douyin.com/search/key?modal_id=123456789
https://www.douyin.com/video/123456789
https://www.douyin.com/note/123456789
获取直播推流地址
功能需要调用 ffmpeg
下载直播文件;程序会优先调用系统环境的 ffmpeg
,其次调用 ffmpeg
参数指定的 ffmpeg
,如果 ffmpeg
不可用,程序将不支持直播下载!
建议前往 官方网站 获取 ffmpeg
程序!
项目开发时所用的 FFmpeg 版本信息如下,不同版本的 FFmpeg 可能会有差异;若功能异常,请向作者反馈!
ffmpeg version N-116650-g7897b0beed-20240815 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 14.2.0 (crosstool-NG 1.26.0.106_ed12fa6)
程序功能 | 功能类型 |
---|---|
批量下载账号作品(发布、喜欢) | 文件下载, 数据采集 |
批量下载链接作品 | 文件下载, 数据采集 |
获取直播推流地址 | 文件下载, 数据提取 |
采集作品评论数据 | 数据采集 |
批量下载合集作品 | 文件下载, 数据采集 |
采集账号详细数据 | 数据采集 |
采集搜索结果数据 | 数据采集 |
采集抖音热榜数据 | 数据采集 |
批量下载收藏作品 | 文件下载,数据采集 |
批量下载收藏夹作品 | 文件下载,数据采集 |
批量下载收藏音乐作品 | 文件下载,数据采集 |
本项目支持抖音平台和 TikTok 平台的数据采集和文件下载功能,平台功能默认开启,如果不需要使用平台的任何功能,可以编辑配置文件关闭平台功能。
本项目内置 Cookie 更新机制,程序会周期性更新抖音与 TikTok Cookie 的部分参数,以保持 Cookie 的有效性(或许没有效果?),该功能无法防止 Cookie 失效,Cookie 失效后需要重新写入;关闭平台功能后,对应平台的 Cookie 更新功能将会禁用!
配置文件:项目根目录下的 settings.json
文件,可以自定义设置程序部分运行参数。
若无特殊需求,大部分配置参数无需修改,直接使用默认值即可。
cookie
、cookie_tiktok
与 device_id
参数为必需参数,必须设置该参数才能正常使用程序;其余参数可以根据实际需求进行修改!
如果您的计算机没有合适的程序编辑 JSON 文件,建议使用 JSON 在线工具 编辑配置文件内容。
注意: 手动修改 settings.json
后需要重新运行程序才会生效!
参数 | 类型 | 说明 | 默认 |
---|---|---|---|
mark | str | 1账号/合集标识,用于区分账号/合集;属于 accounts_urls、mix_urls 和 owner_url 子参数 | 账号昵称/合集标题 |
url | str | 账号主页/合集作品链接;属于 accounts_urls、mix_urls 和 owner_url 子参数 | 无 |
tab | str |
2主页标签,post 代表发布作品、favorite 代表喜欢作品;属于 accounts_urls 子参数
|
发布作品 |
earliest | str | float | int | 作品最早发布日期,格式:2023/1/1 、整数 、浮点数 ;设置为数值代表基于 latest 参数的前 XX 天,属于 accounts_urls 子参数
|
不限制 |
latest | str | 作品最晚发布日期,格式:2023/1/1 ;属于 accounts_urls 子参数
|
不限制 |
enable | bool | 参数对象是否启用,设置为 false 时程序会跳过处理;属于 accounts_urls 和 mix_urls 子参数
|
启用 |
accounts_urls[mark, url, tab, earliest, latest, enable] | list[dict[str, str, str, Any, str, bool]] |
3抖音平台:账号标识,账号链接,主页标签,最早发布日期,最晚发布日期,是否启用;作为 批量下载账号作品 模式选项,支持多账号,以字典格式包含六个参数 |
无 |
mix_urls[mark, url, enable] | list[dict[str, str, bool]] |
3抖音平台:合集标识,合集链接或作品链接,是否启用;作为 批量下载合集作品 模式选项,支持多合集,以字典格式包含三个参数 |
无 |
owner_url[mark, url] | dict[str, str] |
3抖音平台:当前登录 Cookie 的账号标识,账号主页链接;批量下载收藏作品 模式下用于获取账号信息,以字典格式包含两个参数 |
无 |
accounts_urls_tiktok[mark, url, tab, earliest, latest, enable] | list[dict[str, str, str, Any, str, bool]] |
3TikTok 平台;参数规则与 accounts_urls 一致 |
无 |
mix_urls_tiktok[mark, url, enable] | list[dict[str, str, bool]] |
3TikTok 平台;参数规则与 mix_urls 一致 |
无 |
owner_url_tiktok[mark, url](未生效) | dict[str, str] |
3TikTok 平台;参数规则与 owner_url 一致 |
无 |
root | str | 作品文件和数据记录保存路径;建议使用绝对路径 | 项目根路径 |
folder_name | str | 批量下载链接作品时,保存文件夹的名称 | Download |
name_format | str | 文件保存时的命名规则,值之间使用空格分隔,支持:id :作品 ID;desc :作品描述;create_time :发布时间;nickname :账号昵称;mark :账号标识;uid :账号 ID;type :作品类型 |
发布时间-作品类型-账号昵称-描述 |
date_format | str | 日期时间格式;点击查看设置规则 | 年-月-日 时:分:秒 |
split | str | 文件命名的分隔符 | - |
folder_mode | bool | 是否将每个作品的文件储存至单独的文件夹,文件夹名称格式与 name_format 参数一致 |
false |
music | bool | 是否下载作品音乐 | false |
truncate | int | 文件下载进度条中描述字符串的最大长度,该参数用于调整显示效果 | 64 |
storage_format | str |
3采集数据持久化储存格式,支持:csv 、xlsx 、sql (SQLite) |
不保存 |
cookie | dict | str | 4抖音网页版 Cookie, 必需参数; 建议通过程序写入配置文件,亦可手动编辑 | 无 |
cookie_tiktok | dict | str | 4TikTok 网页版 Cookie, 必需参数; 建议通过程序写入配置文件,亦可手动编辑 | 无 |
dynamic_cover | bool | 是否下载视频作品动态封面图 | false |
original_cover | bool | 是否下载视频作品静态封面图 | false |
proxy | str | 抖音请求代理地址 | 不使用代理 |
proxy_tiktok | str | TikTok 请求代理地址 | 不使用代理 |
twc_tiktok | str | TikTok Cookie 的 ttwid 值,一般情况下无需设置 | 无 |
download | bool | 是否开启项目的下载功能,如果关闭,程序将不会下载任何文件 | true |
max_size | int | 作品文件大小限制,单位字节,超出大小限制的作品文件将会跳过下载 | 无限制 |
chunk | int | 每次从服务器接收的数据块大小,单位字节 | 2097152(2 MB) |
timeout | int | 请求数据的超时限制,单位秒 | 10 |
max_retry | int | 发送请求获取数据发生异常时重试的最大次数,设置为 0 代表关闭重试 |
10 |
max_pages | int | 批量下载账号喜欢作品、收藏作品或者采集作品评论数据时,请求数据的最大次数(不包括异常重试) | 不限制 |
run_command | str | 设置程序启动执行的默认命令,相当于模拟用户输入序号或内容(多个序号或内容之间使用空格分隔) | 无 |
ffmpeg | str |
3ffmpeg.exe 路径,下载直播时使用,如果系统环境存在 ffmpeg 或者不想使用 ffmpeg ,无需设置该参数 |
无 |
douyin_platform | bool | 5是否启用抖音平台功能 | true |
tiktok_platform | bool | 5是否启用 TikTok 平台功能 | true |
browser_info | dict | 抖音平台浏览器信息,一般情况下无需修改 | 内置参数 |
browser_info_tiktok | dict | TikTok 平台浏览器信息,一般情况下仅需修改 device_id 参数,获取方式查阅 Cookie 获取教程
|
内置参数 |
补充说明:
- 详见标识参数说明
- 设置为
favorite
时,需要确保账号喜欢作品公开可见,或者配置对应账号的登录 Cookie - 该参数仅在部分模式和功能中生效,如果不需要使用相应的模式和功能,无需设置该参数
- 必须设置平台的 Cookie 才能使用该平台的数据采集和文件下载功能
- 如果不需要使用该平台的任何功能,可以将该参数设置为
false
{
"accounts_urls": [
{
"mark": "账号A",
"url": "https://www.douyin.com/user/aaa",
"tab": "post",
"earliest": "2024/3/1",
"latest": "2024/7/1",
"enable": true
},
{
"mark": "账号B",
"url": "https://v.douyin.com/bbb",
"tab": "favorite",
"earliest": 30,
"latest": "",
"enable": false
}
],
"accounts_urls_tiktok": "参数规则与 accounts_urls 一致",
"mix_urls": [
{
"mark": "",
"url": "https://v.douyin.com/ccc",
"enable": true
},
{
"mark": "合集B",
"url": "https://www.douyin.com/video/123",
"enable": false
}
],
"mix_urls_tiktok": "参数规则与 mix_urls 一致",
"owner_url": {
"mark": "已登录 Cookie 的账号标识,可以设置为空字符串",
"url": "已登录 Cookie 的账号主页链接"
},
"owner_url_tiktok": "参数规则与 owner_url 一致",
"root": "C:\\TikTokDownloader",
"folder_name": "SOLO",
"name_format": "create_time uid id",
"date_format": "%Y-%m-%d",
"split": " ",
"folder_mode": false,
"music": false,
"truncate": 32,
"storage_format": "xlsx",
"cookie": {
"passport_csrf_token": "demo",
"passport_csrf_token_default": "demo",
"odin_tt": "demo"
},
"cookie_tiktok": "参数规则与 cookie 一致",
"dynamic_cover": false,
"original_cover": false,
"proxy": "http://127.0.0.1:9999",
"proxy_tiktok": "参数规则与 proxy 一致",
"twc_tiktok": "",
"download": true,
"max_size": 104857600,
"chunk": 10485760,
"timeout": 5,
"max_retry": 10,
"max_pages": 2,
"run_command": "6 2 1",
"ffmpeg": "C:\\TikTokDownloader\\ffmpeg.exe",
"douyin_platform": true,
"tiktok_platform": true,
"browser_info": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
"browser_platform": "Win32",
"browser_name": "Chrome",
"browser_version": "126.0.0.0",
"engine_name": "Blink",
"engine_version": "126.0.0.0",
"os_name": "Windows",
"os_version": "10",
"webid": ""
},
"browser_info_tiktok": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
"app_language": "zh-Hans",
"browser_language": "zh-SG",
"browser_name": "Mozilla",
"browser_platform": "Win32",
"browser_version": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
"language": "zh-Hans",
"os": "windows",
"priority_region": "CN",
"region": "US",
"tz_name": "Asia/Shanghai",
"webcast_language": "zh-Hans",
"device_id": "1234567890"
}
}
{
"accounts_urls": [
{
"mark": "",
"url": "https://www.douyin.com/user/aaa",
"tab": "favorite",
"earliest": "",
"latest": "",
"enable": true
},
{
"mark": "",
"url": "https://v.douyin.com/bbb",
"tab": "post",
"earliest": "",
"latest": "",
"enable": true
},
{
"mark": "",
"url": "https://www.douyin.com/user/ccc",
"tab": "favorite",
"earliest": "",
"latest": "",
"enable": false
}
]
}
将待下载的账号信息写入配置文件,每个账号对应一个对象/字典,tab
参数设置为 favorite
代表批量下载喜欢作品,支持多账号;accounts_urls_tiktok
参数规则一致。
下载账号喜欢作品需要确保账号喜欢作品公开可见,或者配置对应账号的登录 Cookie!
下载账号喜欢作品需要使用已登录的 Cookie,否则可能无法获取正确的账号信息!
{
"accounts_urls": [
{
"mark": "账号A",
"url": "https://v.douyin.com/aaa",
"tab": "post",
"earliest": "2023/12/1",
"latest": "",
"enable": true
},
{
"mark": "",
"url": "https://v.douyin.com/bbb",
"tab": "post",
"earliest": 30,
"latest": "2024/12/1",
"enable": true
}
]
}
如果已经采集某账号的全部发布作品,建议设置 earliest
和 latest
参数以减少后续采集请求次数,提高程序运行效率;accounts_urls_tiktok
参数规则一致。
示例:将 earliest
参数设置为 2023/12/1
,程序获取账号发布作品数据时,不会获取早于 2023/12/1
的作品数据。
示例:将 earliest
参数设置为 30
,latest
参数设置为 2024/12/1
,程序获取账号发布作品数据时,仅获取 2024 年 12 月 1 日当天及之前 30 天内发布的作品数据。
{
"root": "C:\\TikTokDownloader",
"folder_name": "SOLO"
}
程序会将账号作品和合集作品的文件 和 记录的数据储存至 C:\TikTokDownloader
文件夹内,链接作品的文件会储存至 C:\TikTokDownloader\SOLO
文件夹内。
{
"name_format": "create_time uid id",
"split": " @ "
}
作品文件名称格式为: 发布时间 @ 作者UID @ 作品ID
- 如果作品没有描述,文件名称的描述内容将替换为作品 ID。
- 批量下载链接作品时,如果在
name_format
参数中设置了mark
字段,程序会自动替换为nickname
字段。
{
"date_format": "%Y-%m-%d"
}
发布时间格式为:XXXX年-XX月-XX日,详细设置规则可以 查看文档
{
"storage_format": "xlsx"
}
使用 XLSX
格式储存程序采集数据。
{
"max_size": 104857600
}
作品文件大小限制为 104857600 字节(100 MB),超过该大小的作品文件会自动跳过下载;直播文件不受限制。
{
"chunk": 10485760
}
下载文件时每次从服务器接收 10485760 字节 (10 MB)的数据块。
- 影响下载速度:较大的 chunk 会增加每次下载的数据量,从而提高下载速度。相反,较小的 chunk 会降低每次下载的数据量,可能导致下载速度稍慢。
- 影响内存占用:较大的 chunk 会一次性加载更多的数据到内存中,可能导致内存占用增加。相反,较小的 chunk 会减少每次加载的数据量,从而降低内存占用。
{
"max_pages": 2
}
下载账号喜欢作品、收藏作品以及采集作品评论数据时,仅获取前 2
页数据;用于解决下载账号喜欢作品、收藏作品需要获取全部数据的问题,以及作品评论数据数量过多的采集问题。
不影响下载账号发布作品,如需控制账号发布作品数据获取次数,请使用 earliest
和 latest
参数实现。
{
"run_command": "6 1 1 Q"
}
上述命令表示运行程序自动依次执行 终端交互模式
-> 批量下载账号作品(抖音)
-> 使用 accounts_urls 参数的账号链接(推荐)
-> 退出程序
该参数可以实现设置默认启动模式、运行功能后自动退出、自动读取浏览器 Cookie 等高级自动化功能!
- 其他示例:
-
6 2
:代表依次执行终端交互模式
->批量下载账号作品(抖音)
-
8
:代表执行Web API 模式
-
2 7
:代表依次执行从浏览器获取 Cookie (抖音)
->Edge
{
"proxy": "http://127.0.0.1:9999"
}
程序获取网络数据时使用 http://127.0.0.1:9999
作为代理;程序会自动验证代理是否可用,如果代理不可用,则 proxy
参数不生效。
如果您的电脑使用了代理工具且未修改默认端口,可以尝试以下设置:
- Clash:
http://127.0.0.1:7890
- v2rayN:
http://127.0.0.1:10809
如果想要进一步修改程序功能,可以编辑 src/custom
文件夹内容(仅适用于通过源码运行项目),按照注释指引和实际需求进行自定义修改。
- 设置作品文件下载的最大线程数量
- 设置文件名称的作品描述长度限制
- 设置非法字符替换规则
- 开启服务器模式局域网访问功能
- 设置服务器模式主机及端口
- 设置平台参数更新间隔
- 设置彩色交互提示颜色
- 设置请求数据延时间隔
- 设置自定义作品筛选规则
- 设置分批获取数据策略
- 设置服务器模式参数验证
参考 Cookie 提取教程,手动从浏览器复制所需 Cookie 至剪贴板,按照程序提示输入 Cookie 后回车确认,程序会自动处理 Cookie 并写入配置文件。
如果粘贴 Cookie 至终端后无响应,可能是 Cookie 文本长度超出终端最大文本长度限制,请考虑更换终端或者其他写入方式。
成功写入配置文件后,程序会提示当前 Cookie 登录状态!
自动读取本地浏览器的 Cookie 数据,并提取所需 Cookie 写入配置文件。
成功写入配置文件后,程序会提示当前 Cookie 登录状态!
Windows 系统需要以管理员身份运行程序才能读取 Chromium、Chrome、Edge 浏览器 Cookie!
程序自动获取抖音登录二维码,随后会在终端输出二维码,并使用系统默认图片浏览器打开二维码图片,使用者通过抖音 APP 扫码并登录账号,操作后关闭二维码图片窗口,程序会自动检查登录结果并将登录后的 Cookie 写入配置文件。
注意:扫码登录可能会导致抖音账号被风控,该功能仅限学习研究,未来可能禁用或移除该功能!
功能最全面的模式,支持全部功能。
- 使用
settings.json
的accounts_urls
参数中的账号链接。 - 手动输入待采集的账号链接;此选项仅支持批量下载账号发布页作品,暂不支持参数设置。
- 输入文本文档路径,读取文件包含的账号链接;此选项仅支持批量下载账号发布页作品,暂不支持参数设置。
支持链接格式:
https://v.douyin.com/分享码/
https://www.douyin.com/user/账号ID
https://www.douyin.com/user/账号ID?modal_id=作品ID
如果需要大批量采集账号作品,建议启用 src/custom/function.py
文件的 suspend
函数。
下载账号喜欢作品时需要使用已登录的 Cookie,否则程序可能无法正常获取账号消息!
如果当前账号昵称或账号标识不是有效的文件夹名称时,程序会自动替换为账号 ID。
每个账号的作品会下载至 root
参数路径下的账号文件夹,账号文件夹格式为 UID123456789_mark_类型
或者 UID123456789_账号昵称_类型
- 手动输入待采集的作品链接。
- 输入文本文档路径,读取文件包含的作品链接。
支持链接格式:
https://v.douyin.com/分享码/
https://www.douyin.com/note/作品ID
https://www.douyin.com/video/作品ID
https://www.douyin.com/discover?modal_id=作品ID
https://www.douyin.com/user/账号ID?modal_id=作品ID
https://www.douyin.com/search/关键词?modal_id=作品ID
https://www.douyin.com/channel/分区ID?modal_id=作品ID
作品会下载至 root
参数和 folder_name
参数拼接成的文件夹。
输入直播链接,不支持已结束的直播。
支持链接格式:
https://live.douyin.com/直播ID
https://v.douyin.com/分享码/
https://www.douyin.com/follow?webRid=直播ID
下载说明:
- 程序会询问用户是否下载直播视频,支持同时下载多个直播视频。
- 程序调用
ffmpeg
下载直播时,关闭 TikTokDownloader 不会影响直播下载。 程序调用内置下载器下载直播时,需要保持 TikTokDownloader 运行直到直播结束。- 程序询问是否下载直播时,输入直播清晰度或者对应序号即可下载,例如:下载最高清晰度输入
FULL_HD1
或者1
均可。 程序调用内置下载器下载的直播文件,视频时长会显示为直播总时长,实际视频内容从下载时间开始,靠后部分的片段无法播放。- 直播视频会下载至
root
参数路径下的Live
文件夹。 - 经测试,强行终止程序或
ffmpeg
并不会导致已下载文件丢失或损坏,但无法继续下载。
评论回复采集功能暂不开放!
- 手动输入待采集的作品链接。
- 输入文本文档路径,读取文件包含的作品链接。
支持链接格式:
https://v.douyin.com/分享码/
https://www.douyin.com/note/作品ID
https://www.douyin.com/video/作品ID
https://www.douyin.com/discover?modal_id=作品ID
https://www.douyin.com/user/账号ID?modal_id=作品ID
https://www.douyin.com/search/关键词?modal_id=作品ID
https://www.douyin.com/channel/分区ID?modal_id=作品ID
支持采集评论回复、评论表情、评论图片;必须设置 storage_format
参数才能正常使用。
储存名称格式:作品123456789_评论数据
- 使用
settings.json
的mix_urls
参数中的合集链接或作品链接。 - 获取当前登录 Cookie 的收藏合集信息,并由使用者选择需要下载的合集;该选项暂不支持设置合集标识。
- 输入合集链接,或者属于合集的任意一个作品链接;该选项暂不支持设置合集标识。
- 输入文本文档路径,读取文件包含的作品链接或合集链接;该选项暂不支持设置合集标识。
支持链接格式:
https://v.douyin.com/分享码/
https://www.douyin.com/note/作品ID
https://www.douyin.com/video/作品ID
https://www.douyin.com/discover?modal_id=作品ID
https://www.douyin.com/user/账号ID?modal_id=作品ID
https://www.douyin.com/search/关键词?modal_id=作品ID
https://www.douyin.com/collection/合集ID
https://www.douyin.com/channel/分区ID?modal_id=作品ID
如果需要大批量采集合集作品,建议启用 src/custom/function.py
文件的 suspend
函数。
如果当前合集标题或合集标识不是有效的文件夹名称时,程序会自动替换为合集 ID。
每个合集的作品会下载至 root
参数路径下的合集文件夹,合集文件夹格式为 MIX123456789_mark_合集作品
或者 MIX123456789_合集标题_合集作品
- 使用
settings.json
的accounts_urls
参数中的账号链接。 - 手动输入待采集的账号链接。
- 输入文本文档路径,读取文件包含的账号链接。
支持链接格式:
https://v.douyin.com/分享码/
https://www.douyin.com/user/账号ID
https://www.douyin.com/user/账号ID?modal_id=作品ID
重复获取相同账号数据时会储存为新的数据行,不会覆盖原有数据;必须设置 storage_format
参数才能正常使用。
-
综合搜索参数顺序:
关键词
;总页数
;排序依据
;发布时间
;视频时长
;搜索范围
;内容格式
-
视频搜索参数顺序:
关键词
;总页数
;排序依据
;发布时间
;视频时长
;搜索范围
-
用户搜索参数顺序:
关键词
;总页数
;粉丝数量
;用户类型
-
直播搜索参数顺序:
关键词
;总页数
- 排序依据:
0
:综合排序;1
:最多点赞;2
:最新发布 - 发布时间:
0
:不限;1
:一天内;7
:一周内;180
:半年内 - 视频时长:
0
:不限;1
:一分钟以内;2
:一到五分钟;3
:五分钟以上 - 搜索范围:
0
:不限;1
:最近看过;2
:还未看过;3
:关注的人 - 内容形式:
0
:不限;1
:视频;2
:图文 - 粉丝数量:
0
:不限;1
:1000以下;2
:1000-1W;3
:1W-10W;4
:10W-100W;5
:100W以上 - 用户类型:
0
:不限;1
:普通用户;2
:企业认证;3
:个人认证
参数之间使用两个空格分隔;除了搜索关键词以外的参数均只支持输入数值;未输入的参数均视为 0
程序采集的搜索结果数据会储存至文件;暂不支持直接下载搜索结果作品;必须设置 storage_format
参数才能正常使用。
输入:猫咪
含义 | 关键词 | 总页数 | 排序依据 | 发布时间 | 视频时长 | 搜索范围 | 内容形式 |
---|---|---|---|---|---|---|---|
猫咪 | 1 | 不限 | 不限 | 不限 | 不限 | 不限 |
输入:猫咪 2 2 7 0 1
含义 | 关键词 | 总页数 | 排序依据 | 发布时间 | 视频时长 | 搜索范围 | 内容形式 |
---|---|---|---|---|---|---|---|
猫咪 | 2 | 最新发布 | 一周内 | 不限 | 最近看过 | 不限 |
输入:猫咪 10 0 0 0 3
含义 | 关键词 | 总页数 | 排序依据 | 发布时间 | 视频时长 | 搜索范围 | 内容形式 |
---|---|---|---|---|---|---|---|
猫咪 | 10 | 不限 | 不限 | 不限 | 关注的人 | 不限 |
输入:猫咪 白 5 0 180
含义 | 关键词 | 总页数 | 排序依据 | 发布时间 | 视频时长 | 搜索范围 | 内容形式 |
---|---|---|---|---|---|---|---|
猫咪 白 | 5 | 不限 | 半年内 | 不限 | 不限 | 不限 |
输入:小姐姐 10 0 0
含义 | 关键词 | 总页数 | 粉丝数量 | 用户类型 |
---|---|---|---|---|
小姐姐 | 10 | 不限 | 不限 |
输入:小姐姐 5 4 3
含义 | 关键词 | 总页数 | 粉丝数量 | 用户类型 |
---|---|---|---|---|
小姐姐 | 5 | 10W-100W | 个人认证 |
输入:跳舞 10
含义 | 关键词 | 总页数 |
---|---|---|
跳舞 | 10 |
无需输入任何内容;采集 抖音热榜
、娱乐榜
、社会榜
、挑战榜
数据并储存至文件;必须设置 storage_format
参数才能正常使用。
储存名称格式:热榜数据_采集时间_热榜名称
敬请期待!
无需输入任何内容;需要在配置文件写入已登录的 Cookie,并在 owner_url
参数填入对应的账号主页链接和账号标识(可选参数);目前仅支持采集当前 Cookie 对应账号的收藏作品。
文件夹格式为 UID123456789_mark_收藏作品
或者 UID123456789_账号昵称_收藏作品
无需输入任何内容;需要在配置文件写入已登录的 Cookie,程序会自动获取当前 Cookie 账号的收藏夹数据并展示,根据程序提示输入收藏夹序号下载对应收藏夹作品文件,输入 ALL
下载全部收藏夹作品。
文件夹格式为 CID123456789_收藏夹名称_收藏作品
敬请期待!
- 使用
settings.json
的accounts_urls_tiktok
参数中的账号链接。 - 手动输入待采集的账号链接;此选项仅支持批量下载账号发布页作品,暂不支持参数设置。
- 输入文本文档路径,读取文件包含的账号链接;此选项仅支持批量下载账号发布页作品,暂不支持参数设置。
支持链接格式:
https://www.tiktok.com/@TikTok号
https://www.tiktok.com/@TikTok号/video/作品ID
如果需要大批量采集账号作品,建议启用 src/custom/function.py
文件的 suspend
函数。
如果当前账号昵称或账号标识不是有效的文件夹名称时,程序会自动替换为账号 ID。
每个账号的作品会下载至 root
参数路径下的账号文件夹,账号文件夹格式为 UID123456789_mark_类型
或者 UID123456789_账号昵称_类型
- 手动输入待采集的作品链接。
- 输入文本文档路径,读取文件包含的作品链接。
支持链接格式:
https://vm.tiktok.com/分享码/
https://www.tiktok.com/@TikTok号/video/作品ID
作品会下载至 root
参数和 folder_name
参数拼接成的文件夹。
- 使用
settings.json
的mix_urls_tiktok
参数中的合集链接或作品链接。 - 输入合集链接,或者属于合集的任意一个作品链接;该选项暂不支持设置合集标识。
- 输入文本文档路径,读取文件包含的作品链接或合集链接;该选项暂不支持设置合集标识。
支持链接格式:
https://vt.tiktok.com/分享码/
https://www.tiktok.com/@TikTok号/playlist/合辑信息
https://www.tiktok.com/@TikTok号/collection/合辑信息
如果需要大批量采集合集作品,建议启用 src/custom/function.py
文件的 suspend
函数。
如果当前合集标题或合集标识不是有效的文件夹名称时,程序会自动替换为合集 ID。
每个合集的作品会下载至 root
参数路径下的合集文件夹,合集文件夹格式为 MIX123456789_mark_合集作品
或者 MIX123456789_合集标题_合集作品
输入直播链接,不支持已结束的直播。
支持链接格式:
https://vt.tiktok.com/分享码/
https://www.tiktok.com/@TikTok号/live
TikTok 平台直播视频下载功能尚未开发完成,请自行使用第三方工具下载!
敬请期待!
项目代码已重构,该模式代码尚未更新,未来开发完成重新开放!
启动服务器,提供 API 调用功能;支持局域网远程访问,可以部署至私有服务器或者公开服务器,远程部署建议设置参数验证。
默认禁用局域网访问,如需开启,请修改 src/custom/static.py
文件的 SERVER_HOST
变量。
部分接口支持传入临时 cookie
参数,如果传入临时 cookie
参数,本次 API 请求会使用临时 cookie
向抖音服务器获取数据,如果没有传入 cookie
参数,程序会使用配置文件的 cookie
参数;需要注意临时 cookie
和配置文件 cookie
参数的有效性;程序不会储存临时 cookie
内容。
目前支持调用 API 获取数据,暂不支持调用 API 下载文件!
API 接口通用说明:
- 请求类型:
POST
- 请求格式:
JSON
- 响应格式:
JSON
代码示例:
import requests
params = {
"url": "https://www.douyin.com/note/12345678910",
"source": True
}
response = requests.post("http://localhost:5000/detail/", json=params)
print(response.json())
修改 settings.json
配置文件;无需发送全部参数,仅需发送想要修改的参数;参数格式要求与配置文件格式要求保持一致。
请求接口:/settings/
请求参数(可选)
{
"root": "可选参数",
"folder_name": "可选参数",
"name_format": "可选参数",
"date_format": "可选参数",
"split": "可选参数",
"folder_mode": "可选参数",
"music": "可选参数",
"storage_format": "可选参数",
"cookie": "可选参数",
"dynamic_cover": "可选参数",
"original_cover": "可选参数",
"proxies": "可选参数",
"download": "可选参数",
"max_size": "可选参数",
"chunk": "可选参数",
"max_retry": "可选参数",
"max_pages": "可选参数",
"run_command": "可选参数",
"ffmpeg": "可选参数",
"token": "自定义参数"
}
响应参数
返回 settings.json
配置文件所有参数
获取账号发布作品或者喜欢作品数据
请求接口:/account/
请求参数
{
"url": "账号主页链接,字符串,必需参数",
"tab": "发布作品或者喜欢作品,字符串,可选参数,默认值: post",
"earliest": "作品最早发布日期,字符串,可选参数",
"latest": "作品最晚发布日期,字符串,可选参数",
"pages": "账号喜欢作品数据最大请求次数,整数,可选参数",
"source": "是否返回原始数据,布尔值,可选参数,默认值: false",
"cookie": "抖音 cookie,字符串,可选参数",
"token": "自定义参数"
}
响应参数
{
"data": [
"作品数据-1,JSON 格式",
"作品数据-2,JSON 格式",
"..."
],
"message": "success"
}
获取作品详细数据;支持 TikTok 平台。
请求接口:/detail/
请求参数
{
"url": "作品链接,支持多作品,字符串,必需参数",
"source": "是否返回原始数据,布尔值,可选参数,默认值: false",
"cookie": "抖音 cookie,字符串,可选参数",
"token": "自定义参数"
}
响应参数
{
"data": [
"作品数据-1,JSON 格式",
"作品数据-2,JSON 格式",
"..."
],
"message": "success"
}
获取直播推流数据
请求接口:/live/
请求参数
{
"url": "直播链接,支持多直播,字符串,必需参数",
"source": "是否返回原始数据,布尔值,可选参数,默认值: false",
"cookie": "抖音 cookie,字符串,可选参数",
"token": "自定义参数"
}
响应参数
{
"data": [
"直播数据-1,JSON 格式",
"直播数据-2,JSON 格式",
"..."
],
"message": "success"
}
获取作品评论数据
请求接口:/comment/
请求参数
{
"url": "作品链接,字符串,必需参数",
"pages": "作品评论数据最大请求次数,整数,可选参数",
"source": "是否返回原始数据,布尔值,可选参数,默认值: false",
"cookie": "抖音 cookie,字符串,可选参数",
"token": "自定义参数"
}
响应参数
{
"data": [
"评论数据-1,JSON 格式",
"评论数据-2,JSON 格式",
"..."
],
"message": "success"
}
获取合集作品数据
请求接口:/mix/
请求参数
{
"url": "属于合集的作品链接,字符串,必需参数",
"source": "是否返回原始数据,布尔值,可选参数,默认值: false",
"cookie": "抖音 cookie,字符串,可选参数",
"token": "自定义参数"
}
响应参数
{
"data": [
"作品数据-1,JSON 格式",
"作品数据-2,JSON 格式",
"..."
],
"message": "success"
}
获取账号详细数据
请求接口:/user/
请求参数
{
"url": "账号主页链接,支持多账号,字符串,必需参数",
"source": "是否返回原始数据,布尔值,可选参数,默认值: false",
"cookie": "抖音 cookie,字符串,可选参数",
"token": "自定义参数"
}
响应参数
{
"data": [
"账号详细数据-1,JSON 格式",
"账号详细数据-2,JSON 格式",
"..."
],
"message": "success"
}
获取抖音搜索结果数据
请求接口:/search/
请求参数
{
"keyword": "关键词,字符串,必需参数",
"type": "搜索类型,字符串,可选参数",
"pages": "结果页数,字符串,可选参数",
"sort_type": "排序依据,字符串,可选参数",
"publish_time": "发布时间,字符串,可选参数",
"source": "是否返回原始数据,布尔值,可选参数,默认值: false",
"cookie": "抖音 cookie,字符串,可选参数",
"token": "自定义参数"
}
响应参数
{
"data": [
"搜索结果数据-1,JSON 格式",
"搜索结果数据-2,JSON 格式",
"..."
],
"message": "success"
}
获取抖音热榜数据
请求接口:/hot/
请求参数
{
"source": "是否返回原始数据,布尔值,可选参数,默认值: false",
"token": "自定义参数"
}
响应参数
{
"time": "热榜采集时间",
"data": [
{
"抖音热榜": [
"热榜数据-1,JSON 格式",
"热榜数据-2,JSON 格式",
"..."
]
},
{
"娱乐榜": [
"热榜数据-1,JSON 格式",
"热榜数据-2,JSON 格式",
"..."
]
},
{
"社会榜": [
"热榜数据-1,JSON 格式",
"热榜数据-2,JSON 格式",
"..."
]
},
{
"挑战榜": [
"热榜数据-1,JSON 格式",
"热榜数据-2,JSON 格式",
"..."
]
}
],
"message": "success"
}
项目代码已重构,该模式代码尚未更新,未来开发完成重新开放!
提供浏览器可视化交互界面,支持 批量下载链接作品
和 获取直播推流地址
功能,支持局域网远程访问,可以部署至私有服务器,不可直接部署至公开服务器。
项目代码已重构,该模式代码尚未更新,未来开发完成重新开放!
提供浏览器可视化交互界面,支持 批量下载链接作品
功能,默认启用局域网访问,用于部署至公开服务器,为网站访客提供作品下载服务,建议设置参数验证。
支持远程修改 settings.json
配置文件,请参考 配置文件修改接口
- 启用该功能:程序会记录下载成功的作品 ID,如果对作品文件进行移动、重命名或者删除操作,程序不会重复下载该作品,如果想要重新下载该作品,需要删除记录数据中对应的作品 ID。
- 禁用该功能:程序会在下载文件前检测文件是否存在,如果文件存在会自动跳过下载该作品,如果对作品文件进行移动、重命名或者删除操作,程序将会重新下载该作品。
数据路径: ./TikTokDownloader.db
的 download_data
数据表。
输入作品 ID 或者作品完整链接(多个作品之间使用空格分隔,支持混合输入),删除作品下载记录中对应的数据,如果输入 all
,代表清空作品下载记录数据!
是否将程序运行日志记录保存到文件,默认关闭,日志文件保存路径:./Log
如果在使用过程中发现程序 Bug,可以及时告知作者,并附上日志文件,日志记录有助于作者分析 Bug 原因和修复 Bug。
程序会向 https://github.com/JoeanAmier/TikTokDownloader/releases/latest
发送请求获取最新 Releases
版本号,并提示是否存在新版本。
如果检查新版本失败,可能是访问 GitHub 超时,并非功能异常;如果存在新版本会提示新版本的 URL
地址,不会自动下载更新。
批量下载账号作品
、批量下载链接作品
、获取直播推流地址
、采集作品评论数据
、批量下载合集作品
、采集账号详细数据
功能支持单次输入多个链接,实现批量下载 / 提取功能;支持完整链接与分享链接混合输入;输入多个链接时,需要使用空格分隔;无需对复制的链接进行额外处理,程序会自动提取输入文本中的有效链接。
-
name_format
参数中没有使用nickname
时,mark
设置没有限制。 -
name_format
参数中使用了nickname
时,mark
与nickname
不能设置为包含关系的字符串。
标识示例:
- ✔️
nickname
:ABC,mark
:DEF - ✔️
nickname
:ABC,mark
:BCD - ❌
nickname
:ABC,mark
:AB - ❌
nickname
:BC,mark
:ABC
- 账号标识
mark
参数相当于账号备注,便于用户识别账号作品文件夹,避免账号昵称修改导致无法识别已下载作品问题。 -
批量下载账号作品
模式下,如果设置了mark
参数,下载的作品将会保存至UID123456789_mark_发布作品
或UID123456789_mark_喜欢作品
文件夹内。 -
批量下载账号作品
模式下,如果mark
参数设置为空字符串,程序将会使用账号昵称作为账号标识,下载的作品将会保存至UID123456789_账号昵称_发布作品
或UID123456789_账号昵称_喜欢作品
文件夹内。
与账号标识作用一致。
修改账号标识: 修改 accounts_urls
或 accounts_urls_tiktok
的 mark
参数,再次运行 批量下载账号作品
模式,程序会自动应用新的账号标识。
修改合集标识: 修改 mix_urls
或 mix_urls_tiktok
的 mark
参数,再次运行 批量下载合集作品
模式,程序会自动应用新的账号标识。
在 批量下载账号作品
和 批量下载合集作品
模式下,程序会自动判断账号昵称/合集标题是否发生变化,如果发生变化,程序会自动识别已下载作品文件名称中的账号昵称/合集标题,并修改至最新账号昵称/合集标题。
程序会优先使用账号标识/合集标识进行更新处理,如果账号标识/合集标识为空字符串,程序会自动使用账号昵称/合集标题进行更新处理。
数据路径: ./TikTokDownloader.db
的 mapping_data
数据表;
用于记录账号 / 合集标识和账号昵称,当账号 / 合集标识或账号昵称发生变化时,程序会对相应的文件夹和文件进行重命名更新处理。
缓存数据仅供程序读取和修改,不建议手动编辑数据内容。
该模式代码尚未更新,未来开发完成将会更新文档!
请求URL:/single/
请求类型:POST
请求格式:JSON
请求参数:
{
"url": "抖音作品链接或 TikTok 作品链接",
"token": "自定义参数"
}
后端会自动处理 url
参数中的作品链接,可以不在前端对 url
参数进行额外处理。
支持链接:
https://v.douyin.com/分享码/
https://vm.tiktok.com/分享码/
https://www.douyin.com/note/作品ID
https://www.douyin.com/video/作品ID
https://www.douyin.com/user/账号ID?modal_id=作品ID
https://www.tiktok.com/@账号昵称/video/作品ID
响应格式:JSON
响应参数:
{
"text": "解析结果提示, 字符串",
"author": "作者昵称, 字符串; 失败时返回 null",
"describe": "作品描述, 字符串; 失败时返回 null",
"download": "作品下载地址, 视频返回字符串, 图集返回由下载地址成的数组; 失败时返回 false",
"music": "原声下载地址, 字符串, 失败时返回 false",
"origin": "静态封面图地址, 字符串; 失败时返回 false",
"dynamic": "动态封面图地址, 字符串; 失败时返回 false",
"preview": "作品预览图地址, 字符串, 视频返回静态封面图, 图集返回首张图片; 失败时返回空白预览图地址"
}
本指南将引导您通过 Fork 本仓库并执行 GitHub Actions 自动完成基于最新源码的程序构建和打包!
- 点击项目仓库右上角的 Fork 按钮,将本仓库 Fork 到您的个人 GitHub 账户中
- 您的 Fork 仓库地址将类似于:
https://github.com/your-username/this-repo
- 前往您 Fork 的仓库页面
- 点击顶部的 Settings 选项卡
- 点击右侧的 Actions 选项卡
- 点击 General 选项
- 在 Actions permissions 下,选择 Allow all actions and reusable workflows 选项,点击 Save 按钮
- 在您 Fork 的仓库中,点击顶部的 Actions 选项卡
- 找到名为 手动构建可执行文件 的工作流
- 点击右侧的 Run workflow 按钮:
- 选择 master 或者 develop 分支
- 点击 Run workflow
- 在 Actions 页面中,您可以看到触发的工作流运行记录
- 点击运行记录,查看详细的日志以了解打包进度和状态
- 打包完成后,进入对应的运行记录页面
- 在页面底部的 Artifacts 部分,您将看到打包的结果文件
- 点击下载并保存到本地,即可获得打包好的程序
-
资源使用:
- Actions 的运行环境由 GitHub 免费提供,普通用户每月有一定的免费使用额度(2000 分钟)
-
代码修改:
- 您可以自由修改 Fork 仓库中的代码以定制程序打包流程
- 修改后重新触发打包流程,您将得到自定义的构建版本
-
与主仓库保持同步:
- 如果主仓库更新了代码或工作流,建议您定期同步 Fork 仓库以获取最新功能和修复
A: 请确认您已按照步骤 启用 Actions,否则 GitHub 会禁止运行工作流
A:
- 检查运行日志,了解失败原因
- 确保代码没有语法错误或依赖问题
- 如果问题仍未解决,可以在本仓库的 Issues 页面 提出问题
A: 由于权限限制,您无法直接触发主仓库的 Actions。请通过 Fork 仓库的方式执行打包流程
可能是 Cookie 无效或者接口失效;请尝试清除 DNS 缓存,更新 Cookie,如果仍然无法解决,可能是接口失效,请考虑向作者反馈!
TikTok 平台的 Cookie ttwid 值无效;可能是当前账号被风控,请考虑更换账号,或者尝试设置 twc_tiktok
参数。
twc_tiktok
参数设置教程:
- 以无痕模式打开浏览器
- 按
F12
打开开发人员工具 - 选择
网络
选项卡 - 访问
https://www.tiktok.com/
- 在
筛选器
输入框输入ttwid
- 在开发人员工具窗口选择任意一个数据包(如果无数据包,刷新网页)
- 检查
响应标头
->Set-Cookie
- 复制
ttwid=XXX
内容 - 粘贴至配置文件的
twc_tiktok
参数
Set-Cookie
的内容格式为:ttwid=XXX; Path=/; Domain=tiktok.com; Max-Age=31536000; HttpOnly; Secure; SameSite=None
,复制时只需要复制 ttwid=XXX
部分,而不是复制全部内容!
- 使用者对本项目的使用由使用者自行决定,并自行承担风险。作者对使用者使用本项目所产生的任何损失、责任、或风险概不负责。
- 本项目的作者提供的代码和功能是基于现有知识和技术的开发成果。作者尽力确保代码的正确性和安全性,但不保证代码完全没有错误或缺陷。
- 使用者在使用本项目时必须严格遵守 GNU General Public License v3.0 的要求,并在适当的地方注明使用了 GNU General Public License v3.0 的代码。
- 使用者在任何情况下均不得将本项目的作者、贡献者或其他相关方与使用者的使用行为联系起来,或要求其对使用者使用本项目所产生的任何损失或损害负责。
- 使用者在使用本项目的代码和功能时,必须自行研究相关法律法规,并确保其使用行为合法合规。任何因违反法律法规而导致的法律责任和风险,均由使用者自行承担。
- 本项目的作者不会提供 TikTokDownloader 项目的付费版本,也不会提供与 TikTokDownloader 项目相关的任何商业服务。
- 基于本项目进行的任何二次开发、修改或编译的程序与原创作者无关,原创作者不承担与二次开发行为或其结果相关的任何责任,使用者应自行对因二次开发可能带来的各种情况负全部责任。