使用 YouTube Scraper,您可以通过 YouTube 视频链接、频道链接、播放列表链接、搜索结果链接或关键词,批量抓取 YouTube 视频数据。该工具可自动识别输入类型,并返回结构化的视频元数据、频道信息、播放量、发布时间、点赞数、评论数、简介链接、字幕转录文本和热门评论等数据,支持导出为 JSON 或 CSV。
| 输入类型 | 返回内容 |
|---|---|
视频 URL(watch?v=、youtu.be、/shorts/) | 单个视频的完整详情 |
频道 URL(/@handle、/channel/UC...、/c/、/user/) | 频道的视频 / Shorts / 直播 |
播放列表 URL(?list=) | 播放列表中的所有视频 |
搜索结果 URL(/results?search_query=) | 匹配的视频 |
| 搜索关键词 | 匹配的视频 / Shorts / 直播(遵循筛选条件) |
每种类型的结果上限独立计算,并按每个搜索词和每个频道应用:maxResults(视频)、maxResultsShorts、maxResultStreams。
搜索词支持完整的 YouTube 搜索筛选条件 — 排序方式、日期筛选、时长筛选、视频类型筛选和功能特性(HD、字幕/CC、知识共享、3D、直播、已购买、4K、360°、位置、HDR、VR180)— 全部编码到搜索的 sp 参数中。频道额外支持 publishedAfter(日期)和频道排序方式。
可选附加功能(每个视频):字幕 / 转录文本(downloadSubtitles,支持 subtitleFormat srt/vtt/plaintext/json 和 preferAutoGeneratedSubtitles)和评论(includeComments)。
JSON、CSV。
| 字段 | 类型 | 说明 |
|---|---|---|
| title | string | 视频标题 |
| id | string | YouTube 视频 ID |
| url | string | 标准观看 URL |
| type | string | 项目类型:video、short 或 stream |
| sourceType | string | 视频发现方式:video、search、channel、playlist |
| input | string | 产生此视频的原始输入(URL 或关键词) |
| thumbnailUrl | string | 最高分辨率缩略图 URL |
| viewCount | string | 播放量文本 |
| date | string | 发布日期或相对发布时间 |
| likes | string | 点赞数文本 |
| commentsCount | string | 评论数 |
| duration | string | 视频时长(H:MM:SS) |
| channelName | string | 频道名称 |
| channelUrl | string | 频道 URL |
| numberOfSubscribers | string | 频道订阅者数文本 |
| text | string | 视频描述文本 |
| descriptionLinks | array | 从描述中提取的链接 |
| subtitles | boolean | 是否有字幕 / CC |
| subtitleLanguage | string | 下载的字幕轨道语言代码 |
| subtitlesText | string | 完整字幕转录文本,格式由 subtitleFormat 指定(srt/vtt/plaintext/json) |
| transcript | array | 字幕分段 [{start, dur, text}] |
| comments | array | 顶级评论 [{comment_id, text, likes, replies, author, authorChannel, date}] |
| isMonetized | boolean | 视频是否显示已变现 |
| commentsTurnedOff | boolean | 评论是否已关闭 |
| liveStatus | string | 直播状态:is_live / is_upcoming / was_live / not_live |
| availableQualities | array | 可用视频画质,如 ["2160p","1080p","720p"](来自播放器响应) |
| location | string | 录制位置(Apify 风格;无则为 null) |
| error | string | 错误信息(成功时为 null) |
| error_code | string | 错误代码(成功时为 null) |
| warning | string | 非阻塞警告信息 |
| warning_code | string | 非阻塞警告代码 |
| success | boolean | 此记录是否成功抓取 |
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| startURLs | array | 否 | @MrBeast,一个观看 URL | 直接的视频 / 频道 / 播放列表 / 搜索 / shorts URL(搜索筛选不适用于此) |
| searchKeywords | array | 否 | python tutorial | 要搜索的关键词;每个解析为匹配结果 |
| maxResults | integer | 否 | 10 | 每个搜索词 / 频道的最大普通视频数(0 = 跳过视频) |
| maxResultsShorts | integer | 否 | 0 | 每个搜索词 / 频道的最大 Shorts 数(0 = 跳过) |
| maxResultStreams | integer | 否 | 0 | 每个搜索词 / 频道的最大直播数(0 = 跳过) |
| sortBy | string | 否 | relevance | 搜索排序:relevance / date / views / rating |
| dateFilter | string | 否 | any | 上传日期:any / hour / today / week / month / year |
| lengthFilter | string | 否 | any | 时长:any / short(<4分钟)/ medium(4–20分钟)/ long(>20分钟) |
| videoTypeFilter | string | 否 | any | 搜索类型标签:any / video / channel / playlist / movie |
| features | array | 否 | [] | 搜索功能:hd、subtitles、creativeCommons、3d、live、purchased、4k、360、location、hdr、vr180 |
| downloadSubtitles | boolean | 否 | false | 获取每个视频的字幕 / 转录文本 |
| subtitleLanguages | array | 否 | [] | 首选字幕语言代码(如 en、es) |
| preferAutoGeneratedSubtitles | boolean | 否 | false | 优先使用自动生成(ASR)轨道而非手动字幕 |
| subtitleFormat | string | 否 | srt | subtitlesText 格式:srt / vtt / plaintext / json |
| publishedAfter | string | 否 | "" | 仅频道:保留 YYYY-MM-DD 当天或之后发布的视频 |
| channelSortBy | string | 否 | latest | 频道视频排序:latest / popular / oldest |
| includeComments | boolean | 否 | false | 获取顶级评论(额外功能,超出 Apify 基础 actor) |
| maxComments | integer | 否 | 20 | 每个视频的最大顶级评论数 |
| maxConcurrency | integer | 否 | 8 | 并行丰富化的视频数(如果代理支持大量并发连接则提高;遇到空响应时降低) |
| perVideoTimeoutSecs | integer | 否 | 30 | 如果丰富化超过此秒数则放弃视频(0 = 无限制);记录为 504 |
至少需要提供 startURLs 或 searchKeywords 之一。
需要 PROXY_AUTH(username:password)和 PROXY_DOMAIN(host:port)环境变量;请求代理构建为 socks5://{PROXY_AUTH}@{PROXY_DOMAIN}。
区域设置一致性(反检测): 爬虫发送由 GEO 环境变量(US/GB/DE/FR/JP/BR/IN,默认 US)选择的自洽区域设置(accept-language + PREF 时区 + hl/gl);ACCEPT_LANGUAGE 可覆盖语言。使用多国轮换代理时,将出口固定为与 GEO 相同的国家(大多数轮换代理在代理用户名中接受 country-XX 令牌)— 固定区域设置配合随机国家 IP(时区/语言 ≠ IP 国家)是强烈的机器人信号。InnerTube API 调用(youtubei/v1/*)使用真实的 fetch/XHR 头配置(accept: */*、origin、x-youtube-client-*、JSON content-type)而非页面导航配置,且请求身份(TLS + UA + client-hints)在每个进程中保持一致。发送 CONSENT cookie 以跳过 EU 同意墙。
此爬虫复用了仓库已验证的 InnerTube fetch + 视频详情 / 评论解析器。列表解析路径是新的,并已针对实时 YouTube 数据验证:搜索 → 视频、频道 → 视频、播放列表 → 视频均正确提取。YouTube 会定期迁移其 videoRenderer / lockupViewModel 结构,因此长时间间隔后首次运行时需重新检查。
按类型上限和筛选: maxResults / maxResultsShorts / maxResultStreams 独立计数并按每个搜索词和每个频道应用。搜索筛选(排序 / 日期 / 时长 / 类型 / 功能)仅适用于搜索词 — 它们编码到搜索 sp protobuf 中 — 对直接 URL 忽略。
频道日期范围: publishedAfter 使用混合策略按发布日期筛选频道视频 — 分页时使用低成本的相对时间提前停止,加上从每个视频详情中获取的精确 ISO 日期筛选。channelSortBy=latest 是精确的;popular / oldest 通过排序标签尽力而为,当 YouTube 未暴露时回退到 latest。
不支持: Apify 的"保存字幕到键值存储" — 此平台没有键值存储,因此字幕仅作为 subtitlesText / transcript 字段返回。
运行模型: 作为单个任务运行(无按 URL 子任务拆分),与 Apify 匹配 — 所有搜索词和所有直接 URL 在一次运行中处理,并发在内部处理。
性能: 输入(搜索词 / 频道 / URL)并行解析,视频在流水线上丰富化 — 丰富化在找到首批目标后立即开始,与正在进行的解析重叠。丰富化同时运行 maxConcurrency 个视频(默认 8)。每个视频会派发多个子请求(观看页、字幕、评论),因此非常高的并发可能使单个代理端点饱和并触发空响应,无论轮换 IP 池多大 — 仅在代理支持大量并发连接时提高 maxConcurrency,遇到空响应 / 404 时降低。perVideoTimeoutSecs(默认 30)仅限制可选附加功能(字幕 / 评论):如果超出预算,它们留空,视频记录仍会输出完整详情 — 卡住的附加功能不会丢弃视频。视频的字幕和评论并发运行,且都复用已为详情获取的观看页(无重复页面获取)。
字幕 / 转录文本: 字幕可用性和语言(subtitles、subtitleLanguage)可靠检测。对于转录文本正文,爬虫使用 yt-dlp 风格的级联:(1) 观看页的 /api/timedtext 轨道(json3 → xml);YouTube 越来越多地在 PO / BotGuard 令牌后设限并返回空正文,因此未命中时 (2) 通过多个移动 / 嵌入 / TV InnerTube 客户端重新获取播放器响应(ANDROID_VR → TVHTML5 → IOS → MWEB → WEB_EMBEDDED_PLAYER → ANDROID),其字幕 baseUrl 通常不受 PO 限制(每个客户端独立受限,因此尝试更多可提高命中未受限轨道的几率;第一个产生文本的获胜)— 这就是 yt-dlp 如何在没有浏览器的情况下恢复字幕,并为大多数受限视频带回转录文本;最后 (3) InnerTube get_transcript 端点。每一步都是通过 curl_cffi 的纯 InnerTube — 无浏览器、无 JS 运行时、无 PO-token 提供者。如果所有步骤都未命中,subtitlesText / transcript 返回空,爬虫优雅降级。少数在所有客户端都受限的视频仍需要 PO-token 提供者或浏览器引擎(如 Camoufox),这仍超出此版本范围。客户端常量镜像 yt-dlp master,如果 YouTube 轮换客户端版本可能需要刷新。
探索商店中更多热门采集工具
by CoreClaw
通过输入 URL,批量提取公开的个人资料数据,包括频道名称、订阅数、视频数量、观看次数、简介、热门视频等,输出 CSV 或 JSON 格式。支持竞品分析、用户研究,零代码操作,一键导出结构化数据。
by CoreClaw
通过输入关键词,批量提取公开的 YouTube 频道数据,包括频道名称、订阅数、视频数量、观看次数、简介、热门视频等,输出 CSV 或 JSON 格式。支持竞品分析、用户研究,零代码操作,一键导出结构化数据。
by CoreClaw
通过输入视频 ID,批量提取公开的 YouTube 视频评论数据,包括评论内容、评论者信息、点赞数、回复数、作者是否点赞/回复等,输出 CSV 或 JSON 格式。支持舆情分析、用户洞察,零代码操作,一键导出结构化数据。
by CoreClaw
通过输入视频 ID,批量提取公开的 YouTube 视频数据,包括视频标题、描述、频道信息、播放量、点赞数、评论数、时长等,输出 CSV 或 JSON 格式。支持内容分析、数据统计,零代码操作,一键导出结构化数据。