TikTokDownloader是一个免费开源项目,是一个抖音主页 、视频、图集、收藏、直播、原声、合集、评论、账号、搜索、热榜数据采集工具软件,基于Requests模块实现的免费工具,批量下载抖音账号发布、喜欢、收藏作品,批量下载 TikTok 账号主页作品
TikTok 主页/视频/图集/原声;抖音主页/视频/图集/收藏/直播/原声/合集/评论/账号/搜索/热榜数据采集工具:完全开源,基于 AIOHTTP 模块实现的免费工具;批量下载抖音账号发布、喜欢、收藏作品;批量下载 TikTok 账号发布作品;下载抖音链接或 TikTok 链接作品;获取抖音直播推流地址;下载抖音直播视频;采集抖音作品评论数据;批量下载抖音合集作品;采集抖音账号详细数据;采集抖音用户 / 作品 / 直播搜索结果;采集抖音热榜数据。
软件功能
- 下载无水印视频 / 图集
- 批量下载抖音账号发布 / 喜欢 / 收藏作品
- 采集抖音详细数据
- 批量下载链接作品
- 多账号批量下载作品
- 自动跳过已下载的文件
- 持久化保存采集数据
- 下载动态 / 静态封面图
- 获取抖音直播推流地址
- 调用 ffmpeg 下载直播
- Web UI 交互界面
- 下载 EXE 程序 或者 配置运行环境下载程序运行
- 下载 Releases 发布的 EXE 程序压缩包或安装包
- 解压或安装后打开程序文件夹,双击运行
main.exe
通过源码运行
- 安装不低于
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 作品链接即可下载作品文件
点击查看 Cookie 获取教程,无效 / 过期的 Cookie 会导致程序获取数据失败或者无法下载高分辨率的视频文件;目前尚无主动判断 Cookie 无效 / 过期的方法,更多 Cookie 说明!
⭐ 推荐使用 Windows 终端(Windows 11 自带默认终端)运行程序以便获得最佳彩色交互显示效果!
链接格式 | 链接内容 |
---|---|
https://v.douyin.com/分享码/ |
账号、视频、图集、直播、合集、话题 |
https://vm.tiktok.com/分享码/ |
账号、视频、图集 |
https://www.douyin.com/note/作品ID |
图集 |
https://www.douyin.com/video/作品ID |
视频 |
https://www.douyin.com/collection/合集ID |
合集 |
https://www.douyin.com/search/关键词?modal_id=作品ID |
视频、图集 |
https://www.douyin.com/discover?modal_id=作品ID |
视频、图集 |
https://www.douyin.com/user/账号ID?modal_id=作品ID |
账号、视频、图集 |
https://live.douyin.com/直播ID |
直播 |
https://www.tiktok.com/@TikTok号 |
账号 |
https://www.tiktok.com/@TikTok号/video/作品ID |
账号、视频、图集 |
https://www.douyin.com/channel/分区ID?modal_id=作品ID |
视频、图集 |
https://www.douyin.com/lvdetail/作品ID |
视频(暂不支持) |
- 账号/作品/直播完整链接:使用浏览器打开抖音或 TikTok 链接时,地址栏所显示的 URL 地址。
- 分享链接:点击 APP 或网页版的分享按钮得到的 URL 地址,抖音平台以
https://v.
开头,掺杂中文和其他字符;TikTok 平台以https://vm
开头,不掺杂其他字符;使用时不需要手动去除中文和其他字符,程序会自动提取 URL 链接。
- 配置文件
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.exe
可前往 官方网站 获取。
程序功能 | 功能类型 |
---|---|
批量下载账号作品 | 文件下载, 数据采集 |
批量下载链接作品 | 文件下载, 数据采集 |
获取直播推流地址 | 文件下载, 数据提取 |
采集作品评论数据 | 数据采集 |
批量下载合集作品 | 文件下载, 数据采集 |
采集账号详细数据 | 数据采集 |
采集搜索结果数据 | 数据采集 |
采集抖音热榜数据 | 数据采集 |
批量下载收藏作品 | 文件下载,数据采集 |
批量下载收藏夹作品 | 文件下载,数据采集 |
程序会周期性更新抖音与 TikTok Cookie 的部分参数,以保持 Cookie 的有效性。
该功能无法防止 Cookie 失效,Cookie 失效后需要重新写入!
使用者可自行启用或禁用该功能,如果您不需要使用该平台的功能,建议禁用该平台的自动更新功能!
配置文件:项目根目录下的 settings.json
文件,可以自定义设置程序部分运行参数。
cookie
参数为必需参数,必须设置该参数才能正常使用程序;其余参数可以根据实际需求进行修改!
如果您的计算机没有合适的程序编辑 JSON 文件,建议使用 JSON 在线工具 编辑配置文件内容。
注意: 手动修改 settings.json
后需要重新运行程序才会生效!
参数 | 类型 | 说明 |
---|---|---|
mark | str | 账号/合集标识, 设置为空字符串代表使用账号昵称/合集标题, 属于 accounts_urls、mix_urls 和 owner_url 子参数 |
url | str | 账号主页/合集作品链接, 批量下载时使用 属于 accounts_urls、mix_urls 和 owner_url 子参数 |
tab | str | 批量下载类型, post 代表发布作品, favorite 代表喜欢作品需要账号喜欢作品公开可见, 属于 Accounts_Urls 子参数 |
earliest | str | 作品最早发布日期, 格式: 2023/1/1 , 设置为空字符串代表不限制, 属于 accounts_urls 子参数 |
latest | str | 作品最晚发布日期, 格式: 2023/1/1 , 设置为空字符串代表不限制, 属于 accounts_urls 子参数 |
accounts_urls[mark, url, tab, earliest, latest] | list[dict[str, str, str, str, str]] | 抖音平台:账号标识, 账号链接, 批量下载类型, 最早发布日期, 最晚发布日期; 批量下载账号作品时使用, 支持多账号, 以字典格式包含五个参数 |
mix_urls[mark, url] | list[dict[str, str]] | 抖音平台:合集标识, 合集链接或作品链接, 批量下载合集作品时使用 支持多合集, 以字典格式包含两个参数 |
owner_url[mark, url] | dict[str, str] | 抖音平台:已登录 Cookie 的账号标识, 账号主页链接, 批量下载收藏作品时使用 用于获取账号昵称和 UID, 以字典格式包含两个参数 |
(即将生效)accounts_urls_tiktok[mark, url, tab, earliest, latest] | list[dict[str, str, str, str, str]] | TikTok 平台:账号标识, 账号链接, 批量下载类型, 最早发布日期, 最晚发布日期; 批量下载账号作品时使用, 支持多账号, 以字典格式包含五个参数 |
(未生效)mix_urls_tiktok[mark, url] | list[dict[str, str]] | TikTok 平台:合集标识, 合集链接或作品链接, 批量下载合集作品时使用 支持多合集, 以字典格式包含两个参数 |
(未生效)owner_url_tiktok[mark, url] | dict[str, str] | TikTok 平台:已登录 Cookie 的账号标识, 账号主页链接, 批量下载收藏作品时使用 用于获取账号昵称和 UID, 以字典格式包含两个参数 |
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 |
storage_format | str | 采集数据持久化储存格式, 设置为空字符串代表不保存 支持: csv 、xlsx 、sql (SQLite) |
cookie | dict | str | 抖音网页版 Cookie, 必需参数; 建议通过程序写入配置文件,亦可手动编辑 |
cookie_tiktok | dict | str | TikTok 网页版 Cookie, 必需参数; 建议通过程序写入配置文件,亦可手动编辑 |
dynamic_cover | bool | 是否下载动态封面图, 默认值: false |
original_cover | bool | 是否下载静态封面图, 默认值: false |
proxies | str | 抖音请求代理地址, 设置为空字符串代表不使用代理 |
proxies_tiktok | str | TikTok 请求代理地址, 设置为空字符串代表不使用代理 |
download | bool | 是否打开下载功能, 如果关闭, 程序将不会下载任何文件; 默认值: true |
max_size | int | 作品文件大小限制, 单位字节, 超出大小限制的作品文件将会跳过下载 设置为 0 代表无限制 |
chunk | int | 每次从服务器接收的数据块大小, 单位字节; 默认值:1048576 (1 MB) |
max_retry | int | 发送请求获取数据发生异常时重试的最大次数 设置为 0 代表关闭重试, 默认值: 10 |
max_pages | int | 批量下载账号喜欢作品、收藏作品或者采集作品评论数据时 请求数据的最大次数(不包括异常重试),默认值: 0 代表不限制 |
default_mode | str | 设置程序启动的默认模式,相当于模拟用户输入序号(多个序号使用空格分隔) |
ffmpeg | str | ffmpeg.exe 路径,下载直播时使用,如果系统环境存在 ffmpeg 或者不想使用 ffmpeg ,可以不设置该参数 |
update_cookie | bool | 是否启用自动更新抖音 Cookie 参数功能,默认值: true |
update_cookie_tiktok | bool | 是否启用自动更新 TikTok Cookie 参数功能,默认值: true |
{
"accounts_urls": [
{
"mark": "账号标识-1",
"url": "账号主页链接-1",
"tab": "post",
"earliest": "2023/1/1",
"latest": "2023/6/1"
},
{
"mark": "",
"url": "账号主页链接-2",
"tab": "favorite",
"earliest": "2023/7/1",
"latest": ""
}
],
"accounts_urls_tiktok": "参数规则与 accounts_urls 一致",
"mix_urls": [
{
"mark": "",
"url": "合集链接或者作品链接"
},
{
"mark": "合集标识-2",
"url": "合集链接或者作品链接"
}
],
"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,
"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,
"proxies": "http://127.0.0.1:9999",
"proxies_tiktok": "参数规则与 proxies 一致",
"download": true,
"max_size": 104857600,
"chunk": 10485760,
"max_retry": 10,
"max_pages": 2,
"default_mode": "4 2 1",
"ffmpeg": "C:\\TikTokDownloader\\ffmpeg.exe",
"update_cookie": true,
"update_cookie_tiktok": true
}
服务器部署模式: 仅 cookie
、proxies
、max_retry
参数生效,其余参数均不生效,但仍需正确编辑配置文件。
{
"accounts_urls": [
{
"mark": "",
"url": "账号主页链接-1",
"tab": "favorite",
"earliest": "",
"latest": ""
},
{
"mark": "",
"url": "账号主页链接-2",
"tab": "post",
"earliest": "",
"latest": ""
},
{
"mark": "",
"url": "账号主页链接-3",
"tab": "favorite",
"earliest": "",
"latest": ""
}
]
}
将待下载的抖音账号信息写入配置文件,每个账号对应一个对象/字典,tab
参数设置为 favorite
代表批量下载喜欢作品,支持多账号。
批量下载账号喜欢作品需要使用已登录的 Cookie,否则可能无法获取正确的账号信息!
{
"accounts_urls": [
{
"mark": "账号标识",
"url": "账号主页链接",
"tab": "post",
"earliest": "2023/12/1",
"latest": ""
}
]
}
如果已经采集某账号的全部发布作品,建议设置 earliest
和 latest
参数以减少后续采集请求次数。
例如:将 earliest
参数设置为 2023/12/1
,程序获取账号发布作品数据时,无需获取早于 2023/12/1
的作品数据,可减少请求次数提高运行效率。
{
"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
参数实现。
{
"default_mode": "4 2 1"
}
运行程序自动依次进入 终端交互模式
-> 批量下载账号作品(抖音)
-> 使用 accounts_urls 参数的账号链接(推荐)
其他示例:4 2
代表依次进入 终端交互模式
-> 批量下载账号作品(抖音)
;6
代表进入Web API 模式
{
"proxies": "http://127.0.0.1:9999"
}
程序获取网络数据时使用 http://127.0.0.1:9999
作为代理;程序会自动验证代理是否可用,如果代理不可用,则 proxies
参数不生效。
如果您的电脑使用了代理工具且未修改默认端口,可以尝试以下设置:
- 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 数据。
程序自动获取抖音登录二维码,随后会在终端输出二维码,并使用系统默认图片浏览器打开二维码图片,使用者通过抖音 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
函数。
如果当前账号昵称或账号标识不是有效的文件夹名称时,程序会提示用户输入临时的账号标识,以便程序继续处理账号。
处理多个账号时,如果某个账号获取数据失败,程序会询问用户是否继续处理(可编辑 src/custom/function.py
文件修改功能)
每个账号的作品会下载至 root
参数路径下的账号文件夹,账号文件夹格式为 UID123456789_mark_类型
或者 UID123456789_账号昵称_类型
- 手动输入待采集的作品链接。
- 输入文本文档路径,读取文件包含的作品链接。
支持链接格式:
https://v.douyin.com/分享码/
https://vm.tiktok.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.tiktok.com/@账号昵称/video/作品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
文件夹
- 手动输入待采集的作品链接。
- 输入文本文档路径,读取文件包含的作品链接。
支持链接格式:
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
参数中的合集链接或作品链接。 - 输入合集链接,或者属于合集的任意一个作品链接。
- 输入文本文档路径,读取文件包含的作品链接或合集链接;该选项暂不支持设置合集标识。
支持链接格式:
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
函数。
如果当前合集标题或合集标识不是有效的文件夹名称时,程序会提示用户输入临时的合集标识,以便程序继续处理合集。
处理多个合集时,如果某个合集获取数据失败,程序会询问用户是否继续处理(可编辑 src/custom/function.py
文件修改功能)
每个合集的作品会下载至 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
:一天内;7
:一周内;182
:半年内
参数之间使用空格分隔,搜索类型
和 排序规则
支持输入中文或者对应索引,页数
和 时间筛选
仅支持输入整数。
程序采集的抖音搜索结果会储存至文件,储存名称格式:搜索数据_搜索时间_搜索类型_关键词_排序依据_时间筛选
;不支持直接下载搜索结果作品;必须设置 storage_format
参数才能正常使用。
用户搜索
和 直播搜索
不需要输入排序依据和时间筛选!
输入:猫咪
含义: 关键词:猫咪
;搜索类型:综合搜索
;页数:1
;排序依据:综合排序
;时间筛选:不限
输入:猫咪 1 2 1
等效于 猫咪 视频搜索 2 最多点赞
含义: 关键词:猫咪
;搜索类型:视频搜索
;页数:2
;排序依据:最多点赞
;时间筛选:不限
输入:猫咪 0 10 0 7
等效于 猫咪 综合搜索 10 综合排序 7
含义: 关键词:猫咪
;搜索类型:综合搜索
;页数:10
;排序依据:综合排序
;时间筛选:一周内
输入:猫咪 1 5 2 182
等效于 猫咪 视频搜索 5 最新发布 182
含义: 关键词:猫咪
;搜索类型:视频搜索
;页数:5
;排序依据:最新发布
;时间筛选:半年内
输入:猫咪 2 2
等效于 猫咪 用户搜索 2
含义: 关键词:猫咪
;搜索类型:用户搜索
;页数:2
输入:猫咪 3 2
等效于 猫咪 直播搜索 2
含义: 关键词:猫咪
;搜索类型:直播搜索
;页数:2
无需输入,采集 抖音热榜
、娱乐榜
、社会榜
、挑战榜
数据并储存至文件;必须设置 storage_format
参数才能正常使用。
储存名称格式:热榜数据_采集时间_热榜名称
尚未支持!
无需输入,需要在配置文件写入已登录的 Cookie,并在 owner_url
参数填入对应的账号主页链接和账号标识(可选);目前仅支持采集当前 Cookie 对应账号的收藏作品。
如果未设置 owner_url
参数,程序会使用临时字符串作为账号昵称和 UID。
账号文件夹格式为 UID123456789_mark_收藏作品
或者 UID123456789_账号昵称_收藏作品
尚未支持!
目前仅支持下载账号发布作品,即将支持下载账号喜欢作品。
- 使用
settings.json
的accounts_urls_tiktok
参数中的账号链接。 - 手动输入待采集的账号链接;此选项仅支持批量下载账号发布页作品,暂不支持参数设置。
- 输入文本文档路径,读取文件包含的账号链接;此选项仅支持批量下载账号发布页作品,暂不支持参数设置。
支持链接格式:
https://www.tiktok.com/@TikTok号
https://www.tiktok.com/@TikTok号/video/作品ID
如果需要大批量采集账号作品,建议启用 src/custom/function.py
文件的 suspend
函数。
如果当前账号昵称或账号标识不是有效的文件夹名称时,程序会提示用户输入临时的账号标识,以便程序继续处理账号。
处理多个账号时,如果某个账号获取数据失败,程序会询问用户是否继续处理(可编辑 src/custom/function.py
文件修改功能)
每个账号的作品会下载至 root
参数路径下的账号文件夹,账号文件夹格式为 UID123456789_mark_类型
或者 UID123456789_账号昵称_类型
- 手动输入待采集的作品链接。
- 输入文本文档路径,读取文件包含的作品链接。
支持链接格式:
https://www.tiktok.com/@TikTok号/video/作品ID
作品会下载至 root
参数和 folder_name
参数拼接成的文件夹。
尚未支持!
尚未支持!
敬请期待!
启动服务器,提供 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": "可选参数",
"default_mode": "可选参数",
"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
配置文件,请参考 配置文件修改接口
启用检查更新功能后,运行程序时会向 https://github.com/JoeanAmier/TikTokDownloader/releases/latest
发送请求获取最新 Releases
版本号,并提示是否存在新版本。
如果检查新版本失败,可能是访问 GitHub 超时,并非功能异常;如果存在新版本会提示新版本的 URL
地址,不会自动下载更新。
- 启用该功能:程序会记录下载成功的作品 ID,如果对作品文件进行移动、重命名或者删除操作,程序不会重复下载该作品,如果想要重新下载该作品,需要删除记录文件中对应的作品 ID 后保存文件并重新运行程序。
- 禁用该功能:程序会在下载文件前检测文件是否存在,如果文件存在会自动跳过下载该作品,如果对作品文件进行移动、重命名或者删除操作,程序将会重新下载该作品。
程序会周期性备份作品下载记录数据,当作品下载记录数据丢失时,程序会尝试通过备份文件恢复数据,备份周期可以通过 src/custom/static.py
文件设置。
记录文件路径: ./cache/IDRecorder.txt
不建议在程序运行过程中访问记录文件!
输入作品 ID 或者作品完整链接(多个作品之间使用空格分隔,支持混合输入),删除作品下载记录中对应的数据,如果输入 all
,代表清空作品下载记录数据!
作品下载记录数据将在程序结束运行后保存至文件!
是否将程序运行日志记录保存到文件,默认关闭,日志文件保存路径:./Log
如果在使用过程中发现程序 Bug,可以及时告知作者,并附上日志文件,日志记录有助于作者分析 Bug 原因和修复 Bug。
批量下载账号作品
、批量下载链接作品
、获取直播推流地址
、采集作品评论数据
、批量下载合集作品
、采集账号详细数据
功能支持单次输入多个链接,实现批量下载 / 提取功能;单次输入多个链接时,链接类型需要保持一致,不支持完整链接与分享链接混合输入。
输入多个链接时,需要使用空格分隔;无需对复制的链接进行额外处理,程序会自动提取输入文本中的有效链接。
- 支持:
https://v.douyin.com/abc/
https://v.douyin.com/abc/
- 支持:
https://www.douyin.com/video/123456789
https://www.douyin.com/note/123456789
- 支持:
https://www.douyin.com/collection/123456789
https://www.douyin.com/collection/123456789
- 支持:
https://www.douyin.com/user/ABC?modal_id=123456789
https://www.douyin.com/note/123456789
- 不支持:
https://v.douyin.com/abc/
https://www.douyin.com/video/123456789
- 不支持:
https://www.douyin.com/collection/123456789
https://www.douyin.com/video/123456789
- 不支持:
https://www.douyin.com/video/123456789
https://www.tiktok.com/@ABC/video/123456789
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
的 mark
参数,再次运行 批量下载账号作品
模式,程序会自动应用新的账号标识。
修改合集标识: 修改 mix_urls
的 mark
参数,再次运行 批量下载合集作品
模式,程序会自动应用新的账号标识。
在 批量下载账号作品
和 批量下载合集作品
模式下,程序会判断账号昵称是否有修改,如果有修改,程序会自动识别已下载作品文件名称中的账户昵称,并修改至最新账户昵称。
缓存文件 用于记录账号 / 合集标识和账号昵称,当账号 / 合集标识或账号昵称发生变化时,程序会读取文件内容,并对相应的文件夹和文件进行重命名更新处理,如果该文件不存在或者删除该文件,程序首次运行不会判断账号 / 合集标识和账号昵称是否发生变化,程序运行结束后会生成新的缓存文件,之后程序才能监控账号 / 合集标识和账号昵称变化。
缓存文件仅供程序读取和写入,不建议手动编辑文件内容。
请求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": "作品预览图地址, 字符串, 视频返回静态封面图, 图集返回首张图片; 失败时返回空白预览图地址"
}
- 使用者对本项目的使用由使用者自行决定,并自行承担风险。作者对使用者使用本项目所产生的任何损失、责任、或风险概不负责。
- 本项目的作者提供的代码和功能是基于现有知识和技术的开发成果。作者尽力确保代码的正确性和安全性,但不保证代码完全没有错误或缺陷。
- 使用者在使用本项目时必须严格遵守 GNU General Public License v3.0 的要求,并在适当的地方注明使用了 GNU General Public License v3.0 的代码。
- 使用者在任何情况下均不得将本项目的作者、贡献者或其他相关方与使用者的使用行为联系起来,或要求其对使用者使用本项目所产生的任何损失或损害负责。
- 使用者在使用本项目的代码和功能时,必须自行研究相关法律法规,并确保其使用行为合法合规。任何因违反法律法规而导致的法律责任和风险,均由使用者自行承担。
- 本项目的作者不会提供 TikTokDownloader 项目的付费版本,也不会提供与 TikTokDownloader 项目相关的任何商业服务。
- 基于本项目进行的任何二次开发、修改或编译的程序与原创作者无关,原创作者不承担与二次开发行为或其结果相关的任何责任,使用者应自行对因二次开发可能带来的各种情况负全部责任。
在使用本项目的代码和功能之前,请您认真考虑并接受以上免责声明。如果您对上述声明有任何疑问或不同意,请不要使用本项目的代码和功能。如果您使用了本项目的代码和功能,则视为您已完全理解并接受上述免责声明,并自愿承担使用本项目的一切风险和后果。
暂无评论内容