SuperAPI AI Directory

content-bridge

Office & productivity

View repository

Updated 10-15 22:11

About this skill

Content Bridge - General-purpose content ingestion routing layer

Intelligent routing layer that automatically invokes the corresponding content ingestion skill based on the URL type, and returns standardized content.

Positioning and Responsibilities

Content Bridge is general-purpose content ingestion infrastructure, and is not bound to any downstream application.

  • Core responsibility: identify the content source type → route to the corresponding ingestion skill → return standardized content
  • Reusability: any skill (deep-learning, knowledge-sync, research, etc.) can depend on it
  • Not responsible for: it does not directly implement the scraping logic for specific platforms, and does not handle downstream application logic (such as NotebookLM upload)
  • Clear boundaries: focuses on the "content acquisition" layer; how downstream uses it is decided by the caller

Architecture Description

Content Bridge is arouting layer, not an implementation layer:

调用方 (deep-learning, etc.)
    ↓
content-bridge (路由判断)
    ↓
独立摄取 skills (weixin-extractor, bilibili-subtitle, etc.)
    ↓
标准化输出 (Markdown + metadata)

Dependent Ingestion Skills

Content Source Ingestion Skill Status
WeChat Official Account weixin-extractor ✅ Created
Bilibili Video bilibili-subtitle ✅ Exists
YouTube youtube-transcript ✅ Created
General Web Page web-reader ✅ Created
PDF/DOCX document-parser ✅ Created

Supported Content Sources

1. WeChat Official Account Articles

Automatically scrape WeChat Official Account article content via the MCP server (bypassing anti-scraping)

2. Any Web Page Link

Supports any publicly accessible web page (news, blogs, documents, etc.)

3. YouTube Videos

Automatically extract subtitles and metadata from YouTube videos

4. Office Documents

  • Word (DOCX) - Preserves tables and formatting
  • PowerPoint (PPTX) - Extracts slides and notes
  • Excel (XLSX) - Tabular data

5. E-books and Documents

  • PDF - Full-text extraction
  • EPUB - Full-text extraction of e-books
  • Markdown (.md) - Native support

6. Images and Scanned Documents

  • Images (JPEG, PNG, GIF, WebP) - OCR text recognition
  • Scanned PDF documents - OCR text extraction

7. Audio Files

  • Audio (WAV, MP3) - Speech-to-text

8. Structured Data

  • CSV - Comma-separated data
  • JSON - JSON data
  • XML - XML documents

9. Archives

  • ZIP - Automatically decompresses and processes all supported files

10. Plain Text

Text content entered or pasted directly

11. Search Keywords

Searches keywords via Web Search and aggregates information from multiple sources

12. Bilibili Videos

Extracts subtitles or transcribes audio via the bilibili-subtitle tool to generate a text transcript

Prerequisites

1. Install wexin-read-mcp

The MCP server is already installed at:~/.claude/skills/anything-to-notebooklm/wexin-read-mcp/

Configure MCP(needs to be manually added to the Claude configuration file):

macOS: Edit ~/.claude/config.json

{
  "primaryApiKey": "any",
  "mcpServers": {
    "weixin-reader": {
      "command": "python",
      "args": [
        "/Users/joe/.claude/skills/anything-to-notebooklm/wexin-read-mcp/src/server.py"
      ]
    }
  }
}

After configuration, Claude Code needs to be restarted.

2. NotebookLM Authentication

Before first use, delegate to the notebooklm Skill to execute the authentication process:

  1. Run authentication check (auth check)
  2. If not logged in or expired, execute login (login)
  3. Return authentication status to this Skill, and continue upload/generation only after confirmation

Trigger Methods

WeChat Official Account Article

  • /anything-to-notebooklm [微信文章链接]
  • "Upload this WeChat article to NotebookLM"
  • "Generate a podcast from this WeChat article"

Web Link

  • "Make this webpage into a podcast [URL]"
  • "Make this article into a PPT for me [URL]"
  • "Help me analyze this webpage [URL]"

YouTube Video

  • "Make this YouTube video into a podcast [YouTube URL]"
  • "Generate a mind map for this video [YouTube URL]"

