opencode-skills-collection 4.0.64 → 4.0.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +3 -1
  2. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -1
  3. package/bundled-skills/seo-aeo-blog-writer/SKILL.md +140 -59
  4. package/bundled-skills/seo-aeo-content-cluster/SKILL.md +180 -61
  5. package/bundled-skills/seo-aeo-content-quality-auditor/SKILL.md +221 -64
  6. package/bundled-skills/seo-aeo-content-quality-auditor/references/seo-audit-checklist.md +63 -0
  7. package/bundled-skills/seo-aeo-internal-linking/SKILL.md +220 -59
  8. package/bundled-skills/seo-aeo-keyword-research/SKILL.md +297 -76
  9. package/bundled-skills/seo-aeo-landing-page-writer/SKILL.md +116 -83
  10. package/bundled-skills/seo-aeo-meta-description-generator/SKILL.md +316 -62
  11. package/bundled-skills/seo-aeo-orchestrator/SKILL.md +281 -0
  12. package/bundled-skills/seo-aeo-schema-generator/SKILL.md +302 -68
  13. package/bundled-skills/seo-aeo-schema-generator/references/aggregate-rating-schema.json +8 -0
  14. package/bundled-skills/seo-aeo-schema-generator/references/article-schema.json +10 -0
  15. package/bundled-skills/seo-aeo-schema-generator/references/breadcrumb-schema.json +5 -0
  16. package/bundled-skills/seo-aeo-schema-generator/references/faq-schema.json +5 -0
  17. package/bundled-skills/seo-aeo-schema-generator/references/howto-schema.json +7 -0
  18. package/bundled-skills/seo-aeo-schema-generator/references/organization-schema.json +7 -0
  19. package/bundled-skills/seo-aeo-schema-generator/references/product-schema.json +8 -0
  20. package/bundled-skills/seo-aeo-schema-generator/references/review-schema.json +8 -0
  21. package/bundled-skills/seo-aeo-schema-generator/references/webpage-schema.json +7 -0
  22. package/bundled-skills/seo-aeo-schema-generator/references/website-schema.json +7 -0
  23. package/bundled-skills/youtube-transcript-skills/SKILL.md +110 -0
  24. package/package.json +1 -1
  25. package/skills_index.json +125 -8
@@ -1,108 +1,342 @@
1
1
  ---
2
2
  name: seo-aeo-schema-generator
3
- description: "Generates valid JSON-LD structured data for 10 schema types with rich result eligibility validation and implementation-ready script blocks. Activate when the user wants to generate schema markup, JSON-LD, or structured data for any page."
3
+ description: "Generates and validates implementation-ready JSON-LD structured data for relevant page types and rich-result eligibility."
4
4
  risk: safe
5
5
  source: community
6
6
  date_added: "2026-04-01"
7
7
  ---
8
8
 
9
- # SEO-AEO Schema Generator
9
+ # Schema Generator Skill
10
10
 
11
- ## Overview
11
+ ## Description
12
+ Activate this skill when the user wants to generate, write,
13
+ or validate structured data markup for any page.
14
+ Trigger phrases include: "generate schema", "create JSON-LD",
15
+ "schema markup for", "structured data for",
16
+ "FAQ schema", "product schema", "article schema",
17
+ "help Google understand my page", "rich results schema",
18
+ "schema generator: [type]", "add schema to [page]".
12
19
 
