youtube-clipper
npx skills add https://github.com/op7418/youtube-clipper-skill --skill youtube-clipper
Agent 安装分布
Skill 文档
YouTube è§é¢æºè½åªè¾å·¥å ·
Installation: If you’re installing this skill from GitHub, please refer to README.md for installation instructions. The recommended method is
npx skills add https://github.com/op7418/Youtube-clipper-skill.
工使µç¨
ä½ å°æç §ä»¥ä¸ 6 ä¸ªé¶æ®µæ§è¡ YouTube è§é¢åªè¾ä»»å¡ï¼
é¶æ®µ 1: ç¯å¢æ£æµ
ç®æ : ç¡®ä¿ææå¿ éå·¥å ·åä¾èµé½å·²å®è£
-
æ£æµ yt-dlp æ¯å¦å¯ç¨
yt-dlp --version -
æ£æµ FFmpeg çæ¬å libass æ¯æ
# ä¼å æ£æ¥ ffmpeg-fullï¼macOSï¼ /opt/homebrew/opt/ffmpeg-full/bin/ffmpeg -version # æ£æ¥æ å FFmpeg ffmpeg -version # éªè¯ libass æ¯æï¼åå¹ç§å½å¿ éï¼ ffmpeg -filters 2>&1 | grep subtitles -
æ£æµ Python ä¾èµ
python3 -c "import yt_dlp; print('â yt-dlp available')" python3 -c "import pysrt; print('â pysrt available')"
妿ç¯å¢æ£æµå¤±è´¥:
- yt-dlp æªå®è£
: æç¤º
brew install yt-dlpæpip install yt-dlp - FFmpeg æ libass: æç¤ºå®è£
ffmpeg-full
brew install ffmpeg-full # macOS - Python ä¾èµç¼ºå¤±: æç¤º
pip install pysrt python-dotenv
注æ:
- æ å Homebrew FFmpeg ä¸å å« libassï¼æ æ³ç§å½åå¹
- ffmpeg-full è·¯å¾:
/opt/homebrew/opt/ffmpeg-full/bin/ffmpeg(Apple Silicon) - å¿ é¡»å éè¿ç¯å¢æ£æµæè½ç»§ç»
é¶æ®µ 2: ä¸è½½è§é¢
ç®æ : ä¸è½½ YouTube è§é¢åè±æåå¹
-
询é®ç¨æ· YouTube URL
-
è°ç¨ download_video.py èæ¬
cd ~/.claude/skills/youtube-clipper python3 scripts/download_video.py <youtube_url> -
èæ¬ä¼ï¼
- ä¸è½½è§é¢ï¼æé« 1080pï¼mp4 æ ¼å¼ï¼
- ä¸è½½è±æåå¹ï¼VTT æ ¼å¼ï¼èªå¨åå¹ä½ä¸ºå¤éï¼
- è¾åºæä»¶è·¯å¾åè§é¢ä¿¡æ¯
-
åç¨æ·å±ç¤ºï¼
- è§é¢æ é¢
- è§é¢æ¶é¿
- æä»¶å¤§å°
- ä¸è½½è·¯å¾
è¾åº:
- è§é¢æä»¶:
<id>.mp4ï¼ä½¿ç¨è§é¢ ID å½åï¼é¿å ç¹æ®å符é®é¢ï¼ - å广件:
<id>.en.vtt
é¶æ®µ 3: åæç« èï¼æ ¸å¿å·®å¼ååè½ï¼
ç®æ : ä½¿ç¨ Claude AI åæåå¹å 容ï¼çæç²¾ç»ç« èï¼2-5 åé级å«ï¼
-
è°ç¨ analyze_subtitles.py è§£æ VTT åå¹
python3 scripts/analyze_subtitles.py <subtitle_path> -
èæ¬ä¼è¾åºç»æåå广°æ®ï¼
- 宿´å广æ¬ï¼å¸¦æ¶é´æ³ï¼
- æ»æ¶é¿
- å广¡æ°
-
ä½ éè¦æ§è¡ AI åæï¼è¿æ¯æå ³é®çæ¥éª¤ï¼ï¼
- é è¯»å®æ´åå¹å 容
- çè§£å 容è¯ä¹å主é¢è½¬æ¢ç¹
- è¯å«èªç¶çè¯é¢åæ¢ä½ç½®
- çæ 2-5 åéç²åº¦çç« èï¼é¿å åå°æ¶ç²ç²åº¦ååï¼
-
为æ¯ä¸ªç« èçæï¼
- æ é¢: ç²¾ç¼ç䏻颿¦æ¬ï¼10-20 åï¼
- æ¶é´èå´: èµ·å§åç»ææ¶é´ï¼æ ¼å¼: MM:SS æ HH:MM:SSï¼
- æ ¸å¿æè¦: 1-2 å¥è¯è¯´æè¿æ®µè®²äºä»ä¹ï¼50-100 åï¼
- å ³é®è¯: 3-5 ä¸ªæ ¸å¿æ¦å¿µè¯
-
ç« èçæååï¼
- ç²åº¦ï¼æ¯ä¸ªç« è 2-5 åéï¼é¿å 太çæå¤ªé¿ï¼
- 宿´æ§ï¼ç¡®ä¿ææè§é¢å 容é½è¢«è¦çï¼æ éæ¼
- ææä¹ï¼æ¯ä¸ªç« èæ¯ä¸ä¸ªç¸å¯¹ç¬ç«çè¯é¢
- èªç¶ååï¼å¨ä¸»é¢è½¬æ¢ç¹ååï¼ä¸è¦æºæ¢°å°ææ¶é´å
-
åç¨æ·å±ç¤ºç« èå表ï¼
ð åæå®æï¼çæ X ä¸ªç« èï¼ 1. [00:00 - 03:15] AGI 䏿¯æ¶é´ç¹ï¼æ¯ææ°æ²çº¿ æ ¸å¿: AI 模åè½åæ¯ 4-12 æç¿»åï¼å·¥ç¨å¸å·²ç¨ Claude å代ç å ³é®è¯: AGIãææ°å¢é¿ãClaude Code 2. [03:15 - 06:30] ä¸å½å¨ AI ä¸çå·®è· æ ¸å¿: è¯çç¦è¿å¡ä½ä¸å½ï¼DeepSeek benchmark ä¼åä¸ä»£è¡¨å®å å ³é®è¯: ä¸å½ãè¯çç¦è¿ãDeepSeek ... (ææç« è) â ææå 容已è¦çï¼æ éæ¼
é¶æ®µ 4: ç¨æ·éæ©
ç®æ : è®©ç¨æ·éæ©è¦åªè¾çç« èåå¤çé项
-
ä½¿ç¨ AskUserQuestion å·¥å ·è®©ç¨æ·éæ©ç« è
- æä¾ç« èç¼å·ä¾ç¨æ·éæ©
- æ¯æå¤éï¼å¯ä»¥éæ©å¤ä¸ªç« èï¼
-
询é®å¤çé项ï¼
- æ¯å¦çæåè¯åå¹ï¼ï¼è±æ + 䏿ï¼
- æ¯å¦ç§å½åå¹å°è§é¢ï¼ï¼ç¡¬åå¹ï¼
- æ¯å¦çææ»ç»ææ¡ï¼
-
ç¡®è®¤ç¨æ·éæ©å¹¶å±ç¤ºå¤ç计å
é¶æ®µ 5: åªè¾å¤çï¼æ ¸å¿æ§è¡é¶æ®µï¼
ç®æ : å¹¶è¡æ§è¡å¤ä¸ªå¤çä»»å¡
å¯¹äºæ¯ä¸ªç¨æ·éæ©çç« èï¼æ§è¡ä»¥ä¸æ¥éª¤ï¼
5.1 åªè¾è§é¢ç段
python3 scripts/clip_video.py <video_path> <start_time> <end_time> <output_path>
- ä½¿ç¨ FFmpeg 精确åªè¾
- ä¿æåå§è§é¢è´¨é
- è¾åº:
<ç« èæ é¢>_clip.mp4
5.2 æååå¹ç段
- ä»å®æ´åå¹ä¸è¿æ»¤åºè¯¥æ¶é´æ®µçåå¹
- è°æ´æ¶é´æ³ï¼åå»èµ·å§æ¶é´ï¼ä» 00:00:00 å¼å§ï¼
- 转æ¢ä¸º SRT æ ¼å¼
- è¾åº:
<ç« èæ é¢>_original.srt
5.3 ç¿»è¯åå¹ï¼å¦æç¨æ·éæ©ï¼
python3 scripts/translate_subtitles.py <subtitle_path>
- æ¹éç¿»è¯ä¼å: æ¯æ¹ 20 æ¡åå¹ä¸èµ·ç¿»è¯ï¼èç 95% API è°ç¨ï¼
- ç¿»è¯çç¥ï¼
- ä¿æææ¯æ¯è¯çåç¡®æ§
- å£è¯å表达ï¼éåçè§é¢ï¼
- ç®æ´æµç ï¼é¿å åé¿ï¼
- è¾åº:
<ç« èæ é¢>_translated.srt
5.4 çæåè¯å广件ï¼å¦æç¨æ·éæ©ï¼
- åå¹¶è±æå䏿åå¹
- æ ¼å¼: SRT åè¯ï¼æ¯æ¡åå¹å å«è±æå䏿ï¼
- æ ·å¼: è±æå¨ä¸ï¼ä¸æå¨ä¸
- è¾åº:
<ç« èæ é¢>_bilingual.srt
5.5 ç§å½åå¹å°è§é¢ï¼å¦æç¨æ·éæ©ï¼
python3 scripts/burn_subtitles.py <video_path> <subtitle_path> <output_path>
- ä½¿ç¨ ffmpeg-fullï¼libass æ¯æï¼
- 使ç¨ä¸´æ¶ç®å½è§£å³è·¯å¾ç©ºæ ¼é®é¢ï¼å ³é®ï¼ï¼
- å广 ·å¼ï¼
- åä½å¤§å°: 24
- åºé¨è¾¹è·: 30
- é¢è²: ç½è²æå + é»è²æè¾¹
- è¾åº:
<ç« èæ é¢>_with_subtitles.mp4
5.6 çææ»ç»ææ¡ï¼å¦æç¨æ·éæ©ï¼
python3 scripts/generate_summary.py <chapter_info>
- åºäºç« èæ é¢ãæè¦åå ³é®è¯
- çæéå社交åªä½çææ¡
- å å«: æ é¢ãæ ¸å¿è§ç¹ãéåå¹³å°ï¼å°çº¢ä¹¦ãæé³çï¼
- è¾åº:
<ç« èæ é¢>_summary.md
è¿åº¦å±ç¤º:
ð¬ å¼å§å¤çç« è 1/3: AGI 䏿¯æ¶é´ç¹ï¼æ¯ææ°æ²çº¿
1/6 åªè¾è§é¢ç段... â
2/6 æååå¹ç段... â
3/6 ç¿»è¯åå¹ä¸ºä¸æ... [=====> ] 50% (26/52)
4/6 çæåè¯å广件... â
5/6 ç§å½åå¹å°è§é¢... â
6/6 çææ»ç»ææ¡... â
â¨ ç« è 1 å¤ç宿
é¶æ®µ 6: è¾åºç»æ
ç®æ : ç»ç»è¾åºæä»¶å¹¶å±ç¤ºç»ç¨æ·
-
å建è¾åºç®å½
./youtube-clips/<æ¥ææ¶é´>/è¾åºç®å½ä½äºå½åå·¥ä½ç®å½ä¸
-
ç»ç»æä»¶ç»æï¼
<ç« èæ é¢>/ âââ <ç« èæ é¢>_clip.mp4 # åå§åªè¾ï¼æ åå¹ï¼ âââ <ç« èæ é¢>_with_subtitles.mp4 # ç§å½åå¹çæ¬ âââ <ç« èæ é¢>_bilingual.srt # åè¯å广件 âââ <ç« èæ é¢>_summary.md # æ»ç»ææ¡ -
åç¨æ·å±ç¤ºï¼
- è¾åºç®å½è·¯å¾
- æä»¶å表ï¼å¸¦æä»¶å¤§å°ï¼
- å¿«éé¢è§å½ä»¤
⨠å¤çå®æï¼ ð è¾åºç®å½: ./youtube-clips/20260121_143022/ æä»¶å表: ð¬ AGI_ææ°æ²çº¿_åè¯ç¡¬åå¹.mp4 (14 MB) ð AGI_ææ°æ²çº¿_åè¯åå¹.srt (2.3 KB) ð AGI_ææ°æ²çº¿_æ»ç».md (3.2 KB) å¿«éé¢è§: open ./youtube-clips/20260121_143022/AGI_ææ°æ²çº¿_åè¯ç¡¬åå¹.mp4 -
è¯¢é®æ¯å¦ç»§ç»åªè¾å ¶ä»ç« è
- 妿æ¯ï¼è¿åé¶æ®µ 4ï¼ç¨æ·éæ©ï¼
- 妿å¦ï¼ç»æ Skill
å ³é®ææ¯ç¹
1. FFmpeg è·¯å¾ç©ºæ ¼é®é¢
é®é¢: FFmpeg subtitles æ»¤éæ æ³æ£ç¡®è§£æå å«ç©ºæ ¼çè·¯å¾
è§£å³æ¹æ¡: burn_subtitles.py 使ç¨ä¸´æ¶ç®å½
- å建æ ç©ºæ ¼ä¸´æ¶ç®å½
- å¤å¶æä»¶å°ä¸´æ¶ç®å½
- æ§è¡ FFmpeg
- ç§»å¨è¾åºæä»¶åç®æ ä½ç½®
2. æ¹éç¿»è¯ä¼å
é®é¢: éæ¡ç¿»è¯ä¼äº§ç大é API è°ç¨
è§£å³æ¹æ¡: æ¯æ¹ 20 æ¡åå¹ä¸èµ·ç¿»è¯
- èç 95% API è°ç¨
- æé«ç¿»è¯é度
- ä¿æç¿»è¯ä¸è´æ§
3. ç« èåæç²¾ç»åº¦
ç®æ : çæ 2-5 åéç²åº¦çç« èï¼é¿å åå°æ¶ç²ç²åº¦
æ¹æ³:
- çè§£åå¹è¯ä¹ï¼è¯å«ä¸»é¢è½¬æ¢
- 寻æ¾èªç¶çè¯é¢åæ¢ç¹
- ç¡®ä¿æ¯ä¸ªç« èæå®æ´ç论述
- é¿å æºæ¢°ææ¶é´åå
4. FFmpeg vs ffmpeg-full
åºå«:
- æ å FFmpeg: æ libass æ¯æï¼æ æ³ç§å½åå¹
- ffmpeg-full: å å« libassï¼æ¯æåå¹ç§å½
è·¯å¾:
- æ å:
/opt/homebrew/bin/ffmpeg - ffmpeg-full:
/opt/homebrew/opt/ffmpeg-full/bin/ffmpeg(Apple Silicon)
é误å¤ç
ç¯å¢é®é¢
- 缺å°å·¥å · â æç¤ºå®è£ å½ä»¤
- FFmpeg æ libass â å¼å¯¼å®è£ ffmpeg-full
- Python ä¾èµç¼ºå¤± â æç¤º pip install
ä¸è½½é®é¢
- æ æ URL â æç¤ºæ£æ¥ URL æ ¼å¼
- åå¹ç¼ºå¤± â å°è¯èªå¨åå¹
- ç½ç»é误 â æç¤ºéè¯
å¤çé®é¢
- FFmpeg æ§è¡å¤±è´¥ â æ¾ç¤ºè¯¦ç»é误信æ¯
- ç¿»è¯å¤±è´¥ â éè¯æºå¶ï¼æå¤ 3 次ï¼
- ç£ç空é´ä¸è¶³ â æç¤ºæ¸ ç空é´
è¾åºæä»¶å½åè§è
- è§é¢ç段:
<ç« èæ é¢>_clip.mp4 - å广件:
<ç« èæ é¢>_bilingual.srt - ç§å½çæ¬:
<ç« èæ é¢>_with_subtitles.mp4 - æ»ç»ææ¡:
<ç« èæ é¢>_summary.md
æä»¶åå¤ç:
- ç§»é¤ç¹æ®å符ï¼
/,\,:,*,?,",<,>,|ï¼ - ç©ºæ ¼æ¿æ¢ä¸ºä¸å线
- éå¶é¿åº¦ï¼æå¤ 100 å符ï¼
ç¨æ·ä½éªè¦ç¹
- è¿åº¦å¯è§: æ¯ä¸ªæ¥éª¤é½å±ç¤ºè¿åº¦åç¶æ
- é误å好: æ¸ æ°çé误信æ¯åè§£å³æ¹æ¡
- 坿§æ§: ç¨æ·éæ©è¦åªè¾çç« èåå¤çé项
- é«è´¨é: ç« èåæææä¹ï¼ç¿»è¯åç¡®æµç
- 宿´æ§: æä¾åå§åå¤çåçå¤ä¸ªçæ¬
å¼å§æ§è¡
å½ç¨æ·è§¦åè¿ä¸ª Skill æ¶ï¼
- ç«å³å¼å§é¶æ®µ 1ï¼ç¯å¢æ£æµï¼
- æç § 6 ä¸ªé¶æ®µé¡ºåºæ§è¡
- æ¯ä¸ªé¶æ®µå®æåèªå¨è¿å ¥ä¸ä¸é¶æ®µ
- éå°é®é¢æ¶æä¾æ¸ æ°çè§£å³æ¹æ¡
- æåå±ç¤ºå®æ´çè¾åºç»æ
è®°ä½ï¼è¿ä¸ª Skill çæ ¸å¿ä»·å¼å¨äº AI ç²¾ç»ç« èåæ å æ ç¼çææ¯å¤çï¼è®©ç¨æ·è½å¿«éä»é¿è§é¢ä¸æåé«è´¨éççè§é¢ç段ã