YouTube MCP Server for Cloudflare Workers
Test YouTube tools directly in your browser. Select a tool and provide inputs to see the results.
Create a free account to test YouTube tools interactively. No credit card required.
youtube_unsubscribeUnsubscribe from a YouTube channel. Requires OAuth authentication. Args: - subscriptionId: The subscription ID (not the channel ID) Returns: Confirmation of unsubscription.
youtube_list_activitiesList channel activity events (uploads, likes, comments, etc.). Args: - channelId: Channel ID to get activities for (or use mine=true) - mine: Get activities for authenticated user (requires OAuth) - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - publishedAfter: Filter activities after date (RFC 3339) - publishedBefore: Filter activities before date (RFC 3339) - regionCode: Filter by region code - format: Response format Returns: Paginated list of activity events.
youtube_list_captionsList caption tracks for a video. Requires OAuth authentication for videos you own, or API key for public videos. Args: - videoId: The video ID - parts: Resource parts to include - format: Response format Returns: List of caption tracks.
youtube_download_captionDownload a caption track. Requires OAuth authentication. Args: - captionId: The caption track ID - format: Caption format (sbv, scc, srt, ttml, vtt) - language: Translate to language code (optional) Returns: Caption track content.
youtube_insert_captionUpload a caption track for a video. Requires OAuth authentication. You can only add captions to your own videos. Args: - videoId: The video ID - language: Caption language code (e.g., 'en', 'es', 'fr') - name: Caption track name - captionData: The caption content (SRT, VTT, etc.) - isDraft: Whether this is a draft (optional) Returns: Created caption track.
youtube_update_captionUpdate a caption track. Requires OAuth authentication. Args: - captionId: The caption track ID - isDraft: Whether this is a draft (optional) - captionData: New caption content (optional) Returns: Updated caption track.
youtube_delete_captionDelete a caption track. Requires OAuth authentication. You can only delete captions on your own videos. Args: - captionId: The caption track ID Returns: Confirmation of deletion.
youtube_list_video_categoriesList video categories available for a region. Args: - regionCode: ISO 3166-1 alpha-2 country code (default: US) - hl: Language code for localization (optional) - format: Response format Returns: List of video categories with IDs and titles.
youtube_list_video_abuse_report_reasonsList reasons available for reporting abusive videos. Args: - hl: Language code for localization (optional) - format: Response format Returns: List of abuse report reasons with IDs and labels.
youtube_list_channel_sectionsList channel sections (shelves) for a channel. Args: - channelId: The channel ID - parts: Resource parts to include - format: Response format Returns: List of channel sections.
youtube_insert_channel_sectionAdd a channel section (shelf) to your channel. Requires OAuth authentication. Maximum 10 sections per channel. Section types: allPlaylists, completedEvents, liveEvents, multipleChannels, multiplePlaylists, popularUploads, recentUploads, singlePlaylist, subscriptions, upcomingEvents Args: - type: Section type - title: Section title (optional for some types) - position: Section position (0-indexed) - playlistIds: Playlist IDs (for multiplePlaylists or singlePlaylist) - channelIds: Channel IDs (for multipleChannels) Returns: Created channel section.
youtube_update_channel_sectionUpdate a channel section. Requires OAuth authentication. Args: - sectionId: The section ID to update - type: Section type - title: Section title - position: Section position (0-indexed) - playlistIds: Playlist IDs - channelIds: Channel IDs Returns: Updated channel section.
youtube_delete_channel_sectionDelete a channel section. Requires OAuth authentication. Args: - sectionId: The section ID to delete Returns: Confirmation of deletion.
youtube_get_my_channelGet the authenticated user's YouTube channel. Requires OAuth authentication. Args: - parts: Resource parts to include (snippet, contentDetails, statistics, status, brandingSettings, topicDetails, auditDetails) - format: Response format Returns: Channel details for the authenticated user.
youtube_get_channelGet a YouTube channel by ID. Args: - channelId: The YouTube channel ID - parts: Resource parts to include - format: Response format Returns: Channel details.
youtube_list_channelsGet multiple YouTube channels by ID. Args: - channelIds: Array of channel IDs (max 50) - parts: Resource parts to include - format: Response format Returns: List of channel details.
youtube_get_channel_by_usernameGet a YouTube channel by username. Args: - username: The YouTube username - parts: Resource parts to include - format: Response format Returns: Channel details.
youtube_update_channelUpdate a YouTube channel's branding settings. Requires OAuth authentication. You can only update your own channel. Args: - channelId: The channel ID to update - description: New channel description - keywords: Channel keywords (space-separated) - defaultLanguage: Default language code - country: Country code - unsubscribedTrailer: Video ID for unsubscribed viewer trailer Returns: Updated channel details.
youtube_search_channelsSearch for YouTube channels. Args: - query: Search query string - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - order: Sort order (date, rating, relevance, title, videoCount, viewCount) - regionCode: ISO country code - format: Response format Returns: Search results with channel snippets.
youtube_list_comment_threadsList comment threads (top-level comments with replies) for a video or channel. Args: - videoId: Video ID to get comments for - channelId: Channel ID to get comments for (alternative to videoId) - allThreadsRelatedToChannelId: Get all threads related to a channel - maxResults: Maximum results to return (1-100) - pageToken: Pagination token - order: Sort order (time, relevance) - searchTerms: Filter by search terms - moderationStatus: Filter by moderation status (requires auth) - format: Response format Returns: Paginated list of comment threads.
youtube_get_comment_threadGet a specific comment thread by ID. Args: - commentThreadId: The comment thread ID - parts: Resource parts to include - format: Response format Returns: Comment thread with top-level comment and replies.
youtube_post_commentPost a new top-level comment on a video or channel. Requires OAuth authentication. Args: - channelId: The channel ID (required) - videoId: The video ID (optional - if not provided, posts channel comment) - text: Comment text Returns: Created comment thread.
youtube_list_comment_repliesList replies to a comment. Args: - parentId: The parent comment ID - maxResults: Maximum results to return (1-100) - pageToken: Pagination token - format: Response format Returns: Paginated list of reply comments.
youtube_reply_to_commentReply to an existing comment. Requires OAuth authentication. Args: - parentId: The parent comment ID to reply to - text: Reply text Returns: Created reply comment.
youtube_update_commentUpdate an existing comment. Requires OAuth authentication. You can only update your own comments. Args: - commentId: The comment ID to update - text: New comment text Returns: Updated comment.
youtube_delete_commentDelete a comment. Requires OAuth authentication. You can only delete your own comments or comments on your videos. Args: - commentId: The comment ID to delete Returns: Confirmation of deletion.
youtube_set_comment_moderation_statusSet the moderation status of comments. Requires OAuth authentication. You can only moderate comments on your own videos. Args: - commentIds: Array of comment IDs to moderate - moderationStatus: New moderation status (heldForReview, published, rejected) - banAuthor: Whether to ban the author from commenting (optional) Returns: Confirmation of moderation.
youtube_list_languagesList application languages supported by YouTube. Args: - hl: Language code for response localization (optional) - format: Response format Returns: List of supported languages with codes and names.
youtube_list_regionsList content regions supported by YouTube. Args: - hl: Language code for response localization (optional) - format: Response format Returns: List of supported regions with codes and names.
youtube_list_membersList channel members (sponsors). Requires OAuth authentication. Only available for channels with memberships enabled. Args: - mode: List mode (all_current, updates) - maxResults: Maximum results to return (1-1000) - pageToken: Pagination token - hasAccessToLevel: Filter by membership level ID - filterByMemberChannelId: Filter by specific member channel ID - format: Response format Returns: Paginated list of channel members.
youtube_list_membership_levelsList membership levels for the authenticated channel. Requires OAuth authentication. Only available for channels with memberships enabled. Args: - parts: Resource parts to include - format: Response format Returns: List of membership levels.
youtube_list_playlist_itemsList videos in a playlist. Args: - playlistId: The playlist ID - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - parts: Resource parts to include - format: Response format Returns: Paginated list of playlist items (videos).
youtube_add_video_to_playlistAdd a video to a playlist. Requires OAuth authentication. You can only add videos to your own playlists. Args: - playlistId: The playlist ID - videoId: The video ID to add - position: Position in playlist (0-indexed, optional) Returns: Created playlist item.
youtube_update_playlist_itemUpdate a playlist item's position. Requires OAuth authentication. Args: - playlistItemId: The playlist item ID - playlistId: The playlist ID - videoId: The video ID - position: New position in playlist (0-indexed) Returns: Updated playlist item.
youtube_remove_from_playlistRemove a video from a playlist. Requires OAuth authentication. You can only remove videos from your own playlists. Args: - playlistItemId: The playlist item ID (not the video ID) Returns: Confirmation of removal.
youtube_list_my_playlistsList the authenticated user's playlists. Requires OAuth authentication. Args: - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - parts: Resource parts to include - format: Response format Returns: Paginated list of playlists.
youtube_list_channel_playlistsList playlists for a specific channel. Args: - channelId: The channel ID - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - parts: Resource parts to include - format: Response format Returns: Paginated list of playlists.
youtube_get_playlistGet a playlist by ID. Args: - playlistId: The playlist ID - parts: Resource parts to include - format: Response format Returns: Playlist details.
youtube_create_playlistCreate a new playlist. Requires OAuth authentication. Args: - title: Playlist title - description: Playlist description - privacyStatus: Privacy status (private, public, unlisted) - defaultLanguage: Default language code Returns: Created playlist details.
youtube_update_playlistUpdate a playlist. Requires OAuth authentication. You can only update your own playlists. Args: - playlistId: Playlist ID to update - title: New title - description: New description - privacyStatus: New privacy status - defaultLanguage: New default language Returns: Updated playlist details.
youtube_delete_playlistDelete a playlist. Requires OAuth authentication. You can only delete your own playlists. Args: - playlistId: Playlist ID to delete Returns: Confirmation of deletion.
youtube_search_playlistsSearch for YouTube playlists. Args: - query: Search query string - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - channelId: Filter by channel - format: Response format Returns: Search results with playlist snippets.
youtube_searchSearch YouTube for videos, channels, or playlists. Args: - query: Search query string - type: Resource type to search (video, channel, playlist) - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - order: Sort order (date, rating, relevance, title, videoCount, viewCount) - channelId: Filter by channel - publishedAfter: Filter by publish date (RFC 3339) - publishedBefore: Filter by publish date (RFC 3339) - regionCode: ISO country code - relevanceLanguage: Relevance language code - safeSearch: Safe search setting (moderate, none, strict) - eventType: Filter live events (completed, live, upcoming) - location: Geographic coordinates (lat,lng) - locationRadius: Search radius (e.g., "100km", "50mi") - topicId: Freebase topic ID - videoCategoryId: Video category ID - videoDefinition: Filter by definition (any, high, standard) - videoDimension: Filter by dimension (2d, 3d, any) - videoDuration: Filter by duration (any, long, medium, short) - videoEmbeddable: Filter embeddable videos (any, true) - videoLicense: Filter by license (any, creativeCommon, youtube) - videoType: Filter by type (any, episode, movie) - format: Response format Returns: Search results with resource snippets.
youtube_list_my_subscriptionsList the authenticated user's subscriptions. Requires OAuth authentication. Args: - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - parts: Resource parts to include - format: Response format Returns: Paginated list of subscriptions.
youtube_list_my_subscribersList the authenticated user's subscribers. Requires OAuth authentication. Args: - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - parts: Resource parts to include - format: Response format Returns: Paginated list of subscribers.
youtube_subscribeSubscribe to a YouTube channel. Requires OAuth authentication. Args: - channelId: The channel ID to subscribe to Returns: Created subscription.
youtube_get_videoGet details for a YouTube video by ID. Args: - videoId: The YouTube video ID - parts: Resource parts to include (snippet, contentDetails, statistics, status, player, topicDetails, recordingDetails, liveStreamingDetails) - format: Response format ('json' or 'markdown') Returns: Video details including title, description, statistics, and more.
youtube_list_videosGet details for multiple YouTube videos by ID. Args: - videoIds: Array of YouTube video IDs (max 50) - parts: Resource parts to include - format: Response format Returns: List of video details.
youtube_search_videosSearch for YouTube videos. Args: - query: Search query string - maxResults: Maximum results to return (1-50) - pageToken: Pagination token - order: Sort order (date, rating, relevance, title, viewCount) - channelId: Filter by channel - publishedAfter: Filter by publish date (RFC 3339) - publishedBefore: Filter by publish date (RFC 3339) - regionCode: ISO country code - videoDuration: Filter by duration (any, long, medium, short) - videoDefinition: Filter by definition (any, high, standard) - videoType: Filter by type (any, episode, movie) - eventType: Filter live events (completed, live, upcoming) - format: Response format Returns: Search results with video snippets.
youtube_update_videoUpdate a YouTube video's metadata. Requires OAuth authentication. You can only update videos on your own channel. Args: - videoId: The video ID to update - title: New title - description: New description - tags: New tags array - categoryId: New category ID - privacyStatus: New privacy status (private, public, unlisted) - embeddable: Whether the video can be embedded - madeForKids: Whether the video is made for kids Returns: Updated video details.
youtube_delete_videoDelete a YouTube video. Requires OAuth authentication. You can only delete videos on your own channel. Args: - videoId: The video ID to delete Returns: Confirmation of deletion.
youtube_rate_videoRate a YouTube video (like, dislike, or remove rating). Requires OAuth authentication. Args: - videoId: The video ID to rate - rating: Rating to apply (like, dislike, none) Returns: Confirmation of rating.
youtube_get_video_ratingGet your rating for one or more videos. Requires OAuth authentication. Args: - videoIds: Array of video IDs to check Returns: Your rating for each video.
youtube_report_video_abuseReport a video for abusive content. Requires OAuth authentication. Args: - videoId: The video ID to report - reasonId: Abuse reason ID (from youtube_list_video_abuse_report_reasons) - secondaryReasonId: Secondary reason ID (optional) - comments: Additional comments (optional) Returns: Confirmation of report.
youtube_unsubscribe{
"subscriptionId": "example_subscriptionId"
}youtube_list_activities{
"mine": true,
"format": "example_format",
"channelId": "example_channelId",
"pageToken": "example_pageToken",
"maxResults": true,
"regionCode": "example_regionCode",
"publishedAfter": "example_publishedAfter",
"publishedBefore": "example_publishedBefore"
}youtube_list_captions{
"parts": true,
"format": "example_format",
"videoId": "example_videoId"
}