stream-clipper
npx skills add https://github.com/et06731/stream-clipper-skill --skill stream-clipper
Agent 安装分布
Skill 文档
Stream Clipper – ç´æå½å¶ä¸åçæºè½åªè¾å·¥å ·
æ ¸å¿åè½:
- ç´æå½å¶ï¼å®æ¶å½å¶ + 30åéèªå¨å段 + å¼¹å¹å½å¶
- 彿åçï¼å¼¹å¹å¯åº¦åæ + è¯ä¹çè§£ + 主æé£æ ¼æ¨¡æ¿ = é«è´¨éç´æåç
工使¨¡å¼
模å¼ä¸ï¼ç´æå®æ¶å½å¶ â æ°åè½
éåå½å¶æ£å¨è¿è¡æå³å°å¼å§çç´æï¼æ¯æèªå¨å段åå¼¹å¹å½å¶ã
æ ¸å¿ç¹æ§:
- â 30åéèªå¨å段 – 鲿¢ç¡¬ç溢åºï¼æ¹ä¾¿ç®¡ç
- â 宿¶å¼¹å¹å½å¶ – åæ¶ä¿åå¼¹å¹å 容
- â ä¼é 忢 – Ctrl+C 忢å½ååæ®µï¼ä¸ä¸¢å¤±æ°æ®
- â èªå¨ç²¾å½©ç段åç – å½å¶å®æåèªå¨çæåç
使ç¨åºæ¯:
- å½å¶ VTuber ç´æ
- å½å¶æ¸¸æèµäº
- å½å¶æ¼å±ä¼/æ´»å¨ç´æ
- å½å¶ä»»ä½Bç«ç´æé´
å¿«éå¼å§:
# æ¹å¼1: 宿´å·¥ä½æµï¼å½å¶ + èªå¨åçï¼
python scripts/record_workflow.py "https://live.bilibili.com/55"
# æ¹å¼2: ä»
å½å¶
python scripts/smart_record.py "https://live.bilibili.com/55" -t 30
# æ¹å¼3: å½å¶å®æåæå¨åç
python scripts/auto_clipper.py --list ./recordings/recorded_list_xxx.json
æä»¶è¾åºç»æ:
recordings/
âââ 主æ_æ é¢_æ¶é´_part001.mp4 # 第1段è§é¢
âââ 主æ_æ é¢_æ¶é´_part001_danmaku.xml # 第1段弹å¹
âââ 主æ_æ é¢_æ¶é´_part002.mp4 # 第2段è§é¢
âââ 主æ_æ é¢_æ¶é´_part002_danmaku.xml # 第2段弹å¹
âââ recorded_list_xxx.json # å½å¶å表
âââ clips_output/ # ç²¾å½©çæ®µè¾åº
âââ segment_001/
â âââ clip_001/
â âââ clip_002/
âââ segment_002/
模å¼äºï¼å½æåæ¾åç
éåä¸è½½å·²ç»æçç´æåæ¾ï¼è¿è¡åæååçã
æ ¸å¿ç¹æ§:
- â 宿´åæ¾ä¸è½½ – ä¸è½½æ´ä¸ªç´æåæ¾
- â å¼¹å¹åæ – åºäºå¼¹å¹å¯åº¦è¯å«ç²¾å½©æ¶å»
- â è¯ä¹åæ – çè§£åå¹å å®¹ç»æ
- â æºè½åç – èªå¨çææä¼åçæ¹æ¡
使ç¨åºæ¯:
- åªè¾å·²ç»æçç´æ
- å¶ä½ VTuber ç²¾ååé
- æå游æé«å æ¶å»
- å¶ä½æå¦/ç¥è¯åç
工使µç¨
模å¼ä¸ï¼ç´æå½å¶æµç¨
é¶æ®µ 1: å¯å¨å½å¶
ç®æ : å¼å§å½å¶ç´æå¹¶èªå¨å段
-
è·åç´æé´ URL
https://live.bilibili.com/55 -
æ§è¡å½å¶èæ¬
python3 scripts/smart_record.py <ç´æé´URL> -o ./recordings -t 30 -
å½å¶è¿ç¨
- æ¯30åéèªå¨å段
- 宿¶æ¾ç¤ºå½å¶è¿åº¦
- åæ¶ä¿åå¼¹å¹é ç½®
è¾åº:
å½å¶ä¸... 15.6% (4/30åé)
æä»¶: ./recordings/主æ_æ é¢_20260206_143720_part001.mp4
é¶æ®µ 2: å½å¶å®æ
ç®æ : æ´çå½å¶æä»¶å¹¶åå¤åç
-
çæå½å¶å表
{ "room_url": "https://live.bilibili.com/55", "record_time": "2026-02-06T14:37:20", "segment_minutes": 30, "files": [ "./recordings/part001.mp4", "./recordings/part002.mp4", "./recordings/part003.mp4" ] } -
è¯¢é®æ¯å¦åç
å½å¶å®æï¼å ± 3 ä¸ªåæ®µ æ¯å¦ç»§ç»èªå¨åçç²¾å½©çæ®µï¼ (y/n): y
é¶æ®µ 3: èªå¨ç²¾å½©ç段åç
ç®æ : èªå¨åæå¹¶çæç²¾å½©ç段
-
åææ¯ä¸ªå段
python3 scripts/auto_clipper.py --list recorded_list_xxx.json -
çææ¨èçæ®µï¼æ¯æ®µ3个ï¼
- é«è½æ¶å»ï¼å¼¹å¹å¯åº¦æé«ççæ®µ
- æç¬ç段ï¼ç¿»è½¦/æç¬æ¶å»
- 墿/精彩æä½ï¼æ¸¸æé«å
-
èªå¨åªè¾
- è°ç¨ clip_and_burn.py
- ç§å½å¼¹å¹å°è§é¢
- çæ info.json
è¾åº:
åæ®µ 1: æ¾å° 3 ä¸ªç²¾å½©çæ®µ
1. é«è½æ¶å»ï¼ç²¾å½©æä½ (03:00-05:00)
2. æç¬ç段ï¼ä¸»æç¿»è½¦ (08:00-10:00)
3. 墿çåï¼æ¿çå¯¹å³ (15:00-17:00)
模å¼äºï¼å½æåçæµç¨
é¶æ®µ 1: ç¯å¢æ£æµä¸åå§å
ç®æ : ç¡®ä¿ææä¾èµå·²å®è£ å¹¶å è½½ä¸»ææ¨¡æ¿
-
æ£æµå¿ éå·¥å ·
yt-dlp --version # è§é¢ä¸è½½ ffmpeg -version # è§é¢å¤ç python3 -c "import yt_dlp, pysrt, yaml, requests" # Pythonä¾èµ -
æ£æ¥ biliupï¼ç¨äºä¸ä¼ ï¼
pip show biliup # æ biliup --version -
å è½½æåå»ºä¸»ææ¨¡æ¿
- æ£æ¥
config/streamer_templates.yaml - 妿䏻æä¸å¨æ¨¡æ¿ä¸ï¼è¯¢é®ç¨æ·åå»ºæ°æ¨¡æ¿
- æ£æ¥
模æ¿äº¤äºç¤ºä¾:
æ£æµå°æ°ç主æ: Neurosama
æ¯å¦åå»ºä¸»ææ¨¡æ¿? (y/n): y
主æé£æ ¼èæ¯ä»ç»: AIèæä¸»æï¼è±è¯æµï¼æ
é¿ç¼ç¨å游æï¼æå¾å¤æ¢
è忢/å£å¤´ç¦
: Vedalä¿®æ!, ææ¯AI䏿¯äººç±», è¶³çæ¢, swam
æ¨èåçæ¶é¿: 1-3åé
ç´æé´é¾æ¥: https://live.bilibili.com/...
个人空é´é¾æ¥: https://space.bilibili.com/...
é¶æ®µ 2: ä¸è½½ä¸å广å â å ³é®æ¥éª¤
ç®æ : ä¸è½½è§é¢ãå¼¹å¹ï¼å¹¶å¿ é¡»æååå¹
â ï¸ éè¦åæ: åçåå¿ é¡»å®æå广åï¼æ²¡æå广 æ³çæåºäºå å®¹çæ é¢ã
-
è·åç´æ/彿 URL
- Bç«:
https://www.bilibili.com/video/BVxxxxxæhttps://live.bilibili.com/xxxxx - YouTube:
https://www.youtube.com/watch?v=xxxxxæç´æåæ¾
- Bç«:
-
æ§è¡ä¸è½½èæ¬
python3 scripts/download_stream.py <URL> --with-danmaku --with-subtitle -
ä¸è½½å 容
- è§é¢æä»¶ (MP4, æé«1080p)
- 弹广件 (XML/JSON æ ¼å¼)
- å广件 (妿平尿ä¾)
-
æååå¹ï¼å¿ é¡»ï¼
# æ¹å¼1: ä½¿ç¨ Whisper æå宿´åå¹ python3 scripts/extract_subtitles.py <video.mp4> --output <video.srt> # æ¹å¼2: ä» æåå ³é®ç段ï¼å¿«éï¼ python3 scripts/extract_subtitles.py <video.mp4> --segments-only --output segments/å广ååç:
- ä½¿ç¨ OpenAI Whisper 模å
- æ¯æå¤è¯è¨è¯å«
- çæ SRT/VTT æ ¼å¼
- å¯éï¼ä» æåé«å¯åº¦æ¶æ®µç段ï¼èçç®åï¼
è¾åºï¼ä¸ä¸ªå¿ 夿件ï¼:
./downloads/
âââ <video_id>.mp4 # è§é¢ [å¿
é]
âââ <video_id>.danmaku.xml # å¼¹å¹ [å¿
é]
âââ <video_id>.srt # åå¹ [å¿
é]
æ£æ¥æ¸ å:
- è§é¢æä»¶åå¨ä¸å¯ææ¾
- 弹广件åå¨ä¸é空
- å广件åå¨ä¸å å«å 容
妿å广å失败: æ æ³ç»§ç»åçï¼å¿ é¡»å è§£å³åå¹é®é¢ï¼
é¶æ®µ 3: å¼¹å¹å¯åº¦åæ
ç®æ : åæå¼¹å¹å¯åº¦åå¸ï¼è¯å«é«äºå¨æ¶é´ç¹
-
è§£æå¼¹å¹æä»¶
python3 scripts/analyze_danmaku.py <danmaku.xml> -
计ç®å¼¹å¹å¯åº¦
- ææ¶é´çªå£ç»è®¡ (é»è®¤ 30ç§)
- è®¡ç®æ¯ä¸ªçªå£ç弹广°éãåéç¨æ·æ°
- è¯å«å¼¹å¹å³°å¼ (å¯åº¦ > å¹³åå¼ * 1.5)
-
å¼¹å¹è¯ä¹åæï¼å¯éï¼
- æåé«é¢å ³é®è¯
- è¯å«æ ç»ªææ§ (大ç¬ãæè®¶ãæ¤æç)
- æ è®°æè¶£çå¼¹å¹å 容
è¾åºç¤ºä¾:
ð å¼¹å¹å¯åº¦åæç»æ
æ»å¼¹å¹æ°: 15,234
åéç¨æ·æ°: 3,421
å¹³åå¯åº¦: 45æ¡/åé
ð¥ é«å¯åº¦æ¶æ®µ:
1. [00:19:30 - 00:20:15] å¯åº¦: 128æ¡/åé (å
³é®è¯: "ååå", "???", "è")
2. [00:39:12 - 00:40:05] å¯åº¦: 95æ¡/åé (å
³é®è¯: "太强äº", "nb")
3. [00:44:20 - 00:45:30] å¯åº¦: 102æ¡/åé (å
³é®è¯: "ååºé¢", "å£ç»")
é¶æ®µ 4: åå¹è¯ä¹åæ
ç®æ : åæåå¹å 容ï¼çè§£è¯é¢ç»æå精彩ç¹
-
è§£æå广件
python3 scripts/analyze_semantic.py <subtitle.srt> -
è¯ä¹å段
- æè¯é¢èªå¨å段
- è¯å«è¯é¢è½¬æ¢ç¹
- æåæ¯æ®µæ ¸å¿å 容
-
ç²¾å½©çæ®µè¯å«
- åææ 绪åå
- è¯å«æ¢/åè¨
- æ è®°é«è½æ¶å»
è¾åºç¤ºä¾:
ð è¯ä¹åæç»æ
åæ®µ 1: [00:00:00 - 00:05:30]
主é¢: å¼åºåèªæä»ç»
精彩度: ââ
åæ®µ 2: [00:05:30 - 00:19:45]
主é¢: ç¼ç¨æå¦ - åPythonèæ¬
精彩度: ââââ
å
³é®å¥: "Vedalä¿®æ!"
åæ®µ 3: [00:19:45 - 00:22:30]
主é¢: 游æå®åµ - æç¬æä½
精彩度: âââââ
å
³é®å¥: "è¿ä¸å¯è½åçå¨æèº«ä¸ï¼"
é¶æ®µ 5: æºè½åçå³ç + åºäºåå¹çææ é¢ â æ ¸å¿æ¥éª¤
ç®æ : ç»åå¼¹å¹å¯åº¦ååå¹å 容ï¼çææä¼åçæ¹æ¡ååºäºå®é 对è¯çæ é¢
â ï¸ å ³é®åå: æ é¢å¿ é¡»åºäºåå¹ä¸çå®é 对è¯ï¼ä¸è½æ³æ³èè°ï¼
-
综åè¯åç®æ³
python3 scripts/smart_clipper.py \ --video <video.mp4> \ --subtitle <subtitle.srt> \ --danmaku <danmaku.xml> \ --template <streamer_template.yaml> -
è¯å维度
- å¼¹å¹å¯åº¦å (25%): å¼¹å¹è¶å¤åè¶é«
- åå¹å 容å (40%): æ¯å¦å å«éå¥ãæ¢ãæç¬å¯¹è¯
- 模æ¿å¹é å (20%): æ¯å¦å å«ä¸»æç»å ¸æ¢
- æ¶é¿åéå (15%): æ¯å¦ç¬¦åæ¨¡æ¿æ¨èæ¶é¿
-
åºäºåå¹çææ é¢çç¥ â
æ¥éª¤:
# 1. æååçæ¶æ®µçåå¹å 容 segment_subtitles = extract_segment_subtitles(subtitle.srt, start_time, end_time) # 2. åæå ³é®è¯å sentiment keywords = analyze_keywords(segment_subtitles) # 3. éæ©æ é¢çç¥ if contains_meme_or_quote: # çç¥A: ç´æ¥å¼ç¨ä¸»æçè¯ï¼å¶é çå®æï¼ title = f"ãEvilã\"{主æéå¥}\"" elif funny_danmaku_interaction: # çç¥B: å±ç¤ºå¼¹å¹äºå¨ï¼å¢å åä¸æï¼ title = f"ãEvilãå¼¹å¹ï¼\"{å¼¹å¹}\" Evilï¼\"{ååº}\"" elif controversial_or_suspense: # çç¥C: å¶é æ¬å¿µï¼å¸å¼ç¹å»ï¼ title = f"ãEvilãEvilè°{ææè¯é¢}ä½éª" # 廿ä¸ä¸æï¼å¶é 误解 else: # çç¥D: çªåºæ 绪æå转 title = f"ãEvilã{æ ç»ªå ³é®è¯}ååºé¢"æ é¢ç¤ºä¾å¯¹æ¯:
â å·®æ é¢ï¼æ³æ³èè°ï¼: ãEvilãæ¸¸æå®åµç²¾å½©ç段 ãEvilãæ¯æ¥å屿¶é´ ãEvilãèèååºé¢ â 好æ é¢ï¼åºäºåå¹å 容ï¼: ãEvilã"ä½ ä»¬æè¢«æ ææ¯é è¿åï¼"Evilè°è¢«éæä½éª ãEvilãå¼¹å¹ï¼"è¿æåï¼" Evilï¼"æï¼è¿æM" ãEvilãèèï¼æå è´¹äºï¼è¢«å°å½¢æåçevil laugh ãEvilã"RNGä¸å¸è®¨åæ"æ¾ä¸å°Flintå´©æº -
çæåçæ¹æ¡
- æ¨è N 个åçç¹
- æ¯ä¸ªåçå
å«:
- æ¶é´èå´
- åºäºåå¹çæ é¢ï¼å¿ é¡»å¼ç¨å®é 对è¯ï¼
- æ ç¾
- 精彩度è¯å
- å广è¦ï¼ç¨äºç®ä»ï¼
è¾åºç¤ºä¾:
âï¸ æºè½åçæ¹æ¡
åç 1/5 (è¯å: 92/100)
æ¶é´: 00:19:23 - 00:22:45 (3å22ç§)
æ é¢å»ºè®®: [Neuro]Vedalä¿®æï¼AIå代ç 翻车ååºé¢
å
³é®è¯: Vedalä¿®æ, ç¼ç¨ç¿»è½¦, Python
å¼¹å¹å¯åº¦: é« (128æ¡/åé)
åç 2/5 (è¯å: 88/100)
æ¶é´: 00:39:05 - 00:41:20 (2å15ç§)
æ é¢å»ºè®®: [Neuro]è¿ä¸å¯è½ï¼æ¸¸æç¥æä½éæè§ä¼
å
³é®è¯: 游æ, ç¥æä½, ä¸å¯è½
å¼¹å¹å¯åº¦: é« (95æ¡/åé)
é¶æ®µ 6: æ§è¡åç
ç®æ : åªè¾è§é¢å¹¶ç§å½å¼¹å¹/åå¹
-
询é®ç¨æ·ç¡®è®¤
- å±ç¤ºåçæ¹æ¡
- è®©ç¨æ·éæ©è¦çæçåç
-
æ§è¡åªè¾
python3 scripts/clip_and_burn.py \ --video <video.mp4> \ --danmaku <danmaku.xml> \ --subtitle <subtitle.srt> \ --clips <clips.json> \ --output ./clips/ -
å¤çæµç¨ï¼æ¯ä¸ªåçï¼
- åªè¾è§é¢ç段
- æåå¯¹åºæ¶æ®µçå¼¹å¹
- æåå¯¹åºæ¶æ®µçåå¹
- ç§å½å¼¹å¹å°è§é¢ï¼å¯éï¼
- ç§å½åå¹å°è§é¢ï¼å¯éï¼
è¾åº:
./clips/
âââ clip_001/
â âââ clip_001.mp4 # 纯è§é¢
â âââ clip_001_with_danmaku.mp4 # å«å¼¹å¹
â âââ clip_001_info.json # åçä¿¡æ¯
âââ clip_002/
â âââ ...
é¶æ®µ 7: ä¸ä¼ å°è§é¢å¹³å°
ç®æ : ä¸é®ä¸ä¼ å°Bilibiliçå¹³å°
-
åå¤ä¸ä¼ ä¿¡æ¯
- æ ¹æ®ä¸»ææ¨¡æ¿çææ é¢
- çæç®ä»ï¼å å«ä¸»æç©ºé´é¾æ¥åç´æé´é¾æ¥ï¼
- éæ©æ ç¾åååº
-
æ§è¡ä¸ä¼
python3 scripts/upload_clip.py \ --clip-dir ./clips/clip_001/ \ --template neurosama \ --platform bilibili -
æ é¢çæçç¥
- åºäºåçå 容è¯ä¹åæ
- ç»å主æé£æ ¼åæ¢
- å¸å¼ç¼çä½ä¸åæ é¢å
-
ç®ä»æ¨¡æ¿:
ã{主æå}ã{åç主é¢} æ´å¤ç²¾å½©åç请æ¥çåé~ ðº 主æç´æé´: {ç´æé´é¾æ¥} ð¤ 主æç©ºé´: {个人空é´é¾æ¥} #èæå¶å #{主æå} #ç´æåç
ä¸ä¼ 示ä¾:
ð å¼å§ä¸ä¼
è§é¢: clip_001_with_danmaku.mp4
æ é¢: [Neuro]Vedalä¿®æï¼AIå代ç 翻车ååºé¢
ç®ä»: ãNeurosamaãç¼ç¨ç¿»è½¦ååºé¢
ðº 主æç´æé´: https://live.bilibili.com/...
ð¤ 主æç©ºé´: https://space.bilibili.com/...
æ ç¾: èæå¶å, neurosama, AI, ç¼ç¨, 翻车
ååº: çæ´»/æç¬
ä¸ä¼ è¿åº¦: 100%
â
ä¸ä¼ æå!
BV: BV1xx411c7mD
龿¥: https://www.bilibili.com/video/BV1xx411c7mD
ä¸»ææ¨¡æ¿ç³»ç»
æ¨¡æ¿æä»¶: config/streamer_templates.yaml
streamers:
neurosama:
name: "Neurosama"
description: "AIèæä¸»æï¼è±è¯æµï¼ç¨åºå女çï¼æ
é¿æç¬åææ¯å
容"
# ç´æé´å主页
live_room: "https://live.bilibili.com/..."
space: "https://space.bilibili.com/..."
# 飿 ¼åæ¢
style:
tone: "å¹½é»é£è¶£ï¼ææ¯å®
飿 ¼"
content_type: "ç¼ç¨æå¦ã游æå®åµãAI对è¯"
language: "è±è¯ä¸ºä¸»"
memes:
- "Vedalä¿®æ!"
- "ææ¯AI䏿¯äººç±»"
- "è¶³çæ¢"
- "swam"
- " clutch or kick"
# åçé
ç½®
clip_config:
preferred_duration: "1-3åé"
min_duration: 30
max_duration: 300
focus_on: ["ç¼ç¨ç¿»è½¦", "游æé«å
", "ç»å
¸æ¢", "æç¬å¯¹è¯"]
# ä¸ä¼ 模æ¿
upload_template:
title_template: "[Neuro]{topic} | {highlight}"
tags: ["èæå¶å", "neurosama", "AI", "Vå", "åç"]
tid: 138 # çæ´»/æç¬
copyright: "original"
generic:
name: "éç¨æ¨¡æ¿"
description: "é»è®¤æ¨¡æ¿ï¼éç¨äºæªç¥ä¸»æ"
# ... é»è®¤é
ç½®
模æ¿äº¤äº
å¦ææ£æµå°æ°ä¸»æï¼èªå¨è¯¢é®ï¼
ð æ£æµå°æ°ä¸»æ: Evil_Neuro
æ¯å¦åå»ºä¸»ææ¨¡æ¿? (y/n): y
主æåç§°: Evil Neuro
æè¿°: Neuroçéªæ¶åèèï¼è
¹é»æ¯èï¼åæ¬¢è°æVedal
ç´æé´é¾æ¥: https://live.bilibili.com/xxxxx
个人空é´é¾æ¥: https://space.bilibili.com/xxxxx
è忢/å£å¤´ç¦
(ç¨éå·åé):
> Evil laugh, æäºä½ 们ææäºº, ææ¯Neuroèªæ
æ¨èåçæ¶é¿ (åé): 1-3
主è¦ç´æå
容 (ç¨éå·åé):
> 游æ, è天, 屿
模æ¿å·²ä¿å! 䏿¬¡å¯ç´æ¥ä½¿ç¨ã
å½ä»¤è¡æ¥å£
宿´å·¥ä½æµç¨
# 1. ä¸è½½å¹¶åæ
stream-clipper download <URL> --analyze
# 2. çæåçæ¹æ¡
stream-clipper plan --danmaku --semantic --template <streamer>
# 3. æ§è¡åç
stream-clipper clip --select-all --burn-danmaku
# 4. ä¸ä¼
stream-clipper upload --platform bilibili --template <streamer>
忥å½ä»¤
# ä»
ä¸è½½
python3 scripts/download_stream.py <URL>
# ä»
åæå¼¹å¹
python3 scripts/analyze_danmaku.py <danmaku.xml>
# ä»
åæåå¹
python3 scripts/analyze_semantic.py <subtitle.srt>
# ä»
çæåçæ¹æ¡
python3 scripts/smart_clipper.py --danmaku-result <...> --semantic-result <...>
# ä»
åªè¾
python3 scripts/clip_and_burn.py --video <...> --clips <...>
# ä»
ä¸ä¼
python3 scripts/upload_clip.py --video <...> --template <...>
å®è£
# 1. å
éä»åº
git clone https://github.com/yourusername/stream-clipper-skill.git
# 2. å®è£
ä¾èµ
pip install -r requirements.txt
# 3. å®è£
biliupï¼ç¨äºä¸ä¼ ï¼
pip install biliup
# 4. é
ç½® FFmpegï¼éè¦ libass æ¯æï¼
# macOS:
brew install ffmpeg-full
# 5. å¤å¶é
ç½®æä»¶
cp config/streamer_templates.yaml.example config/streamer_templates.yaml
# 6. é
ç½® cookiesï¼ç¨äºä¸ä¼ ï¼
# ç»å½Bilibiliå导åºcookieså° cookies.json
ä¾èµ
# æ ¸å¿ä¾èµ
yt-dlp>=2024.1.1
ffmpeg-python>=0.2.0
pysrt>=1.1.2
pyyaml>=6.0
requests>=2.31.0
# å¼¹å¹å¤ç
xmltodict>=0.13.0
# ä¸ä¼
biliup>=1.0.0
# æ°æ®åæ
numpy>=1.24.0
ææ¯äº®ç¹
- å维度åæ: å¼¹å¹å¯åº¦ + è¯ä¹åæ = æ´åç¡®ç精彩ç¹è¯å«
- 主æé£æ ¼æ¨¡æ¿: å®å¶ååççç¥ï¼ä¸å主æä¸å飿 ¼
- æºè½æ é¢çæ: åºäºå 容è¯ä¹èªå¨çææ é¢
- ä¸é®å®æ´æµç¨: ä»ä¸è½½å°ä¸ä¼ çå ¨èªå¨å
- 交äºå¼æ¨¡æ¿å建: å¼å¯¼ç¨æ·å¿«éå建æ°ä¸»ææ¨¡æ¿
å¼å§æ§è¡
å½ç¨æ·è§¦åè¿ä¸ª Skill æ¶ï¼
- ç«å³å¼å§é¶æ®µ 1ï¼ç¯å¢æ£æµï¼
- 询é®ç´æ/彿 URL
- æç § 7 ä¸ªé¶æ®µé¡ºåºæ§è¡
- éå°æ°ä¸»ææ¶å¼å¯¼å建模æ¿
- æåå±ç¤ºä¸ä¼ ç»æåè§é¢é¾æ¥
è®°ä½ï¼è¿ä¸ª Skill çæ ¸å¿ä»·å¼å¨äº æºè½åæ å 主æä¸ªæ§åï¼è®©æ¯ä¸ªåçé½è½ä½ç°ä¸»æçç¬ç¹é åï¼