Jelajahi Sumber

数据接口与来源:补充视频/音频取数实测(2026-06-16)

- 新增 视频音频取数实测.md:平台可取数矩阵(小红书图文 / 抖音·快手 mp4 / B站分轨)、
  下载方法、喂 Gemini 方式(图片传URL;视频必须 base64;远程视频URL不行;B站需合并)
- B站.md:补 mcdn 下载坑(httpx 跟随重定向卡死,用 curl 不跟随)+ 合并实测确认有音视频
- 同款已同步到 ContentFindAgentNew/tech_documents/数据接口与来源/

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
lisihan 1 bulan lalu
induk
melakukan
4eb8760c7f

+ 2 - 0
数据接口与来源/接口台账/B站.md

@@ -193,6 +193,8 @@ curl -L 'https://xy115x231x41x20xy.mcdn.bilivideo.cn:8082/v1/resource/upgcxcode/
 - **下载结论:bili_video_dl 实测 206,可下载**,得到真实视频字节。
 - m4s 必须带 `Referer: https://www.bilibili.com/`,否则防盗链拦截。
 - DASH 分轨:视频轨 + `voice_data.play_url` 音频轨需分别下载后合并(ffmpeg)。
+- **(实测 2026-06-16,新加坡云端)完整下载 + 合并验证通过**:视频轨(`...30016.m4s`)+ `voice_data.play_url` 音轨(`...30216.m4s`)→ `ffmpeg -i v.m4s -i a.m4s -c copy out.mp4` → 合并 mp4 含 `Video h264 (avc1)` + `Audio aac (HE-AAC) 44100Hz stereo`,可直接做原生视频提炼。
+- ⚠️ **下载坑(实测)**:`*.mcdn.bilivideo.cn` 节点用 httpx `follow_redirects=True` 会被带到 P2P 死节点、连接超时(两次都卡死);**改用 curl 且不跟随重定向**即 `206` 秒下。视频轨主 host `upos-sz-mirrorcos.bilivideo.com` 稳定。详见 [视频音频取数实测.md](../视频音频取数实测.md)。
 - 大文件用 `Range` 分块续传(`Content-Range` 给出总长 1766147)。
 
 ### ⑦ 边界与失败

+ 59 - 0
数据接口与来源/视频音频取数实测.md

