@guiyumin
随便找的一个视频 https://x.com/ebh6p/status/1996271881436250173 (! nsfw)。未登录的情况下,直接通过浏览器是无法查看的,会显示:
「 Age-restricted adult content. This content might not be appropriate for people under 18 years old. To view this media, you’ll need to log in to X. Learn more
」
遇到的第一个问题 (HTTP 400):
工具一开始无法解析,报错提示 GraphQL 请求缺少了一些必要的 Feature 参数:
✗ 解析失败: failed to fetch tweet: GraphQL request failed with status 400: {"errors":[{"message":"The following features cannot be
Error: failed to fetch tweet: GraphQL request failed with status 400: {"errors":[{"message":"The following features cannot be null: rweb_lists_timeline_redesign_enabled, tweetypie_unmention_optimization_enabled, responsive_web_media_download_video_enabled","extensions":{"name":"BadRequestError","source":"Client","code":336,"kind":"Validation","tracing":{"trace_id":"01c962adb89f6e35"}},"code":336,"kind":"Validation","name":"BadRequestError","source":"Client","tracing":{"trace_id":"01c962adb89f6e35"}}]}
修改之后:
diff --git a/internal/extractor/twitter.go b/internal/extractor/twitter.go
index f5ca9c0..fd8c7aa 100644
--- a/internal/extractor/twitter.go
+++ b/internal/extractor/twitter.go
@@ -178,6 +178,9 @@ func (t *TwitterExtractor) fetchFromGraphQL(tweetID string) (Media, error) {
"responsive_web_graphql_timeline_navigation_enabled": true,
"responsive_web_enhance_cards_enabled": false,
+ "rweb_lists_timeline_redesign_enabled": true,
+ "responsive_web_media_download_video_enabled": true,
+ "tweetypie_unmention_optimization_enabled": true,
}
再次执行:
➜ vget git:(main) ✗ ./build/vget https://x.com/ebh6p/status/1996271881436250173
✗ 解析失败: failed to fetch tweet: GraphQL request failed with status 404:
Error: failed to fetch tweet: GraphQL request failed with status 404: