Skip to main content
Glama
dev.socialscrape/socialscrape

dev.socialscrape/socialscrape

Official

YouTube

youtube
Read-onlyIdempotent

Retrieve channel, video, playlist, comment, transcript, advertiser, and search data from the video platform by selecting a resource and passing its parameters; use cursors for paging.

Instructions

Data from YouTube: profiles, posts and videos, collections, transcripts, advertisers, comments.

Pick a resource, then pass its parameters as top-level arguments (extras in params). Each call costs the credits shown below and the result says what was charged and what is left; failures are free. List resources return a cursor: pass it back unchanged for the next page. Pass max_age_days to accept a cached copy for free.

Resources:

  • channel(handle|id|url): YouTube channel details. 1 credit.

  • channel.community_posts(handle|id|url): YouTube channel community posts. 1 credit. Paged.

  • channel.lives(handle|id|url): YouTube channel live streams. 1 credit. Paged.

  • channel.playlists(handle|id|url): YouTube channel playlists. 1 credit. Paged.

  • channel.search(query, handle|id|url): Search inside a YouTube channel. 1 credit. Paged.

  • channel.shorts(handle|id|url): YouTube channel Shorts. 1 credit. Paged. Optional: include_extras.

  • channel.videos(handle|id|url): YouTube channel videos. 1 credit. Paged. Optional: include_extras.

  • community_post(url): YouTube community post. 1 credit.

  • playlist(url|id): YouTube playlist videos. 1 credit. Paged.

  • search(query): YouTube search. 1 credit. Paged. Optional: type, upload_date, duration, include_extras.

  • search.hashtag(hashtag): YouTube videos by hashtag. 1 credit. Paged. Optional: type.

  • search.typeahead(query): YouTube search suggestions. 1 credit. Paged.

  • shorts.trending(): Trending YouTube Shorts. 1 credit. Paged.

  • video(url|id): YouTube video or Short details. 1 credit.

  • video.comment.replies(): YouTube comment replies. 1 credit. Paged. Optional: comment_id.

  • video.comments(url|id): YouTube video comments. 1 credit. Paged.

  • video.sponsors(url|id): YouTube video sponsors. 1 credit. Paged.

  • video.transcript(url|id): YouTube video transcript. 1 credit (captions); AI transcription 1 credit up to 2 minutes, then 5 per started minute of the whole video. Optional: original_audio.

Input Schema

NameRequiredDescriptionDefault
idNoThe platform's id for the item, where a URL is not used. Used by: channel, channel.community_posts, channel.lives, channel.playlists, channel.search, channel.shorts, ...
urlNoURL of the item the resource is about (profile, post, video, event...). Used by: channel, channel.community_posts, channel.lives, channel.playlists, channel.search, channel.shorts, ...
sortNoOrder of results; changing it restarts the cursor chain. Used by: channel.shorts, channel.videos, search, video.comments. Allowed values vary by resource (describe shows them)
typeNoKind of result. Used by: search, search.hashtag. Allowed values vary by resource (describe shows them)
queryNoSearch terms. Used by: channel.search, search, search.typeahead
cursorNoOpaque cursor from the previous page; pass it back unchanged
handleNoChannel handle, with or without @. Used by: channel, channel.community_posts, channel.lives, channel.playlists, channel.search, channel.shorts, ...
paramsNoAny other parameter for the chosen resource, by name, e.g. {"start_date": "2026-01-01"}. Optional parameters of each resource are in the tool description; call describe for types and allowed values.
regionNoTwo-letter country code (ISO 3166-1) for results that vary by country. Used by: search, shorts.trending
languageNoLanguage code, e.g. en. Used by: video, video.sponsors, video.transcript
resourceYesWhich YouTube data to fetch. The tool description lists what each needs.
max_age_daysNoAccept a cached copy fetched within this many days, for 0 credits (0 to 30).
include_extrasNoAlso fetch length, publish date, likes and description per Short (slower, more errors). Used by: channel.shorts, channel.videos, search

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only, open-world, idempotent annotations, the description discloses important behavior: per-resource credit costs, free failures, cache acceptance via max_age_days, cursor pagination, and that include_extras is slower and more error-prone. It also explains the nonlinear transcript pricing model, which is critical for an agent deciding whether to call that resource.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but the length is justified by 18 resources. It is front-loaded with invocation rules and cost/cursor behavior, then uses a compact resource list with only essential per-resource details. There is little wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, 13 top-level parameters, nested `params`, and no output schema, the description provides enough invocation and behavioral context to call the tool correctly. It covers resource selection, required arguments, paging, caching, credits, and special pricing cases, leaving only minor output-shape details unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is already 100%, the description adds substantial meaning by mapping each resource to its required inputs, noting which resources are paged, identifying optional parameters such as include_extras, and directing extra resource-specific parameters into `params`. This goes well beyond the schema's generic parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as YouTube data and enumerates every supported resource, from channels and videos to transcripts and comments. This is specific enough for an agent to understand the tool's domain and capabilities, and to distinguish it from non-YouTube siblings such as tiktok or instagram.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains exactly how to invoke the tool: choose a `resource`, pass its parameters at top level, put extras in `params`, and use `max_age_days` for free cached results. It also lists required arguments and paging behavior per resource. However, it does not explain when to choose this tool versus overlapping siblings such as get_transcript, search, get_profile, or get_comments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.