Skip to main content

B站小红书 Content Pipeline — URL to Markdown

Project description

Red Blue CP · 红蓝CP —— B 站小红书 Content Pipeline

Red Blue CP · 红蓝CP

自古红蓝出 CP —— B 站小红书 Content Pipeline

把 B 站和小红书的视频/图文内容转成纯文本,沉淀成本地 Markdown 知识库。

状态v0.2.0,MIT 开源。P0 单篇闭环(B站/小红书 视频+图文 → Markdown,多人对谈自动说话人分离)+ P1 小红书博主全量下载 / 评论提取 / 扫码登录。 仓库 red-blue-cp | CLI rbcp | 输出默认 ~/transcript/


一、给用户(人)

把一个链接变成桌面上的一个 Markdown 文件。视频转文字、图文做识别、多人对谈分说话人。新版还能扫码登录后整个博主批量下连评论一起存

装 + 配

前置:Python 3.13、uv;ffmpeg(音频抽流兜底用);Chrome/Edge(仅评论/批量用)。

git clone <repo-url> && cd red-blue-cp
uv sync
cp .env.example .env        # 填入百炼 DASHSCOPE_API_KEY(单篇公开笔记不需 cookie)

# 网页版:浏览器粘链接
uv run rbcp serve                              # http://0.0.0.0:8000

# 单篇(主要给人用)
uv run rbcp run "<B站 或 小红书 链接>"          # 转录成 Markdown
uv run rbcp fetch "<小红书笔记链接>" --comments  # 附带评论(含楼中楼)

# 博主全量 / 评论:先扫码登录一次(cookie 存本地复用)
uv run rbcp login                              # 弹浏览器→手机扫码→回终端按回车
uv run rbcp fetch "<博主主页链接>" --all        # 先预览 X 篇,确认后逐条下

可选开关:--comments(带评论)/ --save-media(留原始媒体)/ --text-only(跳过转录只取正文)。 带评论 / 博主全量走浏览器抓接口,温和限频(实测清单 ~14、评论 ~4 请求·分钟⁻¹),不易触发风控。


二、给开发者

技术栈:FastAPI + Jinja2 + HTMX + typer + SQLite + asyncio + requests(REST/OpenAI 兼容 HTTP 直调百炼);博主全量/评论用 pydoll(CDP 连系统 Chrome 抓接口)。

结构

app/
├── service/
│   ├── model.py       # ModelProvider + DashscopeProvider(ASR/VLM/LLM)
│   ├── extractor.py   # 编排:fetcher + model(含 --text-only/--save-media)
│   ├── fetcher.py     # requests 爬 B站/小红书 API + 解析
│   ├── discover.py    # P1 唯一碰浏览器处:pydoll 抓博主清单/评论 + rbcp login
│   ├── comments.py    # 评论 → {note_id}.comments.md(楼中楼嵌套)
│   ├── markdown.py    # frontmatter + sanitize + 原子写
│   └── storage.py     # SQLite jobs
├── web/routes.py      # WebUI + REST API
└── cli.py             # rbcp 命令

开发

uv run pytest          # 全量测试
uv run rbcp serve      # 本地起服务(单进程 uvicorn,禁 --workers)

部署:自部署工具,推荐国内 IP 机器(避海外风控);手机访问走 tailscale 或 frp。

文档导航

文档 用途
PRD.md 产品需求:定位、五层架构、排期
SPEC.md 技术规格:架构、API、数据模型、决策
PLAN.md 里程碑、Checklist、风险、开放问题
CLAUDE.md 项目不变量、红线、协作规则
LOG.md 演进日志(决策/开发/经验,详情在 docs/devlog/
docs/reference/xhs-api-notes.md 小红书接口速查(字段/风控/cookie)

三、给 Agent

定位:单篇给人用,博主批量为 Agent 设计——工具只列清单,按什么规则筛由 Agent 决定。

列清单(机器可读)

uv run rbcp list "<博主主页链接>" --json

返回固定结构(SPEC §4.3),关键是 complete 硬字段

  • complete: true → 拉全了,notes[] 是全量
  • complete: false → 被风控/cookie 过期/网络中断截断,是半份不得当全量,且退出码非 0

每条 note 给 note_id / title / type / liked_count / xsec_token(token 一次性会过期,拿到尽快用)。

典型工作流list --json 拿清单 → 自己按关键词/类型筛出要的 → 对每条 fetch。或直接 fetch <博主url> --all --json --yes 整博主下,返回 {captured, downloaded, failed, results[]}

uv run rbcp fetch "<笔记链接>" --comments --json   # 单篇,结构化输出
uv run rbcp fetch "<博主url>" --all --json --yes    # 整博主,逐条结果

注意:评论/博主全量需登录态(rbcp login.envXHS_COOKIE/RBCP_XHS_COOKIE_FILE);浏览器任务全局串行、温和限频;解析层契约与字段见 SPEC §4.4小红书接口速查


范围外

抖音 | MCP server(P2 按需)| Get 笔记历史迁移(独立项目)| 远期 LLM Wiki(本项目只产 Markdown 原料)。

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

red_blue_cp-0.3.0.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

red_blue_cp-0.3.0-py3-none-any.whl (52.4 kB view details)

Uploaded Python 3

File details

Details for the file red_blue_cp-0.3.0.tar.gz.

File metadata

  • Download URL: red_blue_cp-0.3.0.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for red_blue_cp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4b92b60b1cda1ae2a44a24d7e7b9e2f6b13c56e996f38662e922817f5846e92a
MD5 96badc1bc7fe4f1d168ec9e1b21253a8
BLAKE2b-256 ecb483bdaf1aa0c88583663dd33c01d9ebb92f208abda70b07197c8b898ea405

See more details on using hashes here.

Provenance

The following attestation bundles were made for red_blue_cp-0.3.0.tar.gz:

Publisher: publish.yml on MuChengZJU/red-blue-cp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file red_blue_cp-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: red_blue_cp-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 52.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for red_blue_cp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3f7ec68e6f38a8dc9a09cd66a611f5f1393e43541fbc565289591e9279db99ad
MD5 6d6c45a9f4d6aca91eab117cb5d46c4b
BLAKE2b-256 99fca096ec55dd83a4e0b255138929de2dbcfb152a7b741a018766f0b50f9f5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for red_blue_cp-0.3.0-py3-none-any.whl:

Publisher: publish.yml on MuChengZJU/red-blue-cp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page