Youtube Search

zeropointrepo/youtube-skills/clawhub/youtube-search

作者 zeropointrepo4f7994b94e7d无许可证1K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库2天前更新

Use when the user wants to find YouTube content on any topic: searching for videos or channels, finding creators who cover a subject, discovering tutorials, talks, or expert discussions, or looking up a channel by name or handle. Also use proactively when the user wants to research a topic and YouTube is a good source. Not for account management or written-source-only research.

AI 生成的概览

通过 TranscriptAPI 服务搜索 YouTube 视频、频道、播放列表和影片,并获取视频文字稿。

功能
该技能说明如何调用 TranscriptAPI 接口,在 YouTube 全局或指定频道内搜索,将频道句柄解析为频道 ID,并获取视频文字稿。它列出了查询词、类型、排序、上传时间、时长、特性、数量上限和翻页令牌等请求参数,并给出示例请求和 JSON 响应结构。内容还涵盖必需的请求头、错误码以及先搜索再取文字稿的流程。
适用场景
当用户想查找某个主题的 YouTube 视频、频道、播放列表或创作者,按名称或句柄查找频道,或需要以 YouTube 作为来源进行主题调研时使用。它不适用于账号管理,也不适用于仅依赖文字资料的调研。
运行要求
需要能访问 transcriptapi.com 的网络连接,以及 TRANSCRIPT_API_KEY 环境变量(文中提到有 100 额度的免费方案)。请求需带 Authorization bearer 请求头和 User-Agent 请求头。无需额外运行时或依赖,技能不包含脚本,仅附带一份关于认证设置的参考文档。

YouTube Search

Search YouTube and fetch transcripts via TranscriptAPI.com.

Setup

If $TRANSCRIPT_API_KEY is not set, read references/auth-setup.md [blocked] and follow the instructions there to get and store the key.

Required Headers

Every request needs two headers:

  • Authorization: Bearer $TRANSCRIPT_API_KEY
  • User-Agent: your agent's name and version if known (e.g. HermesAgent/0.11.0, ClaudeCode/1.0). Version is optional — agent name alone is fine. Do not omit this header or send a bare default — Cloudflare will return a 403 (error code 1010) and block the request.

API Reference

Full OpenAPI spec: transcriptapi.com/openapi.json — consult this for the latest parameters and schemas.

GET /api/v2/youtube/search — 1 credit/page

Search YouTube globally for videos, channels, playlists, or movies.

bash
curl -s "https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=video&limit=20" \  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \  -H "User-Agent: YourAgent/1.0"
ParamRequiredDefaultValidation
qconditional—1-200 chars (trimmed), first page
typenovideovideo, channel, playlist, movie (first page)
sortnorelevancerelevance or views (first page)
upload_dateno—hour, today, week, month, year — videos, first page
durationno—short (<4m), medium (4-20m), long (>20m) — videos, first page
featuresno—comma-separated: hd, subtitles, cc, live, 4k, hdr, etc.
limitno201-50
continuationconditional—token from a previous response (subsequent pages)

Provide exactly one of q (first page) or continuation (next pages) — the token already encodes the filters. sort/upload_date/duration/features apply to the first page only.

Find recent, most-viewed videos:

bash
curl -s "https://transcriptapi.com/api/v2/youtube/search\?q=innovation&sort=views&duration=long&upload_date=month" \  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \  -H "User-Agent: YourAgent/1.0"

Search for playlists on a topic:

bash
curl -s "https://transcriptapi.com/api/v2/youtube/search?q=react+tutorial&type=playlist" \  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \  -H "User-Agent: YourAgent/1.0"

Video search response:

json
{  "results": [    {      "type": "video",      "videoId": "dQw4w9WgXcQ",      "title": "Rick Astley - Never Gonna Give You Up",      "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",      "channelTitle": "Rick Astley",      "channelHandle": "@RickAstley",      "channelVerified": true,      "lengthText": "3:33",      "viewCountText": "1.5B views",      "publishedTimeText": "14 years ago",      "hasCaptions": true,      "thumbnails": [{ "url": "...", "width": 120, "height": 90 }]    }  ],  "result_count": 20}

Channel search response (type=channel):

json
{  "results": [{    "type": "channel",    "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",    "title": "Rick Astley",    "handle": "@RickAstley",    "url": "https://www.youtube.com/@RickAstley",    "description": "Official channel...",    "subscriberCount": "4.2M subscribers",    "verified": true,    "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC...",    "thumbnails": [...]  }],  "result_count": 5}

GET /api/v2/youtube/channel/search — 1 credit

Search videos within a specific channel. Accepts channel — an @handle, channel URL, or UC... ID.

bash
curl -s "https://transcriptapi.com/api/v2/youtube/channel/search\?channel=@TED&q=climate+change&limit=30" \  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \  -H "User-Agent: YourAgent/1.0"
ParamRequiredValidation
channelyes@handle, channel URL, or UC... ID
qyes1-200 chars
limitno1-50 (default 30)

Returns up to ~30 results (YouTube limit). Same video response shape as global search.

GET /api/v2/youtube/channel/resolve — FREE

Convert @handle to channel ID:

bash
curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED" \  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \  -H "User-Agent: YourAgent/1.0"

Workflow: Search → Transcript

bash
# 1. Search for videoscurl -s "https://transcriptapi.com/api/v2/youtube/search\?q=python+web+scraping&type=video&limit=5" \  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \  -H "User-Agent: YourAgent/1.0"
# 2. Get transcript from resultcurl -s "https://transcriptapi.com/api/v2/youtube/transcript\?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \  -H "User-Agent: YourAgent/1.0"

Errors

CodeMeaningAction
401Bad API keyCheck key
402No creditstranscriptapi.com/billing
403/1010Cloudflare blockAdd or fix User-Agent header
404Not foundResource doesn't exist
408TimeoutRetry once
422Invalid paramCheck param format

Free tier: 100 credits, 300 req/min.

来源与署名

来源:zeropointrepo/youtube-skills位于clawhub/youtube-search提交4f7994b

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架