[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M76RCPW81Z7FS3FCBY67FEMQ":3,"skill-same:01M76RCPW81Z7FS3FCBY67FEMQ":70},{"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":16,"sourceHtmlUrl":17,"categories":18,"keywords":19,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":23,"frontMatter":24,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":34,"ownerHtmlUrl":35,"ownerBlogUrl":36,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M76RCPW81Z7FS3FCBY67FEMQ","youtube-transcript",null,"Use when asked to get a transcript, extract key points, or summarize a YouTube video — given a YouTube URL.","matangilabs\u002Fkortny","matangilabs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F293936513?v=4","01M75421VCEBXSQNHDWZSMQS1N","Matangi Labs","01M75421WCPAD845MDGEMK8KFM",6,"MIT","https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Fyoutube-transcript\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Fyoutube-transcript\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: youtube-transcript\ndescription: Use when asked to get a transcript, extract key points, or summarize a YouTube video — given a YouTube URL.\nmetadata:\n  version: 1.0.0\n  display_name: YouTube Transcript\n  tags: youtube, video, transcript, summary, yt, captions, watch, talk, webinar, lecture\n---\n\n## Goal\n\nPull the transcript from a YouTube video and produce the most useful artifact from it — clean transcript, structured notes, or a Slack-ready summary.\n\n## Steps\n\n1. **Receive the YouTube URL**. If none is provided, ask for it.\n2. **Run the transcript script** (`scripts\u002Fget_transcript.py`) with the URL. The script uses `yt-dlp` to fetch auto-generated or manually-uploaded subtitle tracks (prefers manual\u002FEnglish; falls back to auto). Output: `{title, channel, duration_seconds, transcript_text, language}`.\n3. **Choose the output mode** based on the request:\n   - *Full transcript* → upload as a Slack file (plain text).\n   - *Summary* → 3-4 sentence paragraph: what the video covers, the core argument or demo, key takeaway.\n   - *Structured notes* → sections matching the video's natural breaks, with timestamps if present in the transcript.\n   - *Action items* → for talks\u002Fwebinars: decisions mentioned, questions raised, next steps named.\n4. **Include the metadata header**: video title, channel, duration, language, URL.\n5. **Flag transcript quality**: if the transcript is auto-generated (noted in output), mention that names and technical terms may be misheard.\n\n## Rules\n\n- No Whisper audio transcription — use only the subtitle tracks `yt-dlp` retrieves. If no subtitles exist, say so rather than transcribing manually or refusing silently.\n- Do not fabricate transcript content.\n- For videos over 2 hours, default to structured notes rather than full transcript unless the user asks explicitly.\n- Private or geo-restricted videos will fail extraction — report the error clearly.\n","## Goal\n\nPull the transcript from a YouTube video and produce the most useful artifact from it — clean transcript, structured notes, or a Slack-ready summary.\n\n## Steps\n\n1. **Receive the YouTube URL**. If none is provided, ask for it.\n2. **Run the transcript script** (`scripts\u002Fget_transcript.py`) with the URL. The script uses `yt-dlp` to fetch auto-generated or manually-uploaded subtitle tracks (prefers manual\u002FEnglish; falls back to auto). Output: `{title, channel, duration_seconds, transcript_text, language}`.\n3. **Choose the output mode** based on the request:\n   - *Full transcript* → upload as a Slack file (plain text).\n   - *Summary* → 3-4 sentence paragraph: what the video covers, the core argument or demo, key takeaway.\n   - *Structured notes* → sections matching the video's natural breaks, with timestamps if present in the transcript.\n   - *Action items* → for talks\u002Fwebinars: decisions mentioned, questions raised, next steps named.\n4. **Include the metadata header**: video title, channel, duration, language, URL.\n5. **Flag transcript quality**: if the transcript is auto-generated (noted in output), mention that names and technical terms may be misheard.\n\n## Rules\n\n- No Whisper audio transcription — use only the subtitle tracks `yt-dlp` retrieves. If no subtitles exist, say so rather than transcribing manually or refusing silently.\n- Do not fabricate transcript content.\n- For videos over 2 hours, default to structured notes rather than full transcript unless the user asks explicitly.\n- Private or geo-restricted videos will fail extraction — report the error clearly.\n",{"name":5,"metadata":25,"description":7},{"tags":26,"version":27,"display_name":28},"youtube, video, transcript, summary, yt, captions, watch, talk, webinar, lecture","1.0.0","YouTube Transcript","main","e54c3c09fd8ab6548a56c4a0e91a5af4c5e58774","kortny\u002Fskills\u002Fcurated\u002Fyoutube-transcript",3,"https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny","https:\u002F\u002Fkortny.dev","https:\u002F\u002Fgithub.com\u002Fmatangilabs","www.matangilabs.com","Building AI coworkers that live where your team works. Makers of Kortny.","2026-10-02 13:41:52",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add matangilabs\u002Fkortny --skill youtube-transcript",{"tool":45,"command":46},"bunx","bunx skills add matangilabs\u002Fkortny --skill youtube-transcript",{"tool":48,"command":49},"pnpm","pnpm dlx skills add matangilabs\u002Fkortny --skill youtube-transcript","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Fyoutube-transcript\u002FSKILL.md",true,[53,58,64],{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":16},"LICENSE.txt","LICENSE","许可证",1300,{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"PROVENANCE.md","REFERENCE","参考文档",1376,"https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Fyoutube-transcript\u002FPROVENANCE.md",{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"scripts\u002Fget_transcript.py","SCRIPT","脚本",5324,"https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Fyoutube-transcript\u002Fscripts\u002Fget_transcript.py",[71,79,86,93,100,108],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":20},"01M76RCRTNAEPXFXVHARYVFY38","demo-skill","Use when the user asks to run the demo analysis workflow on a dataset.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fdemo-skill\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":20},"01M7547HV0ZBTKNWMMSK1CBDYQ","weekly-status-report","Use when asked to compile a weekly status update, team recap, or progress report from recent channel activity, tasks, or notes.","https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Fweekly-status-report\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":20},"01M7547EKHDHYTPR1ZAQ2E6MN2","weekly-channel-digest","Use when asked to digest a channel's week, recap what happened in a channel, catch someone up on a channel, or post a recurring \"this week in","https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Fweekly-channel-digest\u002FSKILL.md",[],[],{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":20},"01M7547AYJZX4N1BN7FEQC0ARQ","thread-recap","Use when asked to recap this thread, summarize the discussion above, TL;DR a long thread, or pull the decisions and action items out of the conversation right here — work from the live Slack thread in front of you and post a tight recap back into it.","https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Fthread-recap\u002FSKILL.md",[],[],{"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":75,"licenseFileUrl":104,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":20},"01M75477448MG98MZCQQ3JS403","theme-factory","Use when asked to create, adapt, or apply a visual theme — color palette, typography system, component tokens — for a product, document, or presentation.","https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Ftheme-factory\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Ftheme-factory\u002FSKILL.md",[],[],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":75,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":20},"01M7546M7DPW9BSHG0J1PHVQKT","slack-block-kit","Use whenever a Slack reply carries structured data — a list of entities with attributes, key-value facts or metrics, status, comparisons, or rows that share columns. Teaches how to render that data as native Slack Block Kit (cards, fields, tables, context) instead of flat prose, by emitting a small presentation hint. Trigger this for any answer that lists things, reports numbers, shows statuses, or compares options — even when the user didn't ask for \"formatting.\"","https:\u002F\u002Fgithub.com\u002Fmatangilabs\u002Fkortny\u002Fblob\u002Fmain\u002Fkortny\u002Fskills\u002Fcurated\u002Fslack-block-kit\u002FSKILL.md",[],[]]