155 lines
3.3 KiB
Markdown
155 lines
3.3 KiB
Markdown
---
|
||
name: kb-zhihu-content
|
||
description: 知乎内容下载 - 下载视频、提取文章内容
|
||
---
|
||
|
||
# KB Zhihu Content Skill
|
||
|
||
**kb-zhihu-content** - 下载知乎视频、提取文章内容。
|
||
|
||
## 什么时候使用
|
||
|
||
- kb-workflow 步骤 3a:下载知乎视频
|
||
- kb-workflow 步骤 3b:提取知乎专栏文章内容
|
||
|
||
## 功能
|
||
|
||
- 视频下载(使用 yt-dlp)
|
||
- 从 MediaCrawler 数据读取文章内容
|
||
- 支持 `ZHIHU_COOKIE` 环境变量
|
||
|
||
## 环境变量
|
||
|
||
| 变量名 | 必需 | 说明 |
|
||
|--------|------|------|
|
||
| `ZHIHU_COOKIE` | 否 | 知乎登录 Cookie |
|
||
|
||
## 命令
|
||
|
||
```bash
|
||
# 下载视频
|
||
python3 zhihu_content.py --id "12345678" --type video --output "/path/to/downloads/"
|
||
|
||
# 从 MediaCrawler 读取文章内容
|
||
python3 zhihu_content.py --type article-from-media \
|
||
--input "~/work/MediaCrawler/data/zhihu/json/detail_contents_2026-02-27.json" \
|
||
--output "~/work/knowledge-base/data/zhihu/"
|
||
|
||
# 自动查找最新 MediaCrawler 数据
|
||
python3 zhihu_content.py --type article-from-media \
|
||
--output "~/work/knowledge-base/data/zhihu/"
|
||
```
|
||
|
||
## 输出格式 Schema
|
||
|
||
### 必需字段
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `success` | boolean | 是否成功 |
|
||
| `type` | string | 操作类型(video/article) |
|
||
|
||
### 视频下载特有字段
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `filepath` | string | 视频文件路径 |
|
||
| `filename` | string | 视频文件名 |
|
||
|
||
### 文章提取特有字段
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `filepath` | string | 文章文件路径 |
|
||
| `filename` | string | 文章文件名 |
|
||
| `content_length` | number | 内容长度 |
|
||
|
||
## 成功示例
|
||
|
||
### 视频下载
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"type": "video",
|
||
"filename": "zhihu_12345678.mp4",
|
||
"filepath": "content/downloads/zhihu_12345678.mp4",
|
||
"message": "下载完成"
|
||
}
|
||
```
|
||
|
||
### 文章内容提取
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"type": "article",
|
||
"filename": "zhihu_article_如何高效的爬取微信公众号.md",
|
||
"filepath": "~/work/knowledge-base/data/zhihu/zhihu_article_如何高效的爬取微信公众号.md",
|
||
"content_length": 4563,
|
||
"message": "文章内容已导出"
|
||
}
|
||
```
|
||
|
||
## 错误示例
|
||
|
||
### 视频下载失败
|
||
|
||
```json
|
||
{
|
||
"success": false,
|
||
"type": "video",
|
||
"error": "视频不存在或无法访问",
|
||
"suggestion": "请检查视频 ID 是否正确"
|
||
}
|
||
```
|
||
|
||
### MediaCrawler 数据未找到
|
||
|
||
```json
|
||
{
|
||
"success": false,
|
||
"type": "article-from-media",
|
||
"error": "未找到 MediaCrawler 数据文件",
|
||
"suggestion": "请先运行 MediaCrawler 爬取文章"
|
||
}
|
||
```
|
||
|
||
### 网络错误
|
||
|
||
```json
|
||
{
|
||
"success": false,
|
||
"error": "网络请求失败: Connection timeout"
|
||
}
|
||
```
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
cp -r kb-zhihu-content/ ~/.openclaw/skills/
|
||
pip install yt-dlp aiohttp
|
||
```
|
||
|
||
## 在 kb-workflow 中的使用
|
||
|
||
```bash
|
||
# 步骤 3a:下载知乎视频
|
||
python3 ~/.openclaw/skills/kb-zhihu-content/zhihu_content.py \
|
||
--id "12345678" --type video \
|
||
--output "content/downloads/"
|
||
|
||
# 注意:知乎视频没有官方字幕,下载后需要进入 Whisper 步骤
|
||
|
||
# 步骤 3b:提取专栏文章(如果有 MediaCrawler 数据)
|
||
python3 ~/.openclaw/skills/kb-zhihu-content/zhihu_content.py \
|
||
--type article-from-media \
|
||
--output "content/"
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
- **知乎视频没有官方字幕**:下载后必须进入 Whisper 步骤
|
||
- MediaCrawler 需要单独安装和运行
|
||
- 部分视频可能需要登录才能下载
|