dosubot[bot]

Results 14441 comments of dosubot[bot]

你遇到的“下载超过35个博主后出现cookie异常,等待一小时后恢复”的问题,本质上是抖音/抖音服务器的风控和限流机制导致的。具体原因和解决建议如下: ### 问题原因 - 抖音/抖音服务器会检测到短时间内大量请求(如批量下载多个博主),触发风控或限流,导致cookie失效或被暂时封禁,表现为“cookie异常”。 - 等待一段时间(如一小时)后,服务器解除限制,可以继续抓取,这说明是典型的限流/风控行为,而不是cookie本身永久失效。 ### 解决建议 1. **降低请求频率** 在批量下载时,建议在每个博主之间增加请求延迟。可以通过修改 `src/Customizer.py` 配置请求间隔(仅源码运行时可用,EXE版暂不支持) [参考](https://github.com/JoeanAmier/TikTokDownloader/issues/68) 2. **分批处理** 建议将你的200个博主分成多个批次,每批不超过40个博主。可以将 `settings.json` 拆分成多个文件,每次只处理一部分,减少单次批量请求量,降低被限流概率 [参考](https://github.com/JoeanAmier/TikTokDownloader/issues/56) 3. **避免高频大规模采集** 尽量避免短时间内大规模批量采集,这会极大增加被风控的概率 [参考](https://github.com/JoeanAmier/TikTokDownloader/issues/68) 4. **cookie/网络切换仅临时缓解** 更换cookie或IP只能临时缓解,根本原因是服务器端限流,建议还是以降低请求频率和分批处理为主 [参考](https://github.com/JoeanAmier/TikTokDownloader/issues/68) 5....

