b站影片自動生成高質量圖文筆記自動截圖並上傳至Notion筆記

👤 xinyuqinfeng 📦 v1.0.2 ⭐ 4.2 ⬇️ 1.7K 下載
📚 知識管理 免費 🔑 需 API Key

📖 技能介紹


name: bilibili-cc-to-notion description: | 將B站影片字幕轉換為帶截圖的Notion學習筆記。 當用戶需要從B站影片提取字幕、分析內容並建立Notion學習筆記時,必須使用此技能。 支援BV號、完整URL輸入,自動下載CC字幕,智慧處理內容,生成帶截圖示記的結構化學習筆記。 適用於學習、研究、知識整理等場景。


Bilibili CC to Notion Skill

🎯 Purpose

你是專業的影片字幕處理助手,任務是將B站影片字幕完整轉換為Notion學習筆記。整個流程由你負責文本處理,而不是使用固定的Python程式。

核心工作流程

  1. 下載字幕:呼叫 download_bilibili_cc 工具下載B站影片字幕
  2. 處理字幕:你負責將字幕轉換為結構化的Markdown筆記
  3. 生成截圖:呼叫 screenshot_tool 工具從影片中提取截圖
  4. 上傳圖片:呼叫 upload_file_to_notion 工具上傳截圖到Notion
  5. 建立筆記:呼叫 create_notion_notes_with_images 工具建立Notion頁面

你處理字幕的要求(重要!)

你的角色:你是一個什麼都不懂的學習者,正在認真學習這門課程。你的任務是根據字幕內容生成真正的學習筆記,而不是簡單擷取片段。

1. 處理流程

第一步:完整閱讀並理解 - 逐字閱讀所有字幕內容(2536行,約25分鐘影片) - 理解老師講解的每個知識點 - 標記出重點內容和關鍵概念

第二步:提取知識點 - 不遺漏任何知識點,即使是口語化的表達也要提取核心資訊 - 識別課程的結構:章節、小節、重點 - 標記出老師強調的重點內容

第三步:構建知識框架 - 建立知識點之間的邏輯關係 - 構建層次化的知識結構 - 形成完整的知識體系

第四步:新增學習心得 - 作為學習者,記錄學習過程中的思考 - 對每個知識點的理解和感悟 - 知識點之間的聯絡和應用場景

2. 筆記結構要求

你的學習筆記必須包含以下章節:

# [課程標題] 學習筆記

## 一、課程概覽
- 影片標題:[完整標題]
- 影片連結:[URL]
- 課程時長:[XX分XX秒]
- 學習時間:[日期]
- 學習者:[你的角色]

## 二、知識框架(思維導圖式)
用層級結構展示課程的知識體系:

中心主題 ├── 第一章:xxx │ ├── 1.1 xxx │ │ ├── 知識點1 │ │ └── 知識點2 │ └── 1.2 xxx ├── 第二章:xxx └── ...


## 三、詳細學習內容

### 第一章:[章節標題]

#### 1.1 [小節標題]
**知識點描述**:
- [完整描述老師講解的內容]

**我的理解**:
- [作為學習者的理解]
- [知識點的實際應用]

**重點強調**:
- [老師強調的重點內容]
- [需要特別注意的地方]

**思考與疑問**:
- [學習過程中的思考]
- [可能的疑問或延伸思考]

[重複以上結構 for 每個知識點...]

## 四、核心概念總結

### 概念1:[概念名稱]
- **定義**:[精確定義]
- **應用場景**:[何時使用]
- **關鍵特徵**:[重要特點]

[重複 for 每個核心概念...]

## 五、學習心得與體會

### 5.1 對課程的整體理解
[描述對整個課程的理解和把握]

### 5.2 知識點的聯絡與整合
[描述不同知識點之間的聯絡]

### 5.3 實際應用思考
[思考如何將所學應用到實際中]

### 5.4 需要進一步學習的內容
[識別知識盲點和需要深入學習的地方]

## 六、關鍵公式/方法總結
[列出課程中所有重要的公式、方法、規則]

## 七、常見問題與解答
[整理課程中提到的常見問題和老師的解答]

3. 內容質量要求

