Bug 描述
opencli douyin hashtag search --keyword <关键词> 仍然失败,报 COMMAND_EXEC: JSON parse failed: Unexpected end of JSON input。
这和 #1405(2026-05-10 关闭,无回复评论)是同一个根因,但在当前最新版本上依然复现,看起来之前是被自动关闭而不是真的修复。
复现步骤
opencli douyin hashtag search --keyword "猫咪" --limit 5 -f yaml
实际输出
ok: false
error:
code: COMMAND_EXEC
message: >-
Douyin API error -2 at GET
https://creator.douyin.com/aweme/v1/challenge/search/?keyword=%E7%8C%AB%E5%92%AA&count=5&aid=1128: JSON parse
failed: Unexpected end of JSON input
exitCode: 1
排除了登录问题
先怀疑是 creator.douyin.com 没登录,专门去 https://creator.douyin.com/creator-micro/home 确认账号已登录(正常显示粉丝数/关注数等数据),重跑命令报错完全一致。同账号下 opencli douyin hashtag hot(热点词榜,不需要 --keyword)正常返回数据,说明 creator.douyin.com 的会话本身没问题,问题精确定位在 /aweme/v1/challenge/search/ 这个端点。
/aweme/v1/challenge/search/ 接口返回 HTTP 200 但响应体为空,clis/douyin/_shared/browser-fetch.js 里对空 body 直接 res.json()/JSON.parse(""),没有空响应保护,抛出 Unexpected end of JSON input。#1405 已经给出了具体修复建议(先 res.text() 判空再 parse),但看起来没有真正合入。
环境信息
Bug 描述
opencli douyin hashtag search --keyword <关键词>仍然失败,报COMMAND_EXEC: JSON parse failed: Unexpected end of JSON input。这和 #1405(2026-05-10 关闭,无回复评论)是同一个根因,但在当前最新版本上依然复现,看起来之前是被自动关闭而不是真的修复。
复现步骤
opencli douyin hashtag search --keyword "猫咪" --limit 5 -f yaml实际输出
排除了登录问题
先怀疑是 creator.douyin.com 没登录,专门去 https://creator.douyin.com/creator-micro/home 确认账号已登录(正常显示粉丝数/关注数等数据),重跑命令报错完全一致。同账号下
opencli douyin hashtag hot(热点词榜,不需要 --keyword)正常返回数据,说明 creator.douyin.com 的会话本身没问题,问题精确定位在/aweme/v1/challenge/search/这个端点。根因(与 #1405 一致)
/aweme/v1/challenge/search/接口返回 HTTP 200 但响应体为空,clis/douyin/_shared/browser-fetch.js里对空 body 直接res.json()/JSON.parse(""),没有空响应保护,抛出Unexpected end of JSON input。#1405 已经给出了具体修复建议(先res.text()判空再 parse),但看起来没有真正合入。环境信息