{"name":"com.hasdata/youtube","slug":"hasdata-youtube","title":"HasData YouTube","description":"Search YouTube and read video, channel and transcript data as JSON. No Google Cloud project.","url":"https://mcp.market/server/hasdata-youtube","rating":null,"grade":"A","score":93,"certified":false,"status":"active","category":"search","tags":["search","media"],"presence":{"score":41,"stars":6,"forks":0,"downloads_week":95,"last_push_at":"2026-10-12T14:35:12.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T03:51:10.703Z","last_ok_at":"2026-11-04T03:51:10.703Z","latency_ms":153},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/HasData/youtube-mcp","website":"https://hasdata.com/apis/youtube-scraper-api","version":"1.0.9","remotes":[{"type":"streamable-http","url":"https://mcp.hasdata.com/mcp?apis=youtube","headers":[{"description":"HasData API key, created at app.hasdata.com. 1,000 free credits every month, no card.","isRequired":true,"isSecret":true,"name":"x-api-key"}]}],"packages":[{"registryType":"npm","identifier":"@hasdata/youtube-mcp","version":"1.0.9","transport":{"type":"stdio"},"environmentVariables":[{"description":"HasData API key, created at app.hasdata.com. 1,000 free credits every month, no card.","isRequired":true,"isSecret":true,"name":"HASDATA_API_KEY"}]},{"registryType":"pypi","identifier":"hasdata-youtube-mcp","version":"1.0.9","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"HasData API key, created at app.hasdata.com. 1,000 free credits every month, no card.","isRequired":true,"isSecret":true,"name":"HASDATA_API_KEY"}]}],"tools":[{"name":"hasdata_youtube_channel_getYoutubeChannel","description":"Get YouTube Channel Data\n\nFetches a YouTube channel by its ID (`UC…`) or handle (`@name`) and returns structured data for any channel tab — `featured`/Home, `videos`, `shorts`, `streams`, `playlists`, `posts`, `podcasts`, `releases`, `store` (desktop only), `about`. Returns channel identity (title, description, avatar, banner), subscriber count, country, join date, total-view count and social links (on the `about` tab), and the items on the requested tab (videos with views and publish date, playlists, posts, podcasts, etc.). Use to monitor competitor channels, build creator/brand directories, track posting cadence and growth signals, or feed `videoId` into the YouTube Video / Transcript endpoints.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"channelId":{"type":"string","description":"YouTube channel identifier — either the canonical channel ID (`UC…`, 24 chars) or the public handle starting with `@` (e.g. `@PewDiePie`). Legacy `/c/<custom>` and `/user/<name>` URL slugs are also accepted."},"tab":{"type":"string","enum":["featured","videos","shorts","streams","playlists","posts","community","podcasts","releases","about","store"],"description":"Channel tab to scrape. Each tab returns a different content shape:\n- `featured` (default) — channel Home page (channel trailer + curated rows)\n- `videos` — uploaded long-form videos\n- `shorts` — Shorts feed\n- `streams` — past and upcoming live streams\n- `playlists` — created and saved playlists\n- `posts` / `community` — community posts\n- `podcasts` — podcast episodes\n- `releases` — music releases\n- `about` — channel description, links, stats\n- `store` — channel merch\n"},"gl":{"type":"string","description":"The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`."},"hl":{"type":"string","description":"The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`."},"deviceType":{"type":"string","enum":["desktop","mobile"],"description":"Device type for the request."},"paginationToken":{"type":"string","description":"Token returned in the previous response to fetch the next page of results."}},"required":["channelId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"hasdata_youtube_search_getYoutubeSearchResults","description":"Get YouTube Search Results\n\nSearches YouTube for a query and returns the full results page split into `videoResults` (videoId, title, views, length, publish date, chapters, channel info, extensions like 4K/CC), `channelResults` (channelId, handle, subscribers, verified flag), `shortsResults` / `inlineShortsResults`, themed `shelves` (e.g. 'People also watched', 'Latest from <creator>'), `adsResults` and `sponsoredResults` (advertiser, landing URL, position), plus `searchInformation.totalResults`. Each block preserves its `positionOnPage` so the original layout is reconstructable. Use for competitor and topic monitoring, brand-mention tracking, ad-placement intelligence, creator discovery, trend research, or to feed `videoId` / `channelId` into the YouTube Video, Channel, or Transcript endpoints.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"type":"string","description":"Free-text search query, exactly as a user would type it into the YouTube search box."},"gl":{"type":"string","description":"The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`."},"hl":{"type":"string","description":"The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`."},"deviceType":{"type":"string","enum":["desktop","mobile"],"description":"Device type for the request."},"sp":{"type":"string","description":"Raw YouTube `sp` filter token, copied verbatim from a YouTube search URL (e.g. `EgIQAQ%253D%253D`). When provided, it overrides `sortBy`, `date`, `videoType`, `length`, and `filters[]`. Use only if you need a YouTube-side filter that this API does not expose as a structured parameter."},"sortBy":{"type":"string","enum":["relevance","popularity","rating","date","views"],"description":"Sort order applied to the results page. `relevance` (default) — best match for the query; `date` — newest first; `views` — most viewed first; `rating` — highest rated first; `popularity` — trending/most popular."},"date":{"type":"string","enum":["hour","today","week","month","year"],"description":"Limit results to videos uploaded within this time window relative to now."},"videoType":{"type":"string","enum":["video","shorts","channel","playlist","movie"],"description":"Restrict results to a single YouTube content type — regular videos, Shorts, channels, playlists, or movies."},"length":{"type":"string","enum":["under4","between420","plus20"],"description":"Filter by video duration bucket:\n- `under4` — under 4 minutes\n- `between420` — 4 to 20 minutes\n- `plus20` — over 20 minutes\n"},"filters__":{"type":"array","items":{"type":"string","enum":["hd","subtitles","cc","d3","live","bought","k4","d360","location","hdr","vr180"]},"description":"Feature flags to require on results. Multiple values are combined with AND (every flag must apply).\n\n- `hd` — HD quality\n- `k4` — 4K quality\n- `hdr` — HDR\n- `subtitles` — has subtitles/closed captions\n- `cc` — Creative Commons license\n- `d3` — 3D video\n- `d360` — 360° video\n- `vr180` — VR180 video\n- `live` — currently live\n- `bought` — purchased/paid content\n- `location` — has a geographic location tag\n"},"paginationToken":{"type":"string","description":"Token returned in the previous response to fetch the next page."}},"required":["q"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"hasdata_youtube_transcript_getYoutubeTranscript","description":"Get YouTube Video Transcript\n\nReturns the timed transcript (subtitles) of a YouTube video by its 11-character `videoId`. `languageCode` selects the track (e.g. `en`, `de-DE`, `pt-BR`); `type=asr` requests the auto-generated speech-recognition track. Each segment in `transcript[]` carries `startMs`, `endMs`, `snippet`, and a formatted `startTimeText`. The response also includes `availableTranscripts[]` listing every track on the video (language name + code, `type: asr` for auto-generated, `selected: true` for the one returned) so callers can discover what else is available. Use to feed a video's spoken content into RAG/LLM pipelines, generate summaries or chapter outlines, build searchable archives, run translation or accessibility workflows, or analyze talking points across a creator's catalog (pair with the YouTube Channel endpoint to enumerate videos, then fetch transcripts).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"v":{"type":"string","description":"11-character YouTube video ID — the value of the `v=` query parameter in a watch URL (e.g. `dQw4w9WgXcQ` for `https://www.youtube.com/watch?v=dQw4w9WgXcQ`)."},"languageCode":{"type":"string","description":"BCP-47 / YouTube language code of the transcript track to return (e.g. `en`, `de`, `en-US`, `pt-BR`). Must match a track that the video actually has. When omitted, the video's default language track is returned."},"type":{"type":"string","enum":["asr"],"description":"Set to `asr` to fetch the YouTube auto-generated (speech-recognition) track. Omit to fetch the human-authored track for `languageCode` when one exists."}},"required":["v"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"hasdata_youtube_video_getYoutubeVideo","description":"Get YouTube Video Data\n\nFetches a single YouTube video by its 11-character `videoId`. Returns title, thumbnail, raw + normalized views and likes, `lengthSeconds`, publish date, category, keywords/tags, `isFamilySafe` / `isUnlisted` flags, the uploading channel (id, link, subscribers, avatar), the full description with parsed links and hashtags, available `captions` tracks (with `kind: asr` for auto-generated), Content-ID `music` matches (song/artist/album), creator `socialLinks`, and the `relatedVideos`, `endScreenVideos`, and `relatedShorts` rails. Use to enrich a video URL with metadata, monitor view/like growth, extract music or sponsor/affiliate links, gather features for recommender or RAG pipelines, or detect caption tracks before calling the YouTube Transcript endpoint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"v":{"type":"string","description":"11-character YouTube video ID — the value of the `v=` query parameter in a watch URL (e.g. `dQw4w9WgXcQ` for `https://www.youtube.com/watch?v=dQw4w9WgXcQ`)."},"gl":{"type":"string","description":"The two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`."},"hl":{"type":"string","description":"The two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`."},"deviceType":{"type":"string","enum":["desktop","mobile"],"description":"Device type for the request."}},"required":["v"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":93,"grade":"A","scanned_at":"2026-10-15T05:16:44.975Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-15T05:16:44.908Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned","9 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 379ms"]},"poisoning":{"score":15,"max":15,"notes":["4 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 3 days ago"]},"identity":{"score":10,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.hasdata.com/mcp?apis=youtube","reachable":true,"authRequired":false,"latencyMs":379,"serverInfo":{"name":"hasdata-mcp-api-server","version":"1.0.0"}}],"packages":[{"registryType":"npm","identifier":"@hasdata/youtube-mcp","version":"1.0.9","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-09-24T11:37:41.230Z","repositoryUrl":"git+https://github.com/HasData/youtube-mcp.git","weeklyDownloads":50},{"registryType":"pypi","identifier":"hasdata-youtube-mcp","version":"1.0.9","found":true,"weeklyDownloads":45,"license":"MIT","dependencyCount":2,"publishedAt":"2026-09-24T11:36:21.663089Z","repositoryUrl":"https://github.com/HasData/youtube-mcp"}],"repo":{"found":true,"owner":"HasData","repo":"youtube-mcp","archived":false,"pushedAt":"2026-10-12T14:35:12Z","stars":6,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/104488373?v=4","ownerCreatedAt":"2022-04-27T07:07:45Z","license":"MIT"},"icon":{"url":"https://hasdata.com/favicon.svg","source":"registry"},"presence":{"stars":6,"forks":0,"downloadsWeek":95,"license":"MIT","lastPushAt":"2026-10-12T14:35:12.000Z","score":41}}}},"grade_history":[],"reviews":[]}