MCP 服务器

ScriptHaul

com.scripthaul/transcripts
媒体与内容 搜索与研究 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Retrieves YouTube transcripts, lists channel or playlist videos, and provides bulk transcript download links.

get_bulk_download_link
Get bulk download link
For a YouTube channel or playlist URL, returns a prefilled scripthaul.com link where the user can download every transcript as a ZIP for free. Bulk jobs cannot run over this keyless MCP server; they need the website. Costs 0 credits. Example prompt: "Give me a download link for every transcript in https://www.youtube.com/@TED."
只读 可访问外部资源 幂等
输入模式
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'YouTube channel or playlist URL (also accepts @handles).'}}}
输出模式
{'type': 'object', 'required': ['url', 'type'], 'properties': {'url': {'type': 'string', 'description': 'Prefilled scripthaul.com link that starts the bulk download.'}, 'type': {'enum': ['channel', 'playlist'], 'type': 'string', 'description': 'What the input resolved to.'}}}
get_latest_videos
Get latest channel or playlist videos
Read up to the newest 15 public RSS entries from exactly one channel or playlist, cached for ten minutes. Costs 0 credits and no cold-fetch allowance. Separate allowance: 30 requests per IP per day shared across channels and playlists, including cached reads; resets at midnight UTC. Use a UC channel ID, an already-resolved channel alias, or a public playlist ID/URL; an unknown handle must first be resolved on the keyed API. This is a recent window, not a complete inventory. Example prompt: "What did channel UCAuUUnT6oDeKwE6v1NGQxug upload recently?"
只读 可访问外部资源 幂等
输入模式
{'type': 'object', 'oneOf': [{'required': ['channel']}, {'required': ['playlist']}], 'properties': {'channel': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'UC channel ID, a /channel/UC… URL, or an already-resolved alias.'}, 'playlist': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Public YouTube playlist ID or URL.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['ok', 'videos'], 'properties': {'ok': {'const': True}, 'videos': {'type': 'array', 'items': {'type': 'object', 'required': ['video_id', 'title', 'published_at', 'url', 'cached'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': 'string'}, 'cached': {'type': 'boolean'}, 'video_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{11}$'}, 'published_at': {'type': 'string', 'format': 'date-time'}}}, 'maxItems': 15}}}
get_transcript
Get YouTube transcript
Fetch the transcript of a single YouTube video by URL or 11-character video ID. Serves the permanent cache instantly when available and otherwise fetches from YouTube (uncached fetches are limited per IP per day). Formats: clean text, timestamped, both, srt, vtt, md, json. Costs 0 credits. Example prompt: "Get the transcript of https://youtu.be/jNQXAC9IVRw."
只读 可访问外部资源 幂等
输入模式
{'type': 'object', 'required': ['video_url'], 'properties': {'format': {'enum': ['clean', 'timestamped', 'both', 'srt', 'vtt', 'md', 'json'], 'type': 'string', 'description': 'Output format. Default "clean" (plain text). "timestamped" prefixes each line with a timestamp; srt/vtt are subtitle files; json is structured.'}, 'language': {'type': 'string', 'description': 'Preferred caption language code such as "en" or "pt-BR". Optional; defaults to English with fallback to whatever track exists.'}, 'video_url': {'type': 'string', 'description': 'YouTube video URL (watch, youtu.be, shorts, embed, live) or a bare 11-character video ID.'}}}
输出模式
{'type': 'object', 'required': ['video_id', 'language', 'kind', 'format', 'characters'], 'properties': {'kind': {'enum': ['manual', 'asr'], 'type': 'string', 'description': 'manual = creator captions, asr = auto-generated.'}, 'title': {'type': 'string', 'description': 'Video title when known.'}, 'format': {'type': 'string', 'description': 'The output format that was rendered.'}, 'channel': {'type': 'string', 'description': 'Channel name when known.'}, 'language': {'type': 'string', 'description': 'Language of the DELIVERED track. May differ from the requested language when YouTube refuses on-the-fly translation; the text header says so when it happens.'}, 'video_id': {'type': 'string', 'description': 'The 11-character YouTube video ID.'}, 'characters': {'type': 'integer', 'description': 'Length of the rendered transcript text.'}}, 'description': 'Transcript metadata. The transcript text itself is delivered in the text content block, not duplicated here.'}
list_videos
List videos in a channel or playlist
List the videos of a YouTube channel or playlist: date, video ID, and title for each. Use this to answer questions about a channel — pick the relevant videos by title, then call get_transcript for each one. Listings are cached for a few hours; a fresh enumeration counts against the same daily allowance as uncached fetches. Costs 0 credits. Example prompt: "List the videos in https://www.youtube.com/@TED."
只读 可访问外部资源 幂等
输入模式
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'YouTube channel or playlist URL (also accepts @handles).'}, 'limit': {'type': 'integer', 'description': 'Maximum videos to list, newest first for channels. Default 100, maximum 200.'}}}
输出模式
{'type': 'object', 'required': ['type', 'video_count', 'shown', 'videos'], 'properties': {'type': {'enum': ['channel', 'playlist'], 'type': 'string'}, 'shown': {'type': 'integer', 'description': 'How many are included below (bounded by limit).'}, 'title': {'type': 'string', 'description': 'Channel or playlist title when known.'}, 'videos': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'published_at': {'type': 'string', 'description': 'ISO date when known.'}}}}, 'truncated': {'type': 'boolean', 'description': 'True when the source has more videos than one enumeration returns (500).'}, 'video_count': {'type': 'integer', 'description': 'Total videos in the listing snapshot.'}}}
已添加
get_latest_videos
2026年9月17日 12:37
已添加
get_bulk_download_link
2026年9月17日 12:37
已添加
list_videos
2026年9月17日 12:37
已添加
get_transcript
2026年9月17日 12:37