skills/yt-search/SKILL.md
Search YouTube videos, get video metadata, and download subtitles/transcripts using yt-dlp. Use when the user wants to find videos, search YouTube, look up a YouTube channel, get video info, download captions, grab subtitles, or extract a transcript. Triggers include "找影片", "搜影片", "YouTube 搜尋", "抓字幕", "逐字稿", "search videos", "find videos on YouTube", "get subtitles", "video transcript", "youtube tutorial", "watch video about", "影片推薦", "有沒有影片", "教學影片". Make sure to use this skill whenever the user mentions YouTube, video search, subtitles, or transcripts — even if they don't explicitly say "yt-search".
npx skillsauth add azuma520/youtube-to-notebooklm yt-searchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
YouTube 影片搜尋、元數據查詢、字幕下載。依賴 yt-dlp(pip install yt-dlp)。
yt-dlp --flat-playlist "ytsearchN:關鍵字" -j
N = 結果數(預設 10,建議最多 20)。每行一個 JSON,取 title、channel、duration_string、view_count、url、id。
呈現為表格讓用戶挑選(按觀看數排序):
# | 標題 | 頻道 | 時長 | 觀看數 | URL
1 | How to Make... | FoodBiz | 12:34 | 45K | https://youtube.com/watch?v=xxx
按上傳日期搜尋(找最新內容):用 ytsearchdateN: 取代 ytsearchN:。
過濾搜尋結果:用 --match-filters 在搜尋層直接篩選,比下載後再過濾高效:
# 排除短影片(< 1 分鐘)和直播
yt-dlp --flat-playlist "ytsearch20:關鍵字" -j --match-filters "duration>60 & !is_live"
# 只要高人氣影片
yt-dlp --flat-playlist "ytsearch20:關鍵字" -j --match-filters "view_count>?1000"
用戶挑選後可進一步:取元數據、抓字幕、或推送到 NotebookLM(搭配 anything-to-notebooklm skill)。
yt-dlp -j "URL"
除基本欄位外,channel_follower_count 可評估頻道規模,like_count / comment_count 可評估內容互動度。
先確認可用字幕(避免下載失敗):
yt-dlp --list-subs "URL" 2>&1 | head -30
確認有字幕後再下載。--sub-langs 支援正則,可抓所有語言變體:
# 抓中文(含 zh-TW, zh-Hans 等)和英文(含 en-US 等)
yt-dlp --skip-download --write-auto-subs --sub-langs "zh.*,en.*" --sub-format vtt -o "$TEMP/%(id)s" "URL"
也可同時抓手動字幕(品質更好)和自動字幕:
yt-dlp --skip-download --write-subs --write-auto-subs --sub-langs "zh.*,en.*" --sub-format vtt -o "$TEMP/%(id)s" "URL"
手動字幕(--write-subs)品質優於自動字幕(--write-auto-subs),有手動的優先用。
輸出 VTT 檔,用內建腳本轉純文字:
python <skill-path>/scripts/parse_vtt.py "$TEMP/VIDEO_ID.en.vtt" -o "$TEMP/transcript.txt"
如果 --list-subs 顯示無字幕,告知用戶該影片沒有可用字幕。
遇到年齡限制或需要登入才能觀看的影片,可從瀏覽器提取 Cookie:
yt-dlp --cookies-from-browser chrome -j "URL"
支援 chrome、firefox、edge、brave 等瀏覽器。先詢問用戶慣用的瀏覽器。
用戶常見流程:搜影片 → 選一部 → 推 NotebookLM。選定影片後,記住 URL,直接傳給 anything-to-notebooklm skill 使用(YouTube URL 可直接 source add,不需要先抓字幕)。
如果用戶想看逐字稿再決定是否推送,先抓字幕讓用戶確認內容。
PYTHONUTF8=1--geo-bypassduration 再決定是否下載--sleep-requests 1 避免被 YouTube 限流rm "$TEMP"/VIDEO_ID.*.vtttesting
Transcribe audio/video to accurate subtitles using Whisper AI, with optional translation and delivery. Supports YouTube URLs and local audio/video files. Use when: (1) a YouTube video has no subtitles, (2) auto-generated captions are inaccurate, (3) the user wants high-quality transcription, (4) the user needs translated subtitles, (5) the user wants transcripts sent to email or cloud storage. Triggers: "轉錄", "語音轉文字", "Whisper", "沒有字幕", "字幕不準", "transcribe", "speech to text", "no subtitles", "bad captions", "翻譯字幕", "translate subtitles", "寄到信箱", "上傳到雲端". Make sure to use this skill whenever the user needs transcription beyond what YouTube auto-captions provide, or when yt-search reports no subtitles available.
development
Upload content to Google NotebookLM and generate podcasts, slides, mind maps, quizzes, reports, videos, and more. Also browse, search, and query existing notebooks. Supports URLs (web, YouTube), local files (PDF, DOCX, PPTX, XLSX, EPUB, Markdown, images, audio, CSV, JSON, ZIP), AI research, and Google Drive. Use when the user says: "上傳到 NotebookLM", "生成播客", "做成 PPT", "畫思維導圖", "generate podcast", "make slides", "create mind map", "upload to NotebookLM", "做成報告", "出題", "生成 Quiz", "turn this into a podcast", "summarize this as slides", "把這個做成播客", "幫我整理成報告", "ask NotebookLM", "問筆記本", "找之前的筆記本", "NotebookLM 上的", "check my notebooks", "download the podcast", "what notebooks do I have", "搜尋 notebook", "之前的 notebook", "下載播客", "瀏覽筆記本". Activate this skill whenever the user wants to push content to NotebookLM, generate outputs, browse or query existing notebooks, or download previously generated artifacts.
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
testing
Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).