Bilibili Video

  • "Make this Bilibili video into a podcast [Bilibili URL]"
  • "Generate a PPT for this Bilibili video [BV number]"

Local File

  • "Upload this PDF to NotebookLM /path/to/file.pdf"
  • "Generate a PPT from this Markdown file /path/to/file.md"
  • "Generate a podcast from this EPUB ebook /path/to/book.epub"
  • "Make this Word document into a mind map /path/to/doc.docx"
  • "Generate a Quiz from this PowerPoint /path/to/slides.pptx"
  • "Make this scanned PDF into a report /path/to/scan.pdf" (automatic OCR)

Search Keywords

  • "Search for 'AI development trends' and generate a report"
  • "Search for materials about 'quantum computing' and make a podcast"

Mixed Use

  • "Upload this article, this video, and this PDF together, and generate a report"

Natural Language → Delegated Action Mapping

What the user says Recognized intent Delegated action (executed by the notebooklm Skill)
"Generate a podcast" / "make it into audio" / "convert to speech" audio generate-audio
"Make a PPT" / "generate slides" / "make a presentation" slide-deck generate-slide-deck
"Draw a mind map" / "generate a mind map" / "make a map" mind-map generate-mind-map
"Generate a Quiz" / "create questions" / "make a quiz" quiz generate-quiz
"Make a video" / "generate a video" video generate-video
"Generate a report" / "write a summary" / "organize into a document" report generate-report
"Make an infographic" / "visualize" infographic generate-infographic
"Generate a data table" / "make a table" data-table generate-data-table
"Make flashcards" / "generate memory cards" flashcards generate-flashcards

If there is no explicit instruction, by default only upload without generating any content, and wait for the user's follow-up instructions.

Progress Updates

Provide clear status updates during execution:

⏳ 识别内容源类型...
✅ 检测到微信公众号文章
⏳ 抓取文章内容...
✅ 文章抓取成功:《深度学习的未来趋势》
⏳ 保存为临时文件...
✅ 已保存:/tmp/weixin_深度学习_1706234567.txt
⏳ 创建 NotebookLM 笔记本...
✅ 笔记本已创建:ID abc-123-def
⏳ 上传文件到笔记本...
✅ 上传完成,等待处理...
✅ 处理完成!
⏳ 生成播客...
✅ 播客生成完成!
⏳ 下载文件...
✅ Done!

Output Summary

After the task is completed, output in the following format:

Upload only (no generation):

✅ 内容已上传到 NotebookLM!

📓 笔记本:[标题]
   ID: abc-123-def

📄 来源:filename.txt
   ID: source-xyz-789

💡 后续操作:
   - 默认继续使用本 Skill:直接说"基于这个 notebook 生成播客/PPT/Quiz"
   - 高级模式:切换 `notebooklm` Skill,对该 notebook 进行精细控制

Upload and generate:

✅ [内容类型]已转换为[输出格式]!

📄 来源:[标题/文件名]
👤 作者:[作者](如有)
📅 日期:[日期](如有)

🎙️ [输出格式]已生成:
📁 文件:/tmp/output_file.mp3
⏱️ 时长/页数:约 X 分钟/页
📊 大小:X MB

Workflow

Step 1: Identify the content source type

Claude automatically identifies the input type:

Input feature Identified as Processing method
https://mp.weixin.qq.com/s/ WeChat Official Account MCP tool scraping
https://youtube.com/... or https://youtu.be/... YouTube Pass directly to NotebookLM
https://bilibili.com/... or BV1xxx Bilibili video bilibili-subtitle extract → TXT
https:// or http:// Web page Directly pass to NotebookLM
/path/to/file.pdf PDF file markitdown convert to Markdown → TXT
/path/to/file.epub EPUB ebook markitdown convert to Markdown → TXT
/path/to/file.docx Word document markitdown convert to Markdown → TXT
/path/to/file.pptx PowerPoint markitdown convert to Markdown → TXT
/path/to/file.xlsx Excel markitdown convert to Markdown → TXT
/path/to/file.md Markdown Direct upload
/path/to/image.jpg Image (OCR) markitdown OCR → TXT
/path/to/audio.mp3 Audio markitdown transcribe → TXT
/path/to/file.zip ZIP archive Extract → markitdown batch conversion
Keyword (no URL, no path) Search query WebSearch → Summarize → TXT

