[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CK4TRTP03D7DNAB2K8CPPJ":3,"skill-same:01M6CK4TRTP03D7DNAB2K8CPPJ":81},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6CK4TRTP03D7DNAB2K8CPPJ","youtube-summarizer",null,"Automatically fetch YouTube video transcripts, generate structured summaries, and send full transcripts to messaging platforms. Detects YouTube URLs and provides metadata, key insights, and downloadable transcripts.","kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fabe238\u002Fyoutube-summarizer\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32],"youtube","youtube summarizer","generate","metadata","messaging","Video","fetch","telegram","transcription","summarization","2026-11-10 10:12:30",false,"---\nname: youtube-summarizer\ndescription: Automatically fetch YouTube video transcripts, generate structured summaries, and send full transcripts to messaging platforms. Detects YouTube URLs and provides metadata, key insights, and downloadable transcripts.\nversion: 1.0.0\nauthor: abe238\ntags: [youtube, transcription, summarization, video, telegram]\n---\n\n# YouTube Summarizer Skill\n\nAutomatically fetch transcripts from YouTube videos, generate structured summaries, and deliver full transcripts to messaging platforms.\n\n## When to Use\n\nActivate this skill when:\n- User shares a YouTube URL (youtube.com\u002Fwatch, youtu.be, youtube.com\u002Fshorts)\n- User asks to summarize or transcribe a YouTube video\n- User requests information about a YouTube video's content\n\n## Dependencies\n\n**Required:** MCP YouTube Transcript server must be installed at:\n`\u002Froot\u002Fclawd\u002Fmcp-server-youtube-transcript`\n\nIf not present, install it:\n```bash\ncd \u002Froot\u002Fclawd\ngit clone https:\u002F\u002Fgithub.com\u002Fkimtaeyoon83\u002Fmcp-server-youtube-transcript.git\ncd mcp-server-youtube-transcript\nnpm install && npm run build\n```\n\n## Workflow\n\n### 1. Detect YouTube URL\nExtract video ID from these patterns:\n- `https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID`\n- `https:\u002F\u002Fyoutu.be\u002FVIDEO_ID`\n- `https:\u002F\u002Fwww.youtube.com\u002Fshorts\u002FVIDEO_ID`\n- Direct video ID: `VIDEO_ID` (11 characters)\n\n### 2. Fetch Transcript\nRun this command to get the transcript:\n```bash\ncd \u002Froot\u002Fclawd\u002Fmcp-server-youtube-transcript && node --input-type=module -e \"\nimport { getSubtitles } from '.\u002Fdist\u002Fyoutube-fetcher.js';\nconst result = await getSubtitles({ videoID: 'VIDEO_ID', lang: 'en' });\nconsole.log(JSON.stringify(result, null, 2));\n\" > \u002Ftmp\u002Fyt-transcript.json\n```\n\nReplace `VIDEO_ID` with the extracted ID. Read the output from `\u002Ftmp\u002Fyt-transcript.json`.\n\n### 3. Process the Data\n\nParse the JSON to extract:\n- `result.metadata.title` - Video title\n- `result.metadata.author` - Channel name\n- `result.metadata.viewCount` - Formatted view count\n- `result.metadata.publishDate` - Publication date\n- `result.actualLang` - Language used\n- `result.lines` - Array of transcript segments\n\nFull text: `result.lines.map(l => l.text).join(' ')`\n\n### 4. Generate Summary\n\nCreate a structured summary using this template:\n\n```markdown\n? **Video:** [title]\n? **Channel:** [author] | ?️ **Views:** [views] | ? **Published:** [date]\n\n**? Main Thesis:**\n[1-2 sentence core argument\u002Fmessage]\n\n**? Key Insights:**\n- [insight 1]\n- [insight 2]\n- [insight 3]\n- [insight 4]\n- [insight 5]\n\n**? Notable Points:**\n- [additional point 1]\n- [additional point 2]\n\n**? Takeaway:**\n[Practical application or conclusion]\n```\n\nAim for:\n- Main thesis: 1-2 sentences maximum\n- Key insights: 3-5 bullets, each 1-2 sentences\n- Notable points: 2-4 supporting details\n- Takeaway: Actionable conclusion\n\n### 5. Save Full Transcript\n\nSave the complete transcript to a timestamped file:\n```\n\u002Froot\u002Fclawd\u002Ftranscripts\u002FYYYY-MM-DD_VIDEO_ID.txt\n```\n\nInclude in the file:\n- Video metadata header\n- Full transcript text\n- URL reference\n\n### 6. Platform-Specific Delivery\n\n**If channel is Telegram:**\n```bash\nmessage --action send --channel telegram --target CHAT_ID \\\n  --filePath \u002Froot\u002Fclawd\u002Ftranscripts\u002FYYYY-MM-DD_VIDEO_ID.txt \\\n  --caption \"? YouTube Transcript: [title]\"\n```\n\n**If channel is other\u002Fwebchat:**\nJust reply with the summary (no file attachment).\n\n### 7. Reply with Summary\n\nSend the structured summary as your response to the user.\n\n## Error Handling\n\n**If transcript fetch fails:**\n- Check if video has captions enabled\n- Try with `lang: 'en'` fallback if requested language unavailable\n- Inform user that transcript is not available and suggest alternatives:\n  - Manual YouTube transcript feature\n  - Video may not have captions\n  - Try a different video\n\n**If MCP server not installed:**\n- Provide installation instructions\n- Offer to install it automatically if in appropriate context\n\n**If video ID extraction fails:**\n- Ask user to provide the full YouTube URL or video ID\n\n## Examples\n\nSee `examples\u002F` directory for sample outputs.\n\n## Quality Guidelines\n\n- **Be concise:** Summary should be scannable in 30 seconds\n- **Be accurate:** Don't add information not in the transcript\n- **Be structured:** Use consistent formatting for easy reading\n- **Be contextual:** Adjust detail level based on video length\n  - Short videos (\u003C5 min): Brief summary\n  - Long videos (>30 min): More detailed breakdown\n\n## Notes\n\n- MCP server uses Android client emulation to bypass YouTube's cloud IP blocking\n- Works reliably from VPS\u002Fcloud environments where yt-dlp often fails\n- Supports multiple languages with automatic fallback to English\n- Transcript quality depends on YouTube's auto-generated captions or manual captions\n","# YouTube Summarizer Skill\n\nAutomatically fetch transcripts from YouTube videos, generate structured summaries, and deliver full transcripts to messaging platforms.\n\n## When to Use\n\nActivate this skill when:\n- User shares a YouTube URL (youtube.com\u002Fwatch, youtu.be, youtube.com\u002Fshorts)\n- User asks to summarize or transcribe a YouTube video\n- User requests information about a YouTube video's content\n\n## Dependencies\n\n**Required:** MCP YouTube Transcript server must be installed at:\n`\u002Froot\u002Fclawd\u002Fmcp-server-youtube-transcript`\n\nIf not present, install it:\n```bash\ncd \u002Froot\u002Fclawd\ngit clone https:\u002F\u002Fgithub.com\u002Fkimtaeyoon83\u002Fmcp-server-youtube-transcript.git\ncd mcp-server-youtube-transcript\nnpm install && npm run build\n```\n\n## Workflow\n\n### 1. Detect YouTube URL\nExtract video ID from these patterns:\n- `https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID`\n- `https:\u002F\u002Fyoutu.be\u002FVIDEO_ID`\n- `https:\u002F\u002Fwww.youtube.com\u002Fshorts\u002FVIDEO_ID`\n- Direct video ID: `VIDEO_ID` (11 characters)\n\n### 2. Fetch Transcript\nRun this command to get the transcript:\n```bash\ncd \u002Froot\u002Fclawd\u002Fmcp-server-youtube-transcript && node --input-type=module -e \"\nimport { getSubtitles } from '.\u002Fdist\u002Fyoutube-fetcher.js';\nconst result = await getSubtitles({ videoID: 'VIDEO_ID', lang: 'en' });\nconsole.log(JSON.stringify(result, null, 2));\n\" > \u002Ftmp\u002Fyt-transcript.json\n```\n\nReplace `VIDEO_ID` with the extracted ID. Read the output from `\u002Ftmp\u002Fyt-transcript.json`.\n\n### 3. Process the Data\n\nParse the JSON to extract:\n- `result.metadata.title` - Video title\n- `result.metadata.author` - Channel name\n- `result.metadata.viewCount` - Formatted view count\n- `result.metadata.publishDate` - Publication date\n- `result.actualLang` - Language used\n- `result.lines` - Array of transcript segments\n\nFull text: `result.lines.map(l => l.text).join(' ')`\n\n### 4. Generate Summary\n\nCreate a structured summary using this template:\n\n```markdown\n? **Video:** [title]\n? **Channel:** [author] | ?️ **Views:** [views] | ? **Published:** [date]\n\n**? Main Thesis:**\n[1-2 sentence core argument\u002Fmessage]\n\n**? Key Insights:**\n- [insight 1]\n- [insight 2]\n- [insight 3]\n- [insight 4]\n- [insight 5]\n\n**? Notable Points:**\n- [additional point 1]\n- [additional point 2]\n\n**? Takeaway:**\n[Practical application or conclusion]\n```\n\nAim for:\n- Main thesis: 1-2 sentences maximum\n- Key insights: 3-5 bullets, each 1-2 sentences\n- Notable points: 2-4 supporting details\n- Takeaway: Actionable conclusion\n\n### 5. Save Full Transcript\n\nSave the complete transcript to a timestamped file:\n```\n\u002Froot\u002Fclawd\u002Ftranscripts\u002FYYYY-MM-DD_VIDEO_ID.txt\n```\n\nInclude in the file:\n- Video metadata header\n- Full transcript text\n- URL reference\n\n### 6. Platform-Specific Delivery\n\n**If channel is Telegram:**\n```bash\nmessage --action send --channel telegram --target CHAT_ID \\\n  --filePath \u002Froot\u002Fclawd\u002Ftranscripts\u002FYYYY-MM-DD_VIDEO_ID.txt \\\n  --caption \"? YouTube Transcript: [title]\"\n```\n\n**If channel is other\u002Fwebchat:**\nJust reply with the summary (no file attachment).\n\n### 7. Reply with Summary\n\nSend the structured summary as your response to the user.\n\n## Error Handling\n\n**If transcript fetch fails:**\n- Check if video has captions enabled\n- Try with `lang: 'en'` fallback if requested language unavailable\n- Inform user that transcript is not available and suggest alternatives:\n  - Manual YouTube transcript feature\n  - Video may not have captions\n  - Try a different video\n\n**If MCP server not installed:**\n- Provide installation instructions\n- Offer to install it automatically if in appropriate context\n\n**If video ID extraction fails:**\n- Ask user to provide the full YouTube URL or video ID\n\n## Examples\n\nSee `examples\u002F` directory for sample outputs.\n\n## Quality Guidelines\n\n- **Be concise:** Summary should be scannable in 30 seconds\n- **Be accurate:** Don't add information not in the transcript\n- **Be structured:** Use consistent formatting for easy reading\n- **Be contextual:** Adjust detail level based on video length\n  - Short videos (\u003C5 min): Brief summary\n  - Long videos (>30 min): More detailed breakdown\n\n## Notes\n\n- MCP server uses Android client emulation to bypass YouTube's cloud IP blocking\n- Works reliably from VPS\u002Fcloud environments where yt-dlp often fails\n- Supports multiple languages with automatic fallback to English\n- Transcript quality depends on YouTube's auto-generated captions or manual captions\n",{"name":5,"tags":38,"author":40,"version":41,"description":7},[23,31,32,39,30],"video","abe238","1.0.0","main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fabe238\u002Fyoutube-summarizer",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add kbarbel640-del\u002Fskills --skill youtube-summarizer",{"tool":55,"command":56},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill youtube-summarizer",{"tool":58,"command":59},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill youtube-summarizer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fabe238\u002Fyoutube-summarizer\u002FSKILL.md",true,[63,69,73,77],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"_meta.json","REFERENCE","参考文档",288,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fabe238\u002Fyoutube-summarizer\u002F_meta.json",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"examples\u002Fsample-output.md",4439,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fabe238\u002Fyoutube-summarizer\u002Fexamples\u002Fsample-output.md",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"package.json",1067,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fabe238\u002Fyoutube-summarizer\u002Fpackage.json",{"path":78,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":79,"sourceHtmlUrl":80},"README.md",4543,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fabe238\u002Fyoutube-summarizer\u002FREADME.md",[82,113,140,160,166,186],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":93,"publishedAt":33},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[88],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],"crowd prompting","prompting","api","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","https","content","ai agents",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":122,"publishedAt":33},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[119],{"categoryNo":120,"categoryName":121,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[123,96,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,101,139],"dilemm ai","arena","analyze","browser","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking","use",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":149,"publishedAt":33},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[146],{"categoryNo":147,"categoryName":148,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",[150,151,152,153,154,155,156,97,29,137,139,157,96,158,159],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","read","http","via",{"skillNo":161,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":165,"publishedAt":33},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[164],{"categoryNo":147,"categoryName":148,"taxonomyType":20,"taxonomyTypeDesc":21},[153,152,151,150,159,155,156,97,154,137,139,29,157,96,158],{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":33},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[173,174,175,176,177,178,179,180,181,182,183,184,185],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":196,"publishedAt":33},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[192,193],{"categoryNo":120,"categoryName":121,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":194,"categoryName":195,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000037","律师与法务",[197,198,199,200,97,201,202,42,203,157,204,205,206,207,208,110,209,210,211],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]