13
- Generates implementation-ready JSON-LD schema markup for 10 schema types including FAQPage, Article, Product, HowTo, and BreadcrumbList. Validates all required fields against Google rich result eligibility rules, flags missing fields with exact fix instructions, and outputs one clean `<script>` block per schema type ready to paste into the page `<head>`.
20
+ ---
21
+
22
+ ## Input Format
23
+ ````json
24
+ {
25
+ "page_type": "landing-page | blog-post | pillar-page |
26
+ product-page | homepage | faq-page |
27
+ how-to-page",
28
+ "schema_types": ["string — list all types needed for
29
+ this page, see Schema Type Menu below"],
30
+ "page_data": {
31
+ "url": "string — canonical URL of the page",
32
+ "title": "string — page title",
33
+ "description": "string — page meta description
34
+ or content summary",
35
+ "primary_keyword": "string",
36
+ "date_published": "string — ISO format: YYYY-MM-DD",
37
+ "date_modified": "string — ISO format: YYYY-MM-DD",
38
+ "author_name": "string — for Article schema",
39
+ "brand_name": "string",
40
+ "brand_url": "string — homepage URL",
41
+ "logo_url": "string — absolute URL to brand logo",
42
+ "product": {
43
+ "name": "string",
44
+ "description": "string",
45
+ "image_url": "string",
46
+ "price": "decimal",
47
+ "currency": "string — ISO 4217, e.g. USD, GBP",
48
+ "availability": "InStock | OutOfStock | PreOrder",
49
+ "sku": "string — optional"
50
+ },
51
+ "reviews": [
52
+ {
53
+ "author": "string",
54
+ "rating": "integer — 1 to 5",
55
+ "review_body": "string",
56
+ "date": "string — YYYY-MM-DD"
57
+ }
58
+ ],
59
+ "aggregate_rating": {
60
+ "rating_value": "decimal — e.g. 4.7",
61
+ "review_count": "integer",
62
+ "best_rating": "integer — usually 5",
63
+ "worst_rating": "integer — usually 1"
64
+ },
65
+ "faqs": [
66
+ {
67
+ "question": "string",
68
+ "answer": "string"
69
+ }
70
+ ],
71
+ "how_to": {
72
+ "name": "string — title of the how-to",
73
+ "description": "string",
74
+ "total_time": "string — ISO 8601 duration, e.g. PT30M",
75
+ "steps": [
76
+ {
77
+ "name": "string — step title",
78
+ "text": "string — step instructions"
79
+ }
80
+ ]
81
+ },
82
+ "breadcrumbs": [
83
+ {
84
+ "position": "integer — 1, 2, 3...",
85
+ "name": "string — label",
86
+ "url": "string — absolute URL"
87
+ }
88
+ ]
89
+ }
90
+ }
91
+ ````
92
+
93
+ ---
94
+
95
+ ## Schema Type Menu
96
+
97
+ This skill supports the following schema types.
98
+ Multiple types can be requested for a single page:
99
+
100
+ | Schema Type | Best For | Rich Result Unlocked |
101
+ |----------------------|---------------------------------------------|-----------------------------------------|
102
+ | `Article` | Blog posts, pillar pages, news | Article rich result, Top Stories |
103
+ | `FAQPage` | FAQ sections on any page | FAQ accordion in SERP — AEO critical |
104
+ | `HowTo` | Step-by-step guides | Step-by-step rich result |
105
+ | `Product` | Product or pricing pages | Price, availability, rating in SERP |
106
+ | `Review` | Individual product or service reviews | Star rating in SERP |
107
+ | `AggregateRating` | Pages with multiple reviews | Star rating with review count |
108
+ | `BreadcrumbList` | Any page with a navigation hierarchy | Breadcrumb path shown in SERP URL |
109
+ | `Organization` | Homepage or About page | Brand knowledge panel signals |
110
+ | `WebPage` | Any page needing basic structured identity | Enhances page understanding by crawlers |
111
+ | `WebSite` | Homepage only | Sitelinks Searchbox in SERP |
112
+
113
+ **AEO Priority:** `FAQPage` and `HowTo` are the two schema
114
+ types most directly responsible for AI engine extraction.
115
+ Always include `FAQPage` on landing pages and blog posts
116
+ that contain a FAQ section.
14
117
 
15
- Part of the [SEO-AEO Engine](https://github.com/mrprewsh/seo-aeo-engine).
118
+ ---
119
+
120
+ ## Rich Result Eligibility Rules
16
121
 
17
- ## When to Use This Skill
122
+ Google requires specific fields to be present for each
123
+ schema type to qualify for rich results.
124
+ Missing required fields disqualifies the page entirely.
18
125
 
19
- - Use when adding structured data to a new landing page or blog post
20
- - Use when a page needs FAQ rich results or product star ratings in search
21
- - Use when validating existing schema for Google rich result eligibility
22
- - Use after the content-quality-auditor flags missing schema
126
+ ### FAQPage
127
+ | Field | Status | Notes |
128
+ |----------------|-------------|------------------------------------------|
129
+ | `@type` | Required | Must be `FAQPage` |
130
+ | `mainEntity` | Required | Array of `Question` objects |
131
+ | `name` | Required | The question text |
132
+ | `acceptedAnswer` | Required | `Answer` object containing `text` |
133
+ | Minimum Qs | Required | At least 2 question-answer pairs |
134
+ | Answer length | Recommended | Under 300 words per answer |
23
135
 
24
- ## Supported Schema Types
136
+ ### Article
137
+ | Field | Status | Notes |
138
+ |--------------------|-------------|--------------------------------------|
139
+ | `headline` | Required | Under 110 characters |
140
+ | `image` | Required | At least one image URL |
141
+ | `datePublished` | Required | ISO 8601 format |
142
+ | `dateModified` | Recommended | ISO 8601 format |
143
+ | `author` | Required | `Person` or `Organization` object |
144
+ | `publisher` | Required | `Organization` with `logo` |
25
145
 
26
- | Type | Rich Result Unlocked |
27
- |------|---------------------|
28
- | FAQPage | FAQ accordion in SERP — AEO critical |
29
- | Article | Article rich result, Top Stories |
30
- | Product | Price, availability, rating in SERP |
31
- | HowTo | Step-by-step rich result |
32
- | Review | Star rating in SERP |
33
- | AggregateRating | Star rating with review count |
34
- | BreadcrumbList | Breadcrumb path in SERP URL |
35
- | Organization | Brand knowledge panel signals |
36
- | WebPage | Enhanced page understanding |
37
- | WebSite | Sitelinks Searchbox |
146
+ ### Product
147
+ | Field | Status | Notes |
148
+ |--------------------|-------------|--------------------------------------|
149
+ | `name` | Required | Product name |
150
+ | `image` | Required | Absolute URL |
151
+ | `description` | Recommended | |
152
+ | `offers` | Required | `Offer` object with price + currency |
153
+ | `price` | Required | Numeric value |
154
+ | `priceCurrency` | Required | ISO 4217 currency code |
155
+ | `availability` | Recommended | Schema.org availability URL |
156
+ | `aggregateRating` | Recommended | Unlocks star rating display |
38
157
 
39
- ## How It Works
158
+ ### HowTo
159
+ | Field | Status | Notes |
160
+ |--------------------|-------------|--------------------------------------|
161
+ | `name` | Required | Title of the how-to |
162
+ | `step` | Required | Array of `HowToStep` objects |
163
+ | `text` | Required | Instructions for each step |
164
+ | `totalTime` | Recommended | ISO 8601 duration |
165
+ | `image` | Recommended | Image per step if available |
40
166
 
41
- ### Step 1: Recommend Schema Types
42
- If schema types are not specified, recommend the appropriate types based on the page type. Landing pages get FAQPage + Product + BreadcrumbList. Blog posts get Article + FAQPage + BreadcrumbList.
167
+ ### BreadcrumbList
168
+ | Field | Status | Notes |
169
+ |--------------------|-------------|--------------------------------------|
170
+ | `itemListElement` | Required | Array of `ListItem` objects |
171
+ | `position` | Required | Integer, starts at 1 |
172
+ | `name` | Required | Breadcrumb label |
173
+ | `item` | Required | Absolute URL for each crumb |
174
+
175
+ ---
43
176
 
44
- ### Step 2: Use Built-In Schema Templates
45
- Using your knowledge of schema.org and Google's rich result requirements, construct the JSON-LD template for each requested schema type. Use the required and recommended fields listed in the Google Rich Results documentation for that type.
177
+ ## Output Structure
46
178
 
47
- ### Step 3: Populate Fields
48
- Map all page data to template placeholders. Check every required field against the rich result eligibility rules.
179
+ The skill must always produce output in this exact format:
180
+ ````markdown
181
+ # Schema Markup Output
182
+
183
+ **Page:** [page title]
184
+ **URL:** [url]
185
+ **Schema Types Generated:** [list all types]
186
+ **Rich Results Unlocked:** [list eligible rich results]
187
+ **AEO Signals Added:** [list AEO-relevant schema types]
188
+
189
+ ---
49
190
 
50
- ### Step 4: Validate
51
- Flag any missing required field as a Critical issue. Flag missing recommended fields as warnings. Do not output schema with missing required fields.
191
+ ## Validation Summary
52
192
 
53
- ### Step 5: Output Script Blocks
54
- Write one `<script type="application/ld+json">` block per schema type. Include implementation instructions and testing tool links.
193
+ | Schema Type | Required Fields Complete | Rich Result Eligible | Issues Found |
194
+ |-------------------|--------------------------|----------------------|--------------|
195
+ | [type] | ✅ / ❌ | ✅ / ❌ | [n or none] |
196
+ | [type] | ✅ / ❌ | ✅ / ❌ | [n or none] |
55
197
 
56
- ## Examples
198
+ ---
199
+
200
+ ## Issues Found
201
+
202
+ [If no issues: ✅ All schema types passed validation.]
203
+
204
+ **Issue:** [Specific field missing or incorrect]
205
+ **Schema Type:** [type]
206
+ **Severity:** Required / Recommended
207
+ **Fix:** [Exact instruction — what to add or change]
208
+
209
+ ---
57
210
 
58
- ### Example: FAQPage Schema Output
211
+ ## JSON-LD Output
212
+
213
+ Place all script blocks inside the `<head>` of your HTML.
214
+ Use one `<script>` block per schema type.
215
+
216
+ ### [Schema Type 1]
59
217
  ```html
60
218
  <script type="application/ld+json">
61
219
  {
62
220
  "@context": "https://schema.org",
63
- "@type": "FAQPage",
64
- "mainEntity": [
65
- {
66
- "@type": "Question",
67
- "name": "What is Syncro?",
68
- "acceptedAnswer": {
69
- "@type": "Answer",
70
- "text": "Syncro is a remote-first project management platform for distributed engineering teams. It centralises task tracking, async communication, and sprint planning in one tool."
71
- }
72
- }
73
- ]
221
+ "@type": "[type]",
222
+ [all populated fields from references/ template]
74
223
  }
75
224
  </script>
76
225
  ```
77
226
 
78
- ## Best Practices
227
+ ### [Schema Type 2]
228
+ ```html
229
+ <script type="application/ld+json">
230
+ {
231
+ "@context": "https://schema.org",
232
+ "@type": "[type]",
233
+ [all populated fields]
234
+ }
235
+ </script>
236
+ ```
79
237
 
80
- - ✅ **Do:** Always include FAQPage schema on any page with a FAQ section — it is the strongest AEO signal
81
- - ✅ **Do:** Use one `<script>` block per schema type — never combine multiple types
82
- - ✅ **Do:** Test every output in Google's Rich Results Test before deploying
83
- - ❌ **Don't:** Use relative URLs anywhere in schema — all URLs must start with `https://`
84
- - ❌ **Don't:** Leave placeholder text in any field before deploying
85
- - ❌ **Don't:** Use HTML tags inside JSON-LD string values
238
+ ---
86
239
 
87
- ## Common Pitfalls
240
+ ## Implementation Instructions
88
241
 
89
- - **Problem:** Schema passes validation but rich result doesn't appear in search
90
- **Solution:** Rich results can take weeks to appear after deployment. Request re-indexing in Google Search Console immediately after adding schema.
242
+ 1. Copy each `<script>` block above
243
+ 2. Paste inside the `<head>` tag of your HTML
244
+ after the `<title>` tag, before `</head>`
245
+ 3. One script block per schema type —
246
+ do not combine multiple types in one block
247
+ 4. Test immediately using Google's Rich Results
248
+ Test: https://search.google.com/test/rich-results
249
+ 5. Test using Schema.org Validator:
250
+ https://validator.schema.org
251
+ 6. After deploying, request re-indexing in
252
+ Google Search Console
91
253
 
92
- - **Problem:** Product schema missing star rating display
93
- **Solution:** Add AggregateRating object with ratingValue, reviewCount, bestRating, and worstRating — all four fields required.
254
+ ---
94
255
 
95
- ## Related Skills
256
+ ## Testing Checklist
96
257
 
97
- - `@seo-aeo-landing-page-writer` provides the FAQ and product data for schema population
98
- - `@seo-aeo-content-quality-auditor` flags schema gaps during the audit
258
+ - [ ] All required fields populated for each schema type
259
+ - [ ] No placeholder text left in any field
260
+ - [ ] All URLs are absolute (https://...) not relative (/page)
261
+ - [ ] Date fields use ISO 8601 format (YYYY-MM-DD)
262
+ - [ ] Price uses decimal format (e.g. 49.00 not $49)
263
+ - [ ] Currency uses ISO 4217 code (USD not $)
264
+ - [ ] FAQPage has minimum 2 question-answer pairs
265
+ - [ ] No HTML tags inside JSON-LD string values
266
+ - [ ] Each schema type in its own `<script>` block
267
+ - [ ] Tested in Google Rich Results Test ✅
268
+ - [ ] Tested in Schema.org Validator ✅
269
+ ````
99
270
 
100
- ## Additional Resources
271
+ ---
101
272
 
102
- - [SEO-AEO Engine Repository](https://github.com/mrprewsh/seo-aeo-engine)
103
- - [Full Schema Generator SKILL.md](https://github.com/mrprewsh/seo-aeo-engine/blob/main/.agent/skills/schema-generator/SKILL.md)
273
+ ## References Folder
274
+
275
+ The `references/` folder contains pre-validated
276
+ JSON-LD templates for all supported schema types.
277
+ The script uses these as base structures and
278
+ populates them with page data.
279
+ ````
280
+ references/
281
+ ├── faq-schema.json
282
+ ├── article-schema.json
283
+ ├── product-schema.json
284
+ ├── review-schema.json
285
+ ├── aggregate-rating-schema.json
286
+ ├── howto-schema.json
287
+ ├── breadcrumb-schema.json
288
+ ├── organization-schema.json
289
+ ├── webpage-schema.json
290
+ └── website-schema.json
291
+ ````
292
+
293
+ Each template contains all required and recommended
294
+ fields with placeholder values in this format:
295
+ `"{{field_name}}"`. The `schema_builder.py` script
296
+ replaces all placeholders with the values from `page_data`.
297
+
298
+ ---
299
+
300
+ ## Execution Steps
301
+
302
+ 1. Read `page_type` and `schema_types` —
303
+ if `schema_types` is empty, recommend the
304
+ appropriate types based on `page_type` using
305
+ the Schema Type Menu before proceeding
306
+ 2. For each requested schema type, load the
307
+ corresponding template from `references/`
308
+ 3. Map all fields from `page_data` to the
309
+ template placeholders
310
+ 4. Check every required field against the
311
+ Rich Result Eligibility Rules —
312
+ flag any missing required field as an issue
313
+ before outputting
314
+ 5. Check every recommended field — flag as
315
+ a warning if missing but do not block output
316
+ 6. Validate all URLs are absolute,
317
+ all dates are ISO 8601,
318
+ all prices are decimal format
319
+ 7. Generate one clean `<script>` block
320
+ per schema type
321
+ 8. Build the Validation Summary table
322
+ 9. List all issues with severity and exact fix instructions
323
+ 10. Write Implementation Instructions
324
+ and Testing Checklist
325
+ 11. Populate the selected reference template from supplied page data, validate required fields, and show unresolved placeholders as blocking issues. Use a project-provided schema helper only as a supplementary check; never emit fabricated review, rating, or product claims.
326
+
327
+ ---
328
+
329
+ ## Connected Skills
330
+ - Receives output from: `seo-aeo-landing-page-writer`,
331
+ `seo-aeo-blog-writer`, `seo-aeo-content-quality-auditor`,
332
+ `seo-aeo-internal-linking`
333
+ - Feeds output to: orchestrator workflow —
334
+ final step before publish checklist
335
+
336
+ ## When to Use
337
+
338
+ Use when adding or validating JSON-LD structured data for a page and the supplied visible content supports the selected schema type.
104
339
 
105
340
  ## Limitations
106
- - Use this skill only when the task clearly matches the scope described above.
107
- - Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
108
- - Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
341
+
342
+ - Structured data must match visible, truthful page content; valid JSON-LD does not guarantee rich results, indexing, or display.
@@ -0,0 +1,8 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "AggregateRating",
4
+ "itemReviewed": {"@type": "Product", "name": "{{item_name}}"},
5
+ "ratingValue": "{{rating_value}}",
6
+ "bestRating": "{{best_rating}}",
7
+ "ratingCount": "{{rating_count}}"
8
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "Article",
4
+ "headline": "{{headline}}",
5
+ "description": "{{description}}",
6
+ "author": {"@type": "Person", "name": "{{author_name}}"},
7
+ "datePublished": "{{date_published}}",
8
+ "dateModified": "{{date_modified}}",
9
+ "mainEntityOfPage": "{{url}}"
10
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "BreadcrumbList",
4
+ "itemListElement": "{{item_list_element}}"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "FAQPage",
4
+ "mainEntity": "{{main_entity}}"
5
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "HowTo",
4
+ "name": "{{name}}",
5
+ "description": "{{description}}",
6
+ "step": "{{step}}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "Organization",
4
+ "name": "{{name}}",
5
+ "url": "{{url}}",
6
+ "logo": "{{logo}}"
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "Product",
4
+ "name": "{{name}}",
5
+ "description": "{{description}}",
6
+ "brand": {"@type": "Brand", "name": "{{brand_name}}"},
7
+ "offers": {"@type": "Offer", "url": "{{url}}", "priceCurrency": "{{price_currency}}", "price": "{{price}}", "availability": "{{availability}}"}
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "Review",
4
+ "itemReviewed": {"@type": "Product", "name": "{{item_name}}"},
5
+ "reviewRating": {"@type": "Rating", "ratingValue": "{{rating_value}}", "bestRating": "{{best_rating}}"},
6
+ "author": {"@type": "Person", "name": "{{author_name}}"},
7
+ "reviewBody": "{{review_body}}"
8
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "WebPage",
4
+ "name": "{{name}}",
5
+ "description": "{{description}}",
6
+ "url": "{{url}}"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "@context": "https://schema.org",
3
+ "@type": "WebSite",
4
+ "name": "{{name}}",
5
+ "url": "{{url}}",
6
+ "description": "{{description}}"
7
+ }
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: youtube-transcript-skills
3
+ description: "Fetch YouTube video transcripts, search videos/channels, browse channels, and extract playlists via the getyoutubetranscript.com API - free tier, no card required."
4
+ category: api-integration
5
+ risk: safe
6
+ source: community
7
+ source_repo: tubeagentkit/youtube-transcript-skills
8
+ source_type: community
9
+ date_added: "2026-09-13"
10
+ author: tubeagentkit
11
+ tags: [youtube, transcripts, video-search, channels, playlists, api]
12
+ tools: [claude, cursor, codex, gemini]
13
+ license: "MIT"
14
+ license_source: "https://github.com/tubeagentkit/youtube-transcript-skills/blob/main/LICENSE"
15
+ upstream: "https://github.com/tubeagentkit/youtube-transcript-skills"
16
+ ---
17
+
18
+ # YouTube Transcript
19
+
20
+ ## Overview
21
+
22
+ Fetches transcripts, search results, and playlist/channel data from YouTube
23
+ via the [getyoutubetranscript.com](https://getyoutubetranscript.com) REST
24
+ API, so an agent can summarize, quote, search, or analyze a video's actual
25
+ spoken content without the user copy-pasting it in by hand. No `yt-dlp` and
26
+ no Google API key required.
27
+
28
+ - `source_repo: tubeagentkit/youtube-transcript-skills`
29
+ - `source_type: community`
30
+
31
+ ## When to Use This Skill
32
+
33
+ - Use when the user wants a YouTube video's transcript fetched, summarized, quoted, or analyzed.
34
+ - Use when the user wants to search YouTube (globally, or within one channel by handle).
35
+ - Use when the user wants a channel handle resolved to a channel ID, or wants a channel's info and upload history.
36
+ - Use when the user wants the videos in a YouTube playlist.
37
+
38
+ ## How It Works
39
+
40
+ ### Step 1: Get an API key
41
+
42
+ Every call needs an API key: the `YOUTUBE_TRANSCRIPT_API_KEY` environment
43
+ variable, or one the user has already provided. If neither exists, the skill
44
+ can sign the user up for a free account (100 credits, no card required) via a
45
+ two-step email + verification-code flow against the API - only after the
46
+ user has explicitly given consent and an email address to use.
47
+
48
+ ### Step 2: Call the API
49
+
50
+ Base URL: `https://getyoutubetranscript.com/api/v1`. Send the key as
51
+ `Authorization: Bearer <API_KEY>` or `x-api-key: <API_KEY>`.
52
+
53
+ - `GET /transcript?v=<VIDEO_ID_OR_URL>&language=en` - fetch a transcript.
54
+ - `GET /search?q=<query>&type=video|channel` - search YouTube.
55
+ - `GET /resolve?handle=@name` - resolve a channel handle to a channel ID (free).
56
+ - `GET /channel/latest?channel=@name` - channel info and latest videos (free).
57
+ - `GET /channel/videos?channel=@name` - a channel's full upload history (paginated).
58
+ - `GET /channel/search?channel=@name&q=<query>` - search within a channel (paginated).
59
+ - `GET /playlist?list=<playlist ID or URL>` - playlist videos (paginated).
60
+
61
+ ### Step 3: Handle errors and pagination
62
+
63
+ Every error is JSON with a stable `code` (e.g. `TRANSCRIPT_NOT_FOUND`,
64
+ `PAYMENT_REQUIRED`, `RATE_LIMITED`) and a matching HTTP status - relay the
65
+ `message` field to the user rather than guessing at a fix. Paginated
66
+ endpoints return an opaque `data.continuation_token`; pass it back verbatim
67
+ as `continuation` to get the next page, `null` means no more pages.
68
+
69
+ ## Examples
70
+
71
+ ### Example 1: Summarize a video
72
+
73
+ ```bash
74
+ curl -s "https://getyoutubetranscript.com/api/v1/transcript?v=jNQXAC9IVRw&language=en" \
75
+ -H "Authorization: Bearer $YOUTUBE_TRANSCRIPT_API_KEY"
76
+ ```
77
+
78
+ ### Example 2: Browse a channel's uploads
79
+
80
+ ```bash
81
+ curl -s "https://getyoutubetranscript.com/api/v1/channel/videos?channel=@mkbhd" \
82
+ -H "Authorization: Bearer $YOUTUBE_TRANSCRIPT_API_KEY"
83
+ ```
84
+
85
+ ## Best Practices
86
+
87
+ - Do reuse an existing `YOUTUBE_TRANSCRIPT_API_KEY` before offering to create a new account.
88
+ - Do ask explicit consent before sending an email address anywhere during signup.
89
+ - Don't retry a `402 PAYMENT_REQUIRED` response - direct the user to top up instead.
90
+ - Don't hammer a `429 RATE_LIMITED` response in a retry loop - back off.
91
+
92
+ ## Limitations
93
+
94
+ - The transcript endpoint returns the full spoken text as one string; there is no per-line timestamp breakdown.
95
+ - This skill does not replace environment-specific validation, testing, or expert review.
96
+ - Stop and ask for clarification if required inputs, permissions, or safety boundaries are missing.
97
+
98
+ ## Security & Safety Notes
99
+
100
+ - This skill only makes outbound HTTPS requests to `getyoutubetranscript.com` endpoints, plus - during first-time setup - an email address the user explicitly provides. It runs no other shell commands and installs nothing.
101
+ - Never persist a newly issued API key to a shell profile or other file without the user's explicit confirmation first.
102
+
103
+ ## Common Pitfalls
104
+
105
+ - **Problem:** Assuming the transcript response includes timestamps.
106
+ **Solution:** Tell the user timestamps aren't available from this endpoint rather than inventing them.
107
+
108
+ ## Related Skills
109
+
110
+ - `@youtube-full` - an alternative YouTube transcript/search/channel/playlist skill backed by a different upstream API.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skills-collection",
3
- "version": "4.0.64",
3
+ "version": "4.0.66",
4
4
  "description": "OpenCode CLI plugin that automatically downloads and keeps skills up to date.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",