Step 2: Get content

WeChat official account:

  • Use MCP tool read_weixin_article
  • Returns: title, author, publish_time, content
  • Save as TXT:/tmp/weixin_{title}_{timestamp}.txt

Web page/YouTube:

  • Keep the original URL as the source input
  • NotebookLM automatically extracts content

Bilibili video:

  • Use bilibili-subtitle to extract subtitles/transcript
  • Command:python -m bilibili_subtitle "URL" -o /tmp --skip-summary
  • Save as TXT:/tmp/{video_id}.transcript.md

Office document/ebook/PDF:

  • Use markitdown to convert to Markdown
  • Command:markitdown /path/to/file.docx -o /tmp/converted.md
  • Save as TXT:/tmp/{filename}_converted_{timestamp}.txt

Local Markdown:

  • Hand it to the delegation layer as a local file source for upload

Image (OCR):

  • markitdown automatically performs OCR to recognize text
  • Extract EXIF metadata
  • Save as TXT

Audio file:

  • markitdown automatically transcribes speech to text
  • Extract audio metadata
  • Save as TXT

ZIP archive:

  • Automatically extract to a temporary directory
  • Traverse all supported files
  • Batch convert using markitdown
  • Merge into a single TXT or multiple Sources

Search keyword:

  • Use the WebSearch tool to search the keyword
  • Summarize the first 3-5 results
  • Save as TXT:/tmp/search_{keyword}_{timestamp}.txt

Step 3: Upload to NotebookLM

Delegate notebooklm Skill execution:

  1. Create notebook (returns notebook_id)
  2. Add source (file or URL)
  3. Wait for the source to enter READY status
  4. Pass notebook_id/source_id back to the subsequent steps of this Skill

Waiting for source READY is very important, otherwise subsequent generation may fail.

Step 5: Generate content based on intent (optional)

If the user has specified a processing intent, automatically delegate notebooklm Skill:

Intent Delegated action Artifact type
audio generate-audio mp3
slide-deck generate-slide-deck pdf
mind-map generate-mind-map json
quiz generate-quiz markdown/json/html
video generate-video mp4
report generate-report md
infographic generate-infographic png
flashcards generate-flashcards markdown/json/html

Generation process:

  1. Delegate generation initiation (returns task/artifact ID)
  2. Delegate waiting for completion
  3. Delegate download to local
  4. Inform the user of the final file path and size

Complete examples

Example 1: WeChat Official Account article → Podcast

User input:

把这篇文章生成播客 https://mp.weixin.qq.com/s/abc123xyz

Execution flow:

  1. Recognized as a WeChat Official Account link
  2. MCP tool fetches the article content
  3. Create a TXT file
  4. Upload to NotebookLM
  5. Generate podcast (generate audio)
  6. Download the podcast locally

Output:

✅ 微信文章已转换为播客!

📄 文章:深度学习的未来趋势
👤 作者:张三
📅 发布:2026-01-20

🎙️ 播客已生成:
📁 文件:/tmp/weixin_深度学习的未来趋势_podcast.mp3
⏱️ 时长:约 8 分钟
📊 大小:12.3 MB

Example 2: YouTube video → Mind map

User input:

这个视频帮我画个思维导图 https://www.youtube.com/watch?v=abc123

Execution flow:

  1. Recognized as a YouTube link
  2. Pass directly to NotebookLM (automatic subtitle extraction)
  3. Generate mind map (generate mind-map)
  4. Download the mind map

Output:

✅ YouTube 视频已转换为思维导图!

🎬 视频:Understanding Quantum Computing
⏱️ 时长:23 分钟

🗺️ 思维导图已生成:
📁 文件:/tmp/youtube_quantum_computing_mindmap.json
📊 节点数:45 个

Example 3: Search keyword → Report

User input:

搜索 'AI发展趋势 2026' 并生成报告