@@ -0,0 +1,59 @@
+# 视频/音频取数与多模态喂入 · 实测
+
+> 实测日期 2026-06-16,在阿里云海外开发机(新加坡,出口 47.245.103.121)上,对 `crawler.aiddit.com` 各平台 detail 接口 + 真实下载 + Gemini(经 OpenRouter)逐一实测。结论以本文为准;样例 id 见各小节,原始抓包在 `captures/`。
+
+## 1. 平台可取数据矩阵(实测)
+
+| 平台 | 图文(图片+文字) | 视频文件 | 音频(口播) | 取数难度 |
+|---|---|---|---|---|
+| 小红书 | ✅ 图片可下载 | ❌ 详情不给视频直链(视频帖也只给封面图) | — | 最简单 |
+| 抖音 | ✅ | ✅ 干净 mp4,多码率 540/720/1080 | ✅ 含在 mp4 | 简单 |
+| 快手 | (图文未单测) | ✅ 干净 mp4 | ✅ 含在 mp4 | 简单 |
+| B站 | (仅封面图) | ✅ 但 DASH 分轨 m4s | ✅ 但在 `voice_data` 单独音轨 | 较麻烦(需合并) |
+
+实测证据:
+- 小红书视频帖 `6976f6fd000000001a01eede`:`content_type=video` 但 `video_url_list=null`,只有 `image_url_list`(封面)。图文帖 `67e4bdf50000000006028a59`:5 张图,图片下载 200 image/jpeg。
+- 抖音 `7612631899479648866`:`video_url_list[0].video_url` + `multi_bitrate{540p,720p,1080p}`;540p 下载 206 `video/mp4`(13.5MB / 1.2s)。
+- B站 `BV1qd4y1x76w`:视频轨 m4s + 音频轨在 `voice_data.play_url`;合并后 ffmpeg 验流含 `Video h264 (avc1)` + `Audio aac (HE-AAC) 44100Hz stereo`。
+- 快手 `3xepqgwddgbickc`:`video_url_list` 一条,206 `video/mp4`。
+
+## 2. 下载方法(实测可用)
+
+### 图片:不用下载
+把图片 URL 直接作为 `image_url` 给 Gemini,模型自己抓取(各平台图片/封面同此)。
+
+### 抖音 / 快手 视频:干净 mp4
+1. detail → `video_url_list[0].video_url`(抖音可把 `ratio=default` 改 `ratio=540p` 控体积)。
+2. GET 该 URL,必带:
+   - `User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15`(iOS UA)
+   - `Referer: https://www.douyin.com/`(快手用 `https://www.kuaishou.com/`)
+   - 跟随重定向(302 → CDN)
+3. 得到完整 mp4(音视频一体)。新加坡云端直连 CDN `douyinvod.com` 可达。
+
+### B站 视频:DASH 分轨,必须合并
+1. detail →
+   - 视频轨:`video_url_list[0].video_url`(`..._nb3-1-30016.m4s`,**30016=视频 AVC**)
+   - 音频轨:**`voice_data.play_url`**(`..._nb3-1-30216.m4s`,**30216=音频 AAC**)——不在 video_url_list,藏在 `voice_data` 字段(dict,含 id_str/duration/play_url)。
+2. 下两轨,**用 curl 且不跟随重定向**:
+   ```bash
+   curl -s --connect-timeout 15 -A 'Mozilla/5.0' -e 'https://www.bilibili.com/' -o v.m4s "<video_url>"
+   curl -s --connect-timeout 15 -A 'Mozilla/5.0' -e 'https://www.bilibili.com/' -o a.m4s "<voice_data.play_url>"
+   ```
+   ⚠️ **坑**:B站 m4s 的 `*.mcdn.bilivideo.cn` 节点,用 httpx `follow_redirects=True` 会被带到 P2P 死节点、连接超时(实测两次都卡死);curl 不跟随重定向直接 206 秒下。视频轨主 host 是 `upos-sz-mirrorcos.bilivideo.com`(稳)。
+3. 合并:`ffmpeg -i v.m4s -i a.m4s -c copy out.mp4` → 含视频+音频的 mp4。
+
+## 3. 喂给 Gemini 的方式(实测,经 OpenRouter)
+
+通道:`OPENROUTER_API_KEY`(**无直连 GEMINI key**,`.env` 里 GEMINI_API_KEY 为空);`POST {OPENROUTER_BASE_URL}/chat/completions`;model `google/gemini-3-flash-preview`。
+
+- **图片**:`{"type":"image_url","image_url":{"url": <图片URL>}}` —— 传 URL,模型抓取。✅
+- **视频**:**必须 base64 data URL** —— `{"type":"video_url","video_url":{"url":"data:video/mp4;base64,<...>"}}`。
+  - ⚠️ 实测:把**远程视频 URL 直接**当 video_url(不 base64)→ 返回 HTTP 200 但**无有效结果**(无 choices/usage),等于没处理。OpenRouter 对 Gemini 只接受 **YouTube 远程链接**,其余一律要 base64。
+- provider 实际落 **Google AI Studio**,按 `video_tokens` 计费(约 25.6k tokens / 4分钟 540p / ≈$0.0157)。
+
+## 4. 接入建议(优先级)
+1. **抖音、快手**:mp4 干净、音视频一体,原生视频提炼直接可用 → 优先接。
+2. **小红书**:走图文(图片 URL 给 Gemini);视频帖够不着,放弃。
+3. **B站**:可做,但要「取 `voice_data` 音轨 + ffmpeg 合并 + 下载不跟随重定向」三处特殊处理 → 建议排在抖音/快手之后。
+
+> 另:新加坡开发机网络——下载抖音/快手/B站 CDN、调 OpenRouter/Gemini、连 RDS、调 crawler 均通;唯一不通的是内网 GitLab(仅构建期用)。运行期"下载→提炼→落库"可全在云端一条龙。