目前 TikTokDownloader 批量下载时,失败的账号不会在结果汇总中单独列出,只会在日志(log)中以 WARNING 或 ERROR 形式记录详细信息。你可以在程序目录下的 ./Log 文件夹里找到对应的日志文件,然后用文本编辑器、grep(Linux/macOS)、findstr(Windows)等工具,搜索“WARNING”或“ERROR”关键字,快速筛选出所有下载失败的账号及原因。例如: - Windows 命令行: ``` findstr /C:"WARNING" *.log ``` - Linux/macOS 终端: ``` grep "WARNING" *.log ``` 日志中会包含失败账号的 URL 或相关信息,方便你定位问题账号。暂时没有自动生成失败账号列表的功能,如需更便捷的方式,可以考虑后续版本优化。[日志机制和批量处理逻辑参考](https://github.com/JoeanAmier/TikTokDownloader/blob/b7f08e6b58167bd3ce1a30aa693c56e98e18e904/src/application/main_terminal.py) *To reply,...

Hi @zQWE-b! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the TikTokDownloader team. 你遇到的 500 错误和 TypeError(list indices must be integers or slices, not str)主要是因为频繁更换代理 IP 导致网络不稳定,返回的数据格式异常,代码没有做足够的数据校验和错误处理,最终触发了未捕获的异常,FastAPI 返回 500 错误。Douyin API 近期反爬更严格,频繁切换 IP...

你遇到的“提取账号信息或合集信息失败”错误,通常有以下几种常见原因: 1. 主页链接格式问题:你提供的是短链(https://v.douyin.com/ikgf7Nbj/),这种短链需要先在浏览器中打开,跳转到实际的抖音主页长链接(通常是 https://www.douyin.com/user/xxxxxxx 这种格式),再把跳转后的完整链接填到配置里,否则程序无法正确识别和提取账号信息。[相关说明](https://github.com/JoeanAmier/TikTokDownloader/issues/416) 2. Cookie 配置问题:如果 cookies 不完整或已失效,也会导致账号信息提取失败。建议重新获取一次登录状态下的完整 cookie,并更新到 settings.json。[相关案例](https://github.com/JoeanAmier/TikTokDownloader/issues/132) 3. 抖音网页结构变动:如果近期抖音网页结构有调整,程序的提取逻辑可能暂时无法适配,出现此类报错。[相关讨论](https://github.com/JoeanAmier/TikTokDownloader/issues/445) 建议你: - 先用浏览器打开短链,复制跳转后的完整主页链接替换到配置文件; - 检查并更新 cookie,确保为登录状态下的完整 cookie; - 如果仍然报错,可以尝试清理 DNS 缓存,或关注项目后续更新。 这个报错是程序在找不到目标账号信息时主动抛出的,主要是为了提示用户数据结构或接口发生了变化。[代码实现细节](https://github.com/JoeanAmier/TikTokDownloader/blob/46b7ba0ee971966e1484c54c17590f140014c261/src/extract/extractor.py) 如还有问题,可以补充具体的主页长链接和 cookie 配置,方便进一步排查。 *To...

Hi @a378502676! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the TikTokDownloader team. 程序有缓存下载机制:所有文件会先下载到项目根目录下的 `cache` 文件夹作为临时文件,下载完成后再移动到目标位置(不是内存缓存)[详情见此](https://github.com/JoeanAmier/TikTokDownloader/blob/dc561088312b1421de00c6543916a5f6415feb8e/src/downloader/download.py)。缓存目录和策略目前无法通过设置更改。 你可以在 `settings.json` 里调整 `chunk` 参数(默认2MB),控制每次写入磁盘的数据块大小,从而一定程度上减少频繁小文件写入[参考](https://github.com/JoeanAmier/TikTokDownloader/blob/dc561088312b1421de00c6543916a5f6415feb8e/src/config/settings.py)。但没有专门针对小文件批量合并写入或内存缓存的选项。 `max_size` 只是限制单个文件最大下载体积(单位字节),不会影响缓存或写盘方式[说明](https://github.com/JoeanAmier/TikTokDownloader/blob/dc561088312b1421de00c6543916a5f6415feb8e/docs/DouK-Downloader%E6%96%87%E6%A1%A3.md)。 如果你担心硬盘损耗,可以考虑将 `cache` 目录放到 RAM盘(需手动操作),这样所有临时文件都在内存中,写盘压力会小很多。 *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* ---...

目前 TikTokDownloader 的缓存目录是写死在代码里的,默认就是项目根目录下的 `cache` 文件夹,无法通过配置文件、环境变量或命令行参数修改 [参考](https://github.com/JoeanAmier/TikTokDownloader/blob/dc561088312b1421de00c6543916a5f6415feb8e/src/config/parameter.py)。 如果你需要更改缓存目录,有两个常用方法: 1. 直接修改源码,把 `src/config/parameter.py` 里的 `self.cache = PROJECT_ROOT.joinpath("cache")` 改成你想要的路径(需要有一定 Python 基础)。 2. 用软链接(符号链接)或把 `cache` 文件夹挂载到 RAM盘,这样可以把缓存实际存储到别的位置或内存里,无需改动代码。 目前没有更简单的用户级设置方式。 *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- How...

ProTable 目前没有内置参数可以阻止在使用 sorter 函数(本地排序)时触发 request。即使 sorter 是函数,只要配置了 request,排序依然会触发请求,这是社区已知的问题(详见[相关 issue](https://github.com/ant-design/pro-components/issues/8308))。 常见的变通方法有: 1. 在 onChange 里判断排序行为,设置一个 flag,然后在 request 里判断这个 flag,决定是否真正发起请求,最后清除 flag([参考](https://github.com/ant-design/pro-components/issues/951))。 2. 用 dataSource 代替 request,这样排序和筛选都只在前端处理,不会触发请求,但会导致设置栏的刷新按钮失效([参考](https://github.com/ant-design/pro-components/issues/8180))。 3. 首次用 request 拉取数据后缓存,后续排序直接用缓存数据,不再请求后端。 示例代码(方案1): ```js...

Hi @cloudyxie1988! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the apollo team. Apollo 官方版本目前只支持 MySQL,不支持 PostgreSQL。你遇到的 `"utf8mb4"` 报错,是因为 Apollo 的数据库初始化脚本和 SQL 语句里大量使用了 MySQL 专有语法,比如 `utf8mb4` 字符集和 `ENGINE=InnoDB`,这些在 PostgreSQL 里会直接报错 [参考](https://github.com/apolloconfig/apollo/blob/4fa881a973996edf978c9b8e78719b437b64169c/scripts/sql/profiles/mysql-default/apolloportaldb.sql)。 官方文档和仓库没有提到 PostgreSQL...

这个报错的根本原因是 LightFilter 模式下,Select 组件在清除时会传递 null,导致内部的 getValueOrLabel 方法没有做 null 判断,直接读取 label 属性,从而抛出异常。这是 LightFilter 和 Select 组件交互时的已知 bug,并且和国际化无关,和 valueEnum 的结构也无关,只要清除就会触发。 近期 pro-components 已经合并了相关修复(比如 [#9158](https://github.com/ant-design/pro-components/pull/9158) 和 [#9162](https://github.com/ant-design/pro-components/pull/9162)),对 Select 选项的 label/value 处理和空值安全性做了优化,升级到最新版本即可解决此问题。 如果暂时无法升级,可以考虑不用 LightFilter,或者保证...

这个 bug 在 2.8.10 版本里还没有修复,相关修复([#9158](https://github.com/ant-design/pro-components/pull/9158)、[#9162](https://github.com/ant-design/pro-components/pull/9162))是在 2025 年 7 月合并的,2.8.10 还没包含这些改动。建议升级到包含这些 PR 的最新版本才能彻底解决。如果暂时无法升级,目前没有官方的完整解决办法,只能考虑不用 LightFilter 或自行在本地打补丁(比如在 getValueOrLabel 里加 null 判断)[相关讨论参考](https://github.com/ant-design/pro-components/issues/8237)。如果需要临时的代码修复方案,可以告知我。 *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- How did I do? [Good](https://app.dosu.dev/response-feedback/2763b70b-8f27-4f50-a8a7-aca9ca100997?feedback_type=great_response) |...