Execution flow:

  1. Recognized as a search query
  2. WebSearch searches the keyword
  3. Summarize the top 5 results
  4. Create a TXT file
  5. Upload to NotebookLM
  6. Generate report (generate report)

Output:

✅ 搜索结果已生成报告!

🔍 关键词:AI发展趋势 2026
📊 来源:5 篇文章

📄 报告已生成:
📁 文件:/tmp/search_AI发展趋势2026_report.md
📝 章节:7 个
📊 大小:15.2 KB

Example 4: Mixed multiple sources → PPT

User input:

把这篇文章、这个视频和这个PDF一起做成PPT:
- https://example.com/article
- https://youtube.com/watch?v=xyz
- /Users/joe/Documents/research.pdf

Execution flow:

  1. Create a new Notebook
  2. Add 3 Sources in sequence
  3. Generate PPT based on all Sources

Output:

✅ 多源内容已整合为PPT!

📚 内容源:
  1. 网页文章:AI in 2026
  2. YouTube:Future of AI
  3. PDF:Research Notes (12 页)

📊 PPT 已生成:
📁 文件:/tmp/multi_source_slides.pdf
📄 页数:25 页
📦 大小:3.8 MB

Example 5: EPUB e-book → Podcast

User input:

把这本电子书做成播客 /Users/joe/Books/sapiens.epub

Execution flow:

  1. Recognized as an EPUB file
  2. markitdown converts to Markdown
  3. Save as TXT
  4. Upload to NotebookLM
  5. Generate podcast

Output:

✅ EPUB 电子书已转换为播客!

📚 电子书:Sapiens: A Brief History of Humankind
📄 页数:约 450 页
📊 字数:约 15 万字

🎙️ 播客已生成:
📁 文件:/tmp/sapiens_podcast.mp3
⏱️ 时长:约 45 分钟(精华版)
📊 大小:48.2 MB

Example 6: Word document → Quiz

User input:

这个Markdown生成Quiz /Users/joe/notes/machine_learning.md

Execution flow:

  1. Recognized as a local Markdown file
  2. Upload directly to NotebookLM
  3. Generate Quiz (generate quiz)

Output:

✅ Markdown 已转换为Quiz!

📄 文件:machine_learning.md
📊 大小:8.5 KB

📝 Quiz 已生成:
📁 文件:/tmp/machine_learning_quiz.md
❓ 题目:15 道(10选择 + 5简答)

Error handling

1. Failed to fetch WeChat article

  • Error: unable to fetch article content
  • Cause: article deleted, login required, network issue, anti-scraping block
  • Solution: check whether the link is correct, wait 2-3 seconds and retry
  • Fallback: manually copy the article content

2. NotebookLM authentication failed

  • Error:Auth/cookie error
  • Cause: authentication expired or not logged in
  • Solution: switch to the notebooklm Skill to run the authentication repair process (auth check/login)
  • Verify: authentication status is returned by the notebooklm Skill

3. File upload failed

  • Error:Invalid file or upload error
  • Cause: incorrect file path, permission issue, file too large
  • Solution: this Skill first checks the path/permissions/conversion result, then delegates to the notebooklm Skill to retry the upload
  • Fallback: try converting to a smaller file

4. Generation task failed

  • Error:Generation failed
  • Cause: Content is too short (<100 characters), too long (>500,000 characters), or the service is abnormal
  • Solution: By notebooklm Skill, perform task status diagnosis and retry
  • Alternative: Try other formats (e.g., a report instead of a podcast)

5. MCP tool not found

  • Error:Tool not found: read_weixin_article
  • Cause: The MCP server is not configured or not started
  • Solution: Check ~/.claude/config.json configuration, restart Claude Code
  • Verify:python ~/.agents/skills/anything-to-notebooklm/wexin-read-mcp/src/server.py

Advanced Features

1. Multi-intent processing

Users can specify multiple processing tasks at once:

这篇文章帮我生成播客和PPT https://mp.weixin.qq.com/s/abc123

The Skill will execute in sequence:

  1. Generate podcast
  2. Generate PPT

2. Custom Notebook

By default, a new Notebook is created for each article, but an existing Notebook can also be specified:

把这篇文章加到我的【AI研究】笔记本 https://mp.weixin.qq.com/s/abc123

The Skill will:

  1. Search for a Notebook named "AI Research"
  2. Add the article as a new Source
  3. Generate content based on all Sources

3. Custom generation instructions

Add specific requirements for generation tasks:

这篇文章生成播客,要求:轻松幽默的风格,时长控制在5分钟

The Skill will pass the requirements as instructions to NotebookLM.

Notes

  1. Rate limits:

    • Interval between requests > 2 seconds to avoid being banned by WeChat
    • NotebookLM generation tasks have concurrency limits (at most 3 running simultaneously)
  2. Content length:

    • WeChat articles are usually 1,000-5,000 characters, suitable for generating podcasts (3-8 minutes)
    • Long articles over 10,000 characters may require longer generation time
    • Short articles under 500 characters may produce poor results
  3. Copyright compliance:

    • For personal study and research only
    • Comply with WeChat Official Account copyright regulations
    • Generated content must not be used for commercial purposes
  4. Generation time:

    • Podcast: 2-5 minutes
    • Video: 3-8 minutes
    • PPT: 1-3 minutes
    • Mind map: 1-2 minutes
    • Quiz/flashcards: 1-2 minutes
  5. File cleanup:

    • TXT source files are saved in /tmp/, automatically cleaned up after a system restart
    • Generated files (MP3/PDF/MD, etc.) are saved by default in /tmp/
    • A custom save path can be specified

Related Skills

  • notebooklm - NotebookLM execution layer (advanced users can use directly)
  • notebooklm-deep-analyzer - In-depth analysis of NotebookLM content
  • markitdown - Convert documents in other formats

Default strategy:

  • By default, externally use anything-to-notebooklm(unified entry point)
  • For advanced scenarios, use notebooklmdirectly (fine-grained control)

Configure MCP (Important)

⚠️ Must be configured before first use

Edit ~/.claude/config.json:

{
  "primaryApiKey": "any",
  "mcpServers": {
    "weixin-reader": {
      "command": "python",
      "args": [
        "/Users/joe/.claude/skills/anything-to-notebooklm/wexin-read-mcp/src/server.py"
      ]
    }
  }
}

Restart Claude Code after configuration!

Troubleshooting

# 测试 MCP 服务器
python ~/.agents/skills/anything-to-notebooklm/wexin-read-mcp/src/server.py

Faults on the NotebookLM side (authentication, upload, generation, download) are uniformly delegated to notebooklm Skill to handle; a complete CLI troubleshooting manual is not maintained in this Skill.

Typical Use Cases

Scenario 1: Quick learning

我想学习这篇文章,帮我生成播客,上下班路上听
链接:https://mp.weixin.qq.com/s/abc123

→ Generate an 8-minute podcast to listen to during your commute

Scenario 2: Share with the team

这篇文章不错,做成PPT分享给团队
https://mp.weixin.qq.com/s/abc123

→ Generate a 15-page PPT, ready for team sharing

Scenario 3: Review and reinforce

这篇技术文章帮我出题,想测试一下掌握程度
https://mp.weixin.qq.com/s/abc123

→ Generate 10 multiple-choice questions + 5 short-answer questions

Scenario 4: Visual understanding

这篇文章概念比较多,画个思维导图帮我理清结构
https://mp.weixin.qq.com/s/abc123

→ Generate a mind map, clear at a glance

Example 7: Bilibili video → Podcast

User input:

把这个B站视频做成播客 https://www.bilibili.com/video/BV1234567890/

Execution flow:

  1. Identified as a Bilibili link
  2. bilibili-subtitle extracts subtitles/transcript
  3. Save as TXT
  4. Upload to NotebookLM
  5. Generate podcast

Output:

✅ B站视频已转换为播客!

🎬 视频:深度学习入门教程
⏱️ 时长:45 分钟

🎙️ 播客已生成:
📁 文件:/tmp/bilibili_BV1234567890_podcast.mp3
⏱️ 时长:约 12 分钟
📊 大小:18.5 MB

Skill creation time:2026-01-25 Last updated:2026-02-25 Version:v1.2.0