Single tool with well-structured schema and clear naming. Tool name 'get_youtube_transcript' correctly starts with action verb and reflects functionality. Input schema is complete with proper type definitions, descriptions, examples, and pattern validation. Description is adequate (56 chars) but could be more detailed regarding output format. Parameter descriptions are present and include constraints (language pattern). However, output schema is not explicitly documented, return type is declared as 'str' but the actual structure/format of the transcript is not described for the LLM. Error handling exists but lacks recovery guidance. Overall solid foundation with room for output schema documentation and error messaging improvements.
Get the transcript of a YouTube video
Output schema not documented. Tool returns raw string transcript but LLM cannot infer the format (plain text, structured, line-breaks, timestamps included?). This violates pattern:tool requirement to document output schemas so downstream tool composition works.
Error messages lack recovery guidance. ValueError exceptions are re-raised as-is without actionable next steps. Per pattern:recovery-guide, errors should tell the LLM what to do (e.g., 'Video ID invalid, try with a direct URL like https://youtube.com/watch?v=VIDEO_ID').
Tool description is minimal (56 chars). Baseline is 194 chars. Should explain: What the output contains (full transcript, timestamps?), when to use it (e.g., 'to extract content for summarization or citation'), and any limitations (e.g., 'only works with videos that have transcripts available').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 63 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 49 | - | v1 |
No validation that the YouTube API call will succeed before returning. If video has no transcript, the error from YouTubeTranscriptApi is caught and re-raised but with minimal context. Should detect this scenario and return a clear message like 'No transcript available for this video. Try another language code via the lang parameter.'