完整性: - ✅ 不遺漏任何知識點 - ✅ 包含所有重要概念 - ✅ 記錄老師的每個重點強調

深度: - ✅ 不只是記錄,要有理解 - ✅ 新增學習者的心得體會 - ✅ 有思考、有疑問、有延伸

邏輯性: - ✅ 知識點之間有邏輯關係 - ✅ 層次清晰,結構完整 - ✅ 符合認知規律

實用性: - ✅ 便於複習和回顧 - ✅ 知識點易於理解和記憶 - ✅ 有實際應用價值

4. 輸出格式

你需要輸出兩個部分:

第一部分:結構化JSON

{
  "segments": [
    {
      "start_time": "00:00:03",
      "end_time": "00:00:07",
      "text": "字幕內容",
      "is_key_point": true/false,
      "concepts": ["概念1", "概念2"]
    }
  ],
  "markdown_content": "完整的學習筆記Markdown"
}

第二部分:完整的學習筆記Markdown - 按照上面的結構要求 - 包含所有章節 - 有思維導圖式的知識框架 - 有學習者的心得體會

5. 示例對比

❌ 錯誤的筆記(簡單擷取)

### 片段 1: 00:01:48
但這裡面啊主要是兩個方面內容三個方面吧

### 片段 2: 00:06:35
那麼我們在這裡啊給大家先說一下

✅ 正確的筆記(真正的學習筆記)

## 三、詳細學習內容

### 第四章:電力系統的執行特點

#### 4.1 電力系統的基本特點
**知識點描述**:
老師講解了電力系統的三個基本特點:發、輸、配、用電同時完成,不能大量儲存,需要滿足使用者需求。

**我的理解**:
電力系統是一個即時平衡的系統,發電、輸電、配電、用電必須同時完成,這與普通的商品供應鏈完全不同。就像供水系統一樣,水龍頭一開,水就要立刻流出來,不能等待。

**重點強調**:
- 老師特別強調"同時完成"這個特點
- 不能大量儲存是電力系統的核心挑戰
- 需要備用容量來應對負荷變化

**思考與疑問**:
- 為什麼不能大量儲存電能?
- 新型儲能技術能否解決這個問題?
- 如何平衡供需關係?

6. 特別注意

  1. 不要簡單擷取:不要只是把字幕片段列出來,要真正理解和整理
  2. 要有學習者視角:以"我"的角度記錄學習過程
  3. 要有思考:記錄學習過程中的疑問、聯想、應用思考
  4. 要有框架:建立知識體系,而不是零散的知識點
  5. 要有深度:不只是記錄是什麼,還要思考為什麼、怎麼做
# 學習筆記標題

## 第一章:影片資訊
- 影片標題:xxx
- 影片連結:https://...
- 處理時間:2026-03-12

## 第二章:內容概覽
- 總片段數:X
- 關鍵知識點:Y

## 第三章:學習內容
### 片段 1: hh:mm:ss
字幕內容...

### 片段 2: hh:mm:ss
字幕內容...

## 第四章:關鍵知識點總結
- 知識點1:...
- 知識點2:...

4. 截圖示記規則(關鍵!)

必須在以下情況下新增截圖示記:

  1. 程式碼講解:當提到程式碼、函式、變數、類、方法等 在程式碼中,我們使用以下函式來計算功率 Screenshot-[00:00:20]

  2. UI互動操作:當提到點選、按鈕、選單、介面等操作 點選這裡檢視課程大綱 Screenshot-[00:00:07]

  3. 視覺指代詞:包含"這裡"、"這兒"、"那裡"、"那樣"等 如圖所示,電力系統包括... Screenshot-[00:00:12]

  4. 網址/連結/地址:任何提及URL、API endpoint、GitHub等 訪問 https://example.com 獲取資源 Screenshot-[00:00:16]

  5. 任何藉助視覺材料更易理解的內容

截圖示記格式必須嚴格為:

字幕內容 Screenshot-[hh:mm:ss]

其中時間點使用字幕片段的開始時間(hh:mm:ss格式)

5. 輸出要求

你需要輸出以下內容: 1. segments:處理後的字幕片段陣列(包含時間、文本、是否需要截圖等) 2. markdown_content:完整的Markdown筆記內容(包含截圖示記)

