Skip to content

feat(twitter): 读命令透出 author_avatar / views / media_durations,视频直链取最高码率 - #2467

Open
huanghe wants to merge 1 commit into
jackwener:mainfrom
huanghe:upstream/twitter-list-metadata
Open

feat(twitter): 读命令透出 author_avatar / views / media_durations,视频直链取最高码率#2467
huanghe wants to merge 1 commit into
jackwener:mainfrom
huanghe:upstream/twitter-list-metadata

Conversation

@huanghe

@huanghe huanghe commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

动机

推文 GraphQL 响应里本来就带着作者头像、浏览量和每条媒体的时长,只是没进 columns;视频直链则一直取到最低码率变体(480x270)。这批改动零新请求、零新登录态,老列的名字和格式全部保持不变

改动

  • extractMedia 按 bitrate 取最高码率 mp4。此前 find(mp4) 取的是第一个变体,而 X 按码率升序返回,直链恒为 480x270
  • extractMedia 新增 media_durations(毫秒,与 media_urls 1:1 对齐,图片为 0),这是推文视频时长的唯一来源;落到全部带媒体的命令与 quoted_tweet
  • list-tweets / threadviews(与 search 同形:数字字符串,X 没给时为 '0');list-tweets / thread / searchauthor_avatar_normal_400x400
  • thread 的 FEATURES 补 view_counts_everywhere_api_enabled,否则 TweetDetail 根本不返 views.countviews 恒为 '0'

验证

  • clis/twitter 560 个用例通过(shared / list-tweets / search / thread / tweets 等补断言)
  • cli-manifest.json 已重新生成,check:silent-column-drop 无新增违规
  • docs/adapters/browser/twitter.md 补充说明

…视频直链取最高码率

推文 GraphQL 响应里本来就带着作者头像、浏览量和每条媒体的时长,只是没进
columns;视频直链则一直取到最低码率变体。这批改动零新请求、零新登录态,
老列的名字和格式全部保持不变。

- extractMedia 按 bitrate 取最高码率 mp4。此前 find(mp4) 取的是第一个变体,
  而 X 按码率升序返回,直链恒为 480x270
- extractMedia 新增 media_durations(毫秒,与 media_urls 1:1 对齐,图片为 0),
  这是推文视频时长的唯一来源;落到全部带媒体的命令与 quoted_tweet
- list-tweets / thread 补 views,list-tweets / thread / search 补
  author_avatar(_normal → _400x400)
- thread 的 FEATURES 补 view_counts_everywhere_api_enabled,否则 TweetDetail
  根本不返 views.count,views 恒为 '0'

已重新生成 cli-manifest.json,silent-column-drop gate 无新增违规。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant