[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GD6FTX2AVX85J42HAT73FC":3,"skill-same:01M6GD6FTX2AVX85J42HAT73FC":67},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6GD6FTX2AVX85J42HAT73FC","youtube-content",null,"YouTube transcripts to summaries, threads, blogs.","zapabob\u002FSkills","zapabob","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F130830376?v=4","01M6DBMYZAGRTFQDSQYW3W764P","峯岸 亮","01M6DBMZ3GKDSJ01NZ9XTZD7JD",2,"MIT","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002Fb5\u002Fb556a0d2a220b46b80eb011619f0c951404f4d6e2edcc8b4847faec512b55132\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"content","youtube","youtube content","macos","linux","windows","Video","Media","hermes","hermes agent","transcripts","threads","2026-11-10 10:12:30",false,"---\nname: youtube-content\ndescription: \"YouTube transcripts to summaries, threads, blogs.\"\nversion: 1.0.0\nauthor: Teknium (teknium1), Hermes Agent\nlicense: MIT\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [YouTube, Video, Transcripts, Media]\n    related_skills: []\n---\n\n# YouTube Content Tool\n\n## When to use\n\nUse when the user shares a YouTube URL or video link, asks to summarize a video, requests a transcript, or wants to extract and reformat content from any YouTube video. Transforms transcripts into structured content (chapters, summaries, threads, blog posts).\n\nExtract transcripts from YouTube videos and convert them into useful formats.\n\n## Setup\n\nUse `terminal` with the Python from a PM-prepared Hermes source checkout. The\n`youtube` extra declares the helper's dependency; do not install packages into\nHermes with raw pip or project-discovering `uv run`.\n\nFrom that checkout, first follow the isolated development-home setup in\n[Package Management](https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Freference\u002Fpackage-management#developer-workflow),\nthen prepare the extra and reactivate before running the helper:\n\n```bash\nsource .\u002Factivate\npython -c \"import pm; pm.sync_venv(['youtube'], explicit=True)\"\nsource .\u002Factivate\npython -c \"import youtube_transcript_api; print(youtube_transcript_api.__file__)\"\n```\n\nOn Windows, use `. .\\activate.ps1` instead of `source .\u002Factivate`. If the terminal\nruns on a different host or in a sandbox, use an explicitly isolated helper\nenvironment there, not the agent's production environment. Run every command\nbelow with the interpreter whose import check succeeded.\n\n## Helper Script\n\n`SKILL_DIR` is the directory containing this SKILL.md file. The script accepts any standard YouTube URL format, short links (youtu.be), shorts, embeds, live links, or a raw 11-character video ID.\n\n```bash\n# JSON output with metadata\npython SKILL_DIR\u002Fscripts\u002Ffetch_transcript.py \"https:\u002F\u002Fyoutube.com\u002Fwatch?v=VIDEO_ID\"\n\n# Plain text (good for piping into further processing)\npython SKILL_DIR\u002Fscripts\u002Ffetch_transcript.py \"URL\" --text-only\n\n# With timestamps\npython SKILL_DIR\u002Fscripts\u002Ffetch_transcript.py \"URL\" --timestamps\n\n# Specific language with fallback chain\npython SKILL_DIR\u002Fscripts\u002Ffetch_transcript.py \"URL\" --language tr,en\n```\n\n## Output Formats\n\nAfter fetching the transcript, format it based on what the user asks for:\n\n- **Chapters**: Group by topic shifts, output timestamped chapter list\n- **Summary**: Concise 5-10 sentence overview of the entire video\n- **Chapter summaries**: Chapters with a short paragraph summary for each\n- **Thread**: Twitter\u002FX thread format — numbered posts, each under 280 chars\n- **Blog post**: Full article with title, sections, and key takeaways\n- **Quotes**: Notable quotes with timestamps\n\n### Example — Chapters Output\n\n```\n00:00 Introduction — host opens with the problem statement\n03:45 Background — prior work and why existing solutions fall short\n12:20 Core method — walkthrough of the proposed approach\n24:10 Results — benchmark comparisons and key takeaways\n31:55 Q&A — audience questions on scalability and next steps\n```\n\n## Workflow\n\n1. **Fetch** the transcript using `terminal` and the prepared Python with `--text-only --timestamps`.\n2. **Validate**: confirm the output is non-empty and in the expected language. If empty, retry without `--language` to get any available transcript. If still empty, tell the user the video likely has transcripts disabled.\n3. **Chunk if needed**: if the transcript exceeds ~50K characters, split into overlapping chunks (~40K with 2K overlap) and summarize each chunk before merging.\n4. **Transform** into the requested output format. If the user did not specify a format, default to a summary.\n5. **Verify**: re-read the transformed output to check for coherence, correct timestamps, and completeness before presenting.\n\n## Error Handling\n\n- **Transcript disabled**: tell the user; suggest they check if subtitles are available on the video page.\n- **Private\u002Funavailable video**: relay the error and ask the user to verify the URL.\n- **No matching language**: retry without `--language` to fetch any available transcript, then note the actual language to the user.\n- **Dependency missing**: repeat PM preparation and reactivation above, then verify the helper uses that Python. Do not repair the selected generation with pip.\n","# YouTube Content Tool\n\n## When to use\n\nUse when the user shares a YouTube URL or video link, asks to summarize a video, requests a transcript, or wants to extract and reformat content from any YouTube video. Transforms transcripts into structured content (chapters, summaries, threads, blog posts).\n\nExtract transcripts from YouTube videos and convert them into useful formats.\n\n## Setup\n\nUse `terminal` with the Python from a PM-prepared Hermes source checkout. The\n`youtube` extra declares the helper's dependency; do not install packages into\nHermes with raw pip or project-discovering `uv run`.\n\nFrom that checkout, first follow the isolated development-home setup in\n[Package Management](https:\u002F\u002Fhermes-agent.nousresearch.com\u002Fdocs\u002Freference\u002Fpackage-management#developer-workflow),\nthen prepare the extra and reactivate before running the helper:\n\n```bash\nsource .\u002Factivate\npython -c \"import pm; pm.sync_venv(['youtube'], explicit=True)\"\nsource .\u002Factivate\npython -c \"import youtube_transcript_api; print(youtube_transcript_api.__file__)\"\n```\n\nOn Windows, use `. .\\activate.ps1` instead of `source .\u002Factivate`. If the terminal\nruns on a different host or in a sandbox, use an explicitly isolated helper\nenvironment there, not the agent's production environment. Run every command\nbelow with the interpreter whose import check succeeded.\n\n## Helper Script\n\n`SKILL_DIR` is the directory containing this SKILL.md file. The script accepts any standard YouTube URL format, short links (youtu.be), shorts, embeds, live links, or a raw 11-character video ID.\n\n```bash\n# JSON output with metadata\npython SKILL_DIR\u002Fscripts\u002Ffetch_transcript.py \"https:\u002F\u002Fyoutube.com\u002Fwatch?v=VIDEO_ID\"\n\n# Plain text (good for piping into further processing)\npython SKILL_DIR\u002Fscripts\u002Ffetch_transcript.py \"URL\" --text-only\n\n# With timestamps\npython SKILL_DIR\u002Fscripts\u002Ffetch_transcript.py \"URL\" --timestamps\n\n# Specific language with fallback chain\npython SKILL_DIR\u002Fscripts\u002Ffetch_transcript.py \"URL\" --language tr,en\n```\n\n## Output Formats\n\nAfter fetching the transcript, format it based on what the user asks for:\n\n- **Chapters**: Group by topic shifts, output timestamped chapter list\n- **Summary**: Concise 5-10 sentence overview of the entire video\n- **Chapter summaries**: Chapters with a short paragraph summary for each\n- **Thread**: Twitter\u002FX thread format — numbered posts, each under 280 chars\n- **Blog post**: Full article with title, sections, and key takeaways\n- **Quotes**: Notable quotes with timestamps\n\n### Example — Chapters Output\n\n```\n00:00 Introduction — host opens with the problem statement\n03:45 Background — prior work and why existing solutions fall short\n12:20 Core method — walkthrough of the proposed approach\n24:10 Results — benchmark comparisons and key takeaways\n31:55 Q&A — audience questions on scalability and next steps\n```\n\n## Workflow\n\n1. **Fetch** the transcript using `terminal` and the prepared Python with `--text-only --timestamps`.\n2. **Validate**: confirm the output is non-empty and in the expected language. If empty, retry without `--language` to get any available transcript. If still empty, tell the user the video likely has transcripts disabled.\n3. **Chunk if needed**: if the transcript exceeds ~50K characters, split into overlapping chunks (~40K with 2K overlap) and summarize each chunk before merging.\n4. **Transform** into the requested output format. If the user did not specify a format, default to a summary.\n5. **Verify**: re-read the transformed output to check for coherence, correct timestamps, and completeness before presenting.\n\n## Error Handling\n\n- **Transcript disabled**: tell the user; suggest they check if subtitles are available on the video page.\n- **Private\u002Funavailable video**: relay the error and ask the user to verify the URL.\n- **No matching language**: retry without `--language` to fetch any available transcript, then note the actual language to the user.\n- **Dependency missing**: repeat PM preparation and reactivation above, then verify the helper uses that Python. Do not repair the selected generation with pip.\n",{"name":5,"author":36,"license":15,"version":37,"metadata":38,"platforms":44,"description":7},"Teknium (teknium1), Hermes Agent","1.0.0",{"hermes":39},{"tags":40,"related_skills":43},[41,25,42,26],"YouTube","Transcripts",[],[23,22,24],"main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002Fb5\u002Fb556a0d2a220b46b80eb011619f0c951404f4d6e2edcc8b4847faec512b55132",0,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills","https:\u002F\u002Fgithub.com\u002Fzapabob","The Open University of JAPAN　2019-now\r\n\r\nTokyo University of Science　2007-2010","2026-10-26 16:29:01",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add zapabob\u002FSkills --skill youtube-content",{"tool":59,"command":60},"bunx","bunx skills add zapabob\u002FSkills --skill youtube-content",{"tool":62,"command":63},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill youtube-content","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002Fb5\u002Fb556a0d2a220b46b80eb011619f0c951404f4d6e2edcc8b4847faec512b55132\u002FSKILL.md",true,[],[68,100,135,162,189,206],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":87,"publishedAt":31},"01M6GJTE1GESGGF9K028Y7753E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fxurl\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[74,79,82],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":80,"categoryName":81,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[70,88,22,89,90,23,24,91,92,93,94,95,26,27,28,96,45,97,98,99],"openclaw","cli","github","official","search","https","social-media","api","twitter","social","via","post",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":117,"publishedAt":31},"01M6GJT8S1PXQ8WPXT1HSNBWH2","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwriting-plans\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[106,109,112,113,114],{"categoryNo":107,"categoryName":108,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":110,"categoryName":111,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":80,"categoryName":81,"taxonomyType":77,"taxonomyTypeDesc":78},{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},{"categoryNo":115,"categoryName":116,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000036","内容创作者",[118,119,120,121,22,122,23,123,24,124,125,126,127,128,129,130,131,132,133,134],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":144,"publishedAt":31},"01M6GJST0H5X7WHBJ3BZK0DVKH","whisper","OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwhisper\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[141],{"categoryNo":142,"categoryName":143,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000016","图像与多媒体",[137,22,23,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":171,"publishedAt":31},"01M6GJSMRQ8EETZTYMG72P70EA","weights-and-biases","W&B: log ML experiments, sweeps, model registry, dashboards.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fweights-and-biases\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[168],{"categoryNo":169,"categoryName":170,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000013","分析与可视化",[172,22,173,174,24,175,176,177,178,179,180,152,181,182,183,184,185,186,187,188],"weights and biases","tensorflow","experiments","pytorch","visualization","registry","real-time","tuning","dashboards","experiment","log","time","Experiment Tracking","Model Registry","Hyperparameter Tuning","WandB","Real-Time Visualization",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":196,"publishedAt":31},"01M6GJS19KDPRY112JTR326S06","watchers","Poll RSS, JSON APIs, and GitHub with watermark dedup.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwatchers\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[195],{"categoryNo":80,"categoryName":81,"taxonomyType":77,"taxonomyTypeDesc":78},[191,22,197,90,23,198,199,200,201,202,203,27,28,204,205],"terminal","automation","http","monitoring","cron","json","rss","devops","with",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":214,"publishedAt":31},"01M6GJRHJD2A6Q830SWF9W48BC","serving-llms-vllm","vLLM: high-throughput LLM serving, OpenAI API, quantization.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fvllm\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[212,213],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},[215,216,217,23,218,145,219,220,221,148,222,95,223,224,225,226,227,228,229,230],"llms","vLLM","serving llms vllm","research","openai api","tensor","Inference Serving","Production","llm serving","High Throughput","PagedAttention","Continuous Batching","Quantization","Tensor Parallelism","high-throughput","throughput"]