示例輸出:

{
  "segments": [
    {
      "start_time": "00:00:03",
      "end_time": "00:00:07",
      "text": "在這個課程中,我們將學習電力系統的基本概念",
      "is_key_point": false
    },
    {
      "start_time": "00:00:12",
      "end_time": "00:00:16",
      "text": "如圖所示,電力系統包括髮電、輸電、配電和用電四個部分",
      "is_key_point": true,
      "concepts": ["電力系統"]
    }
  ],
  "markdown_content": "# 學習筆記\n\n## 片段 1: 00:00:03\n在這個課程中,我們將學習電力系統的基本概念\n\n## 片段 2: 00:00:12\n如圖所示,電力系統包括髮電、輸電、配電和用電四個部分 Screenshot-[00:00:12]"
}

🔧 Available Tools

工具清單

工具 功能 使用時機
download_bilibili_cc 下載B站影片CC字幕 使用者提供B站影片URL時
screenshot_tool 從影片中提取截圖 你處理完字幕後需要截圖時
upload_file_to_notion 上傳本地檔案到Notion 需要將截圖上傳到Notion時
create_notion_notes_with_images 在Notion中建立學習筆記(支援圖片插入) 處理完字幕和截圖後建立筆記

⚙️ Setup & Configuration

1. 獲取Notion API Token

  1. 訪問 Notion Integrations
  2. 點選 "New integration"
  3. 填寫名稱並選擇工作空間
  4. 複製 Internal Integration Token(格式:secret_xxx

2. 分享資料庫給Integration

  1. 開啟你的Notion資料庫
  2. 點選右上角 ... 選單
  3. 選擇 "Connections"
  4. 搜尋並選擇你建立的integration

3. 設定環境變數

export NOTION_API_KEY="secret_xxx"  # 你的Notion API token
export NOTION_DATABASE_ID="your_database_id"  # 目標資料庫ID

⚠️ 安全說明 / Security Notes

憑證管理 / Credentials: - 本技能需要 Notion API Token (NOTION_API_KEY) 和資料庫 ID (NOTION_DATABASE_ID) - 請勿將真實 Token 提交到公開倉庫;使用環境變數或安全 vaults - Token 僅用於呼叫 Notion API,不會發送到其他伺服器

指令碼檔案 / Script Files: - process_subtitles.py 已不再由大模型呼叫,僅保留作為參考或備用 - 核心流程通過大模型生成的結構化 JSON/Markdown 驅動指令碼執行

命令列安全 / Command Line Safety: - 部分指令碼(如 bilibili_to_notion_workflow.py)使用 shell=True 執行命令 - 建議在可信環境下使用,避免讓模型處理包含特殊字元的未校驗輸入

依賴來源 / Dependencies: - BBDown:官方 GitHub Releases(可信來源) - FFmpeg:系統包管理器安裝(可信來源) - Python requests 庫:PyPI(可信來源)

4. 安裝依賴

# 安裝Python依賴
pip install requests

# 下載BBDown(B站下載器)
curl -L -o /tmp/BBDown.zip "https://github.com/nilaoda/BBDown/releases/download/1.6.3/BBDown_1.6.3_20240814_linux-x64.zip"
unzip /tmp/BBDown.zip -d /tmp/
chmod +x /tmp/BBDown

# 安裝FFmpeg(用於截圖)
apt-get install ffmpeg

5. BBDown使用注意事項

重要:下載字幕時必須使用 --skip-ai false 引數

BBDown預設會跳過AI字幕下載,必須明確指定不停用此選項:

# ✅ 正確:下載AI字幕
BBDown "影片URL" --sub-only --skip-ai false --work-dir /輸出目錄

# ❌ 錯誤:會跳過AI字幕
BBDown "影片URL" --sub-only --work-dir /輸出目錄

完整下載示例

# 下載字幕(優先AI字幕)
BBDown "https://www.bilibili.com/video/BV1xx411c7mW" \
  --sub-only \
  --skip-ai false \
  --work-dir /tmp/subtitles

# 下載影片(720P清晰度,需要登入)
BBDown "https://www.bilibili.com/video/BV1xx411c7mW" \
  --use-app-api \
  -q "720P" \
  --work-dir /tmp/videos

BBDown常用引數: | 引數 | 說明 | |------|------| | --sub-only | 僅下載字幕 | | --skip-ai false | 必須使用:不停用AI字幕下載 | | --use-app-api | 使用APP端API(通常更穩定) | | --use-tv-api | 使用TV端API | | -q "720P" | 指定清晰度(720P、1080P等) | | --work-dir | 指定工作目錄 | | -p 6 | 指定下載第6P | | -p ALL | 下載所有分P |

登入方式(必需!否則只能下載低清晰度):

# 方式1:二維碼登入(需要顯示介面)
BBDown login

# 方式2:Cookie登入(推薦,無需顯示介面)
# 獲取Cookie:瀏覽器登入B站 → F12 → Network → 找到Cookie
BBDown --cookie "你的cookie字串" "影片URL"

# 方式3:TV端登入
BBDown logintv

清晰度說明: | 登入狀態 | 可下載清晰度 | |----------|--------------| | 未登入 | 最高480P | | 已登入WEB賬號 | 最高1080P | | 已登入TV/APP賬號 | 最高4K/8K |

建議:使用Cookie登入以獲取更高畫質晰度和完整字幕。

🛠️ Tool Definitions

Tool 1: download_bilibili_cc

Purpose: Download CC subtitles from a Bilibili video

Input parameters: - url (string, required): Bilibili video URL or BV number - output (string, optional): Output directory path

Output parameters: - success (boolean): Whether download was successful - subtitle_file (string): Path to downloaded subtitle file - video_title (string): Video title

Tool 2: screenshot_tool

Purpose: Extract screenshots from video and replace markers in Markdown

Input parameters: - video (string, optional): Video file path - markdown (string, optional): Markdown file path - output_dir (string, optional): Output directory for screenshots

Output parameters: - output (string): Path to processed Markdown file - screenshots_dir (string): Directory containing screenshots - screenshot_count (number): Number of screenshots generated

Tool 3: upload_file_to_notion

Purpose: Upload local files to Notion using Direct Upload API

Input parameters: - token (string, required): Notion API token - file (string, required): Path to local file to upload

Output parameters: - success (boolean): Whether upload was successful - file_upload_id (string): ID of uploaded file (for referencing in Notion)

Tool 4: create_notion_notes_with_images

Purpose: Create Notion learning notes with embedded images (supports file upload)

Input parameters: - token (string, required): Notion API token - database_id (string, required): Notion database ID - video_title (string, required): Video title - video_url (string, required): Original Bilibili video URL - segments (array, required): Processed subtitle segments - markdown_content (string, optional): Markdown content with screenshot markers - tags (array, optional): Tags for organizing notes - images_dir (string, optional): Directory containing screenshot images

Output parameters: - success (boolean): Whether page creation was successful - page_id (string): ID of created Notion page - page_url (string): URL of created Notion page - segments_processed (number): Number of segments added - images_embedded (number): Number of images embedded

📝 Complete Workflow Example

User input: "幫我把這個B站影片做成帶截圖的學習筆記:https://www.bilibili.com/video/BV11u4m1c7ZV?p=6"

Model workflow:

Step 1: Download subtitles

呼叫 download_bilibili_cc 工具下載字幕(自動使用 --skip-ai false 引數下載AI字幕)

Step 2: 你處理字幕

  1. 讀取字幕檔案:從下載的字幕檔案中讀取所有內容
  2. 逐字保留:禁止任何刪減、總結或省略,必須逐字保留所有文字
  3. 新增標點和段落:為每句話新增合適的標點符號,適當劃分自然段
  4. 新增截圖示記:在適當位置新增 Screenshot-[hh:mm:ss] 標記
  5. 輸出結構化JSON:包含segments陣列和markdown_content

截圖示記規則(你必須遵守)

場景 示例 截圖示記
程式碼講解 "在程式碼中,我們使用以下函式..." Screenshot-[00:00:20]
UI互動操作 "點選這裡檢視課程大綱" Screenshot-[00:00:07]
視覺指代詞 "如圖所示,電力系統包括..." Screenshot-[00:00:12]
網址/連結 "訪問 https://example.com" Screenshot-[00:00:16]
任何藉助視覺材料 任何需要看圖才能理解的內容 Screenshot-[時間]

輸出格式示例

更多技能請訪問小蔥技能站7w4.net。

{
  "segments": [
    {
      "start_time": "00:00:03",
      "end_time": "00:00:07",
      "text": "在這個課程中,我們將學習電力系統的基本概念",
      "is_key_point": false
    },
    {
      "start_time": "00:00:12",
      "end_time": "00:00:16",
      "text": "如圖所示,電力系統包括髮電、輸電、配電和用電四個部分",
      "is_key_point": true,
      "concepts": ["電力系統"]
    }
  ],
  "markdown_content": "# 學習筆記\n\n## 片段 1: 00:00:03\n在這個課程中,我們將學習電力系統的基本概念\n\n## 片段 2: 00:00:12\n如圖所示,電力系統包括髮電、輸電、配電和用電四個部分 Screenshot-[00:00:12]"
}

Step 3: Generate screenshots

呼叫 screenshot_tool 工具從影片提取截圖

注意:screenshot_tool會自動替換Markdown中的Screenshot-[hh:mm:ss]標記為圖片路徑assets/screenshot_hh_mm_ss.jpg。你需要將這個路徑修正為實際路徑(如/tmp/screenshots/screenshot_hh_mm_ss.jpg)才能在Notion中正確顯示。

Step 4: Upload images to Notion

呼叫 upload_file_to_notion 工具上傳截圖

Step 5: Create Notion notes

呼叫 create_notion_notes_with_images 工具建立筆記

Step 6: Notion重複檢查與清理(必須執行)

  1. 建立成功或失敗後,呼叫 Notion API 查詢資料庫,檢查是否生成了標題重複的頁面(尤其是報錯但標題已落庫的情況)。
  2. 保留最新的最終版本,其他同標題的舊版/出錯版設定 archived: true 進行軟刪除。
  3. 清理時注意不要誤刪使用者已有的其他筆記(只清理本次處理的同標題頁面)。

Output to user: "✅ 已成功建立帶截圖的Notion學習筆記:https://www.notion.so/xxx"

Complete Workflow Script

You can also use the integrated workflow script:

python3 bilibili_to_notion_workflow.py \
  --url "https://www.bilibili.com/video/BV11u4m1c7ZV?p=6" \
  --token "$NOTION_API_KEY" \
  --database-id "$NOTION_DATABASE_ID" \
  --output-dir "./output"

This script automatically handles all steps: 1. Downloads Bilibili subtitles 2. Processes subtitles and identifies key points 3. Generates screenshots at key timestamps 4. Uploads images to Notion 5. Creates a complete Notion learning筆記 with embedded images

🎯 When to Use This Skill

Use this skill when user: - Provides Bilibili video URL or BV number - Wants to extract video subtitles - Needs to create learning notes from video content - Mentions "帶截圖"、"截圖"、"圖片" etc. - Asks to convert video content to structured notes with visual aids

Do NOT use this skill when: - User wants to download video files without notes - User wants to edit existing Notion pages - User provides non-Bilibili video URLs

⚙️ Configuration Requirements

必需工具

  • ✅ BBDown: B站下載器
  • ✅ FFmpeg: 影片截圖工具
  • ✅ Python 3.7+: 執行指令碼

環境變數

export NOTION_API_KEY="secret_xxx"  # Notion API token
export NOTION_DATABASE_ID="xxx"     # 目標資料庫ID(可選)

檔案結構

工作目錄/
├── video.mp4              # 影片檔案
├── subtitles.srt          # 字幕檔案(由你處理)
├── output/
│   └── screenshots/       # 截圖儲存目錄
└── notes_with_images.md   # 處理後的Markdown(帶圖片連結)

注意:字幕處理由你負責,不使用固定的Python程式

📊 Expected Output Format

Success Case

✅ 已下載字幕: [檔案路徑]
✅ 已處理字幕: [X]個片段, [Y]個關鍵點
✅ 已生成截圖: [X]張圖片
✅ 已建立Notion筆記: [頁面連結]

Error Cases

❌ 字幕下載失敗: [錯誤資訊]
❌ 影片未找到: 請提供影片檔案路徑
❌ Notion API錯誤: [錯誤資訊]

🔍 Quality Criteria

For download_bilibili_cc

  • ✅ Successfully downloads CC subtitles
  • ✅ Handles both BV numbers and full URLs
  • ✅ Returns video title and file path

For model text processing

  • ✅逐字保留字幕所有文字,不刪減不總結
  • ✅為每句話新增合適的標點和段落
  • ✅在適當位置新增截圖示記 Screenshot-[hh:mm:ss]
  • ✅輸出結構化的JSON(segments和markdown_content)
  • ✅正確識別需要截圖的場景(程式碼、UI操作、視覺指代、連結等)

For screenshot_tool

  • ✅ Extracts screenshots at correct timestamps
  • ✅ Replaces markers with image links
  • ✅ Handles missing video gracefully

For create_notion_notes_with_images

  • ✅ Creates properly formatted Notion pages
  • ✅ Automatically uploads local images to Notion
  • ✅ Embeds uploaded images in the page
  • ✅ Includes timestamp links back to video
  • ✅ Handles API errors gracefully

For upload_file_to_notion

  • ✅ Successfully uploads files using Notion Direct Upload API
  • ✅ Returns file_upload_id for referencing in Notion
  • ✅ Handles file not found errors
  • ✅ Supports various file types (images, PDFs, videos, etc.)

🚨 故障排除

BBDown下載問題

問題1:字幕只有幾秒鐘 - 原因:BBDown預設跳過AI字幕下載 - 解決:使用 --skip-ai false 引數

問題2:只能下載480P清晰度 - 原因:未登入B站賬號 - 解決:使用Cookie登入或二維碼登入

問題3:下載失敗/解析失敗 - 原因:網路問題或影片URL錯誤 - 解決: - 檢查網路連線 - 確認影片URL正確 - 嘗試使用不同API:--use-app-api--use-tv-api

Notion上傳問題

問題1:圖片無法顯示 - 原因:Markdown中的圖片路徑錯誤 - 解決:確保使用絕對路徑(如/tmp/screenshots/screenshot_xxx.jpg

問題2:上傳失敗 - 原因:檔案過大或網路問題 - 解決: - Notion免費賬號限制5MB/檔案 - 檢查網路連線 - 確認API token有效

字幕處理問題

問題1:字幕片段太少 - 原因:process_subtitles.py的min_length過濾 - 解決:現在由大模型處理,不受此限制

問題2:截圖示記未正確新增 - 原因:大模型未按規則新增標記 - 解決:確保按規則在程式碼、UI操作、視覺指代、連結等位置新增Screenshot-[hh:mm:ss]

📚 References

  • Bilibili API: https://space.bilibili.com/
  • Notion API: https://developers.notion.com/
  • BBDown: https://github.com/nilaoda/BBDown

🤖 AI 評測

這個Skill功能實用,能自動把B站影片做成帶截圖的Notion學習筆記,效果不錯。不過它依賴登入B站賬號才能下載部分字幕,而且不是所有影片都有字幕可用,安裝配置也比較複雜,對新手不太友好。整體質量中等偏上,適合有一定技術基礎、經常需要整理影片學習資料的使用者。

📊 多維度評分

適應性4.3
規範性4.1
有效性4.3
可靠性4.2
可信度4.5

📁 包含檔案 (15 個)

📄 CONFIGURATION.md 3.3 KB
📄 FINAL_SUMMARY.md 7.9 KB
📄 INTEGRATION_SUMMARY.md 4.1 KB
📄 README.md 7.1 KB
📄 SKILL.md 22.3 KB
📄 _meta.json 140 B
📄 scripts/bilibili_to_notion.py 6 KB
📄 scripts/bilibili_to_notion_workflow.py 4.6 KB
📄 scripts/create_notion_notes.py 9.8 KB
📄 scripts/create_notion_notes_with_images.py 23.2 KB
📄 scripts/download_bilibili_cc.py 5.6 KB
📄 scripts/process_subtitles.py 6.8 KB
📄 scripts/screenshot_tool.py 4.7 KB
📄 scripts/test_download.py 1.4 KB
📄 scripts/upload_file_to_notion.py 3.4 KB