| import { z } from 'zod'; |
| export const ytToolkit = { |
| youtube_search: { |
| name: 'youtube_search' as const, |
| description: `Search for YouTube videos by keyword or phrase. |
| - Required: query (search terms to find videos) |
| - Optional: maxResults (number of videos to return, 1-50, default: 5) |
| - Returns: List of videos with titles, descriptions, and URLs |
| - Use for: Finding specific videos, exploring content, research |
| Example: query="cooking pasta tutorials" maxResults=3` as const, |
| schema: z.object({ |
| query: z.string().describe('Search query terms'), |
| maxResults: z.number().int().min(1).max(50).optional().describe('Number of results (1-50)'), |
| }), |
| }, |
| youtube_info: { |
| name: 'youtube_info' as const, |
| description: `Get detailed metadata and statistics for a specific YouTube video. |
| - Required: url (full YouTube URL or video ID) |
| - Returns: Video title, description, view count, like count, comment count |
| - Use for: Getting video metrics and basic metadata |
| - DO NOT USE FOR VIDEO SUMMARIES, USE TRANSCRIPTS FOR COMPREHENSIVE ANALYSIS |
| - Accepts both full URLs and video IDs |
| Example: url="https://youtube.com/watch?v=abc123" or url="abc123"` as const, |
| schema: z.object({ |
| url: z.string().describe('YouTube video URL or ID'), |
| }), |
| } as const, |
| youtube_comments: { |
| name: 'youtube_comments', |
| description: `Retrieve top-level comments from a YouTube video. |
| - Required: url (full YouTube URL or video ID) |
| - Optional: maxResults (number of comments, 1-50, default: 10) |
| - Returns: Comment text, author names, like counts |
| - Use for: Sentiment analysis, audience feedback, engagement review |
| Example: url="abc123" maxResults=20`, |
| schema: z.object({ |
| url: z.string().describe('YouTube video URL or ID'), |
| maxResults: z |
| .number() |
| .int() |
| .min(1) |
| .max(50) |
| .optional() |
| .describe('Number of comments to retrieve'), |
| }), |
| } as const, |
| youtube_transcript: { |
| name: 'youtube_transcript', |
| description: `Fetch and parse the transcript/captions of a YouTube video. |
| - Required: url (full YouTube URL or video ID) |
| - Returns: Full video transcript as plain text |
| - Use for: Content analysis, summarization, translation reference |
| - This is the "Go-to" tool for analyzing actual video content |
| - Attempts to fetch English first, then German, then any available language |
| Example: url="https://youtube.com/watch?v=abc123"`, |
| schema: z.object({ |
| url: z.string().describe('YouTube video URL or ID'), |
| }), |
| } as const, |
| } as const; |
|
|