Files
jakevin b7c6c02370 feat: add weixin article download adapter & abstract download helpers (#280)
- New: src/clis/weixin/download.ts — WeChat article to Markdown adapter
- New: src/download/article-download.ts — shared article download helper
  (TurndownService, image localization, frontmatter, customizable labels)
- New: src/download/media-download.ts — shared media download helper
  (batch download, ProgressTracker, yt-dlp routing, auto cookie export)
- Refactor: migrate zhihu/download to use downloadArticle()
- Refactor: migrate xiaohongshu/download to use downloadMedia()
- Refactor: migrate twitter/download to use downloadMedia()
- Refactor: migrate bilibili/download to use downloadMedia()
- Docs: add weixin to README, README.zh-CN, download docs, adapter docs
2026-03-23 12:11:43 +08:00

1.9 KiB

Download Support

OpenCLI supports downloading images, videos, and articles from supported platforms.

Supported Platforms

Platform Content Types Notes
xiaohongshu Images, Videos Downloads all media from a note
bilibili Videos Requires yt-dlp installed
twitter Images, Videos Downloads from user media tab or single tweet
zhihu Articles (Markdown) Exports articles with optional image download
weixin Articles (Markdown) Exports WeChat Official Account articles

Prerequisites

For video downloads from streaming platforms, install yt-dlp:

# Install yt-dlp
pip install yt-dlp
# or
brew install yt-dlp

Usage Examples

# Download images/videos from Xiaohongshu note
opencli xiaohongshu download --note-id abc123 --output ./xhs

# Download Bilibili video (requires yt-dlp)
opencli bilibili download --bvid BV1xxx --output ./bilibili
opencli bilibili download --bvid BV1xxx --quality 1080p

# Download Twitter media from user
opencli twitter download elonmusk --limit 20 --output ./twitter

# Download single tweet media
opencli twitter download --tweet-url "https://x.com/user/status/123" --output ./twitter

# Export Zhihu article to Markdown
opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --output ./zhihu

# Export with local images
opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --download-images

# Export WeChat article to Markdown
opencli weixin download --url "https://mp.weixin.qq.com/s/xxx" --output ./weixin

Pipeline Step (YAML Adapters)

The download step can be used in YAML pipelines:

::: v-pre

pipeline:
  - fetch: https://api.example.com/media
  - download:
      url: ${{ item.imageUrl }}
      dir: ./downloads
      filename: ${{ item.title | sanitize }}.jpg
      concurrency: 5
      skip_existing: true

:::