# YouTube Scraper | $0.19/1K | Transcripts, Comments, Shorts (`monkey.d.scraping/youtube-scraper`) Actor

YouTube scraper from $0.19 per 1,000 videos, no start fee. Search, channels, playlists, Shorts and live streams with views, likes, dates, tags and subscribers. Transcripts and 100 comments per video included. No login, no API key, no quota.

- **URL**: https://apify.com/monkey.d.scraping/youtube-scraper.md
- **Developed by:** [Monkey D. Scraping](https://apify.com/monkey.d.scraping) (community)
- **Categories:** Social media, Videos, AI
- **Features:** Limited permissions, Single-tenant, Server interface
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event + usage

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## YouTube Scraper — videos, Shorts, transcripts, comments and channels from $0.19 per 1,000

**中文用户：** [简体中文说明](#中文说明youtube-视频字幕评论与频道采集工具youtube-scraper-爬虫--api) · **中文用戶：** [繁體中文說明](#中文說明繁體youtube-影片字幕留言與頻道擷取工具)

**From $0.19 per 1,000 videos, no start fee, no login, no API key, no quota.** Search YouTube by keyword or paste links to channels, playlists, videos and Shorts. Every video comes with views, likes, comment count, publication date, duration, tags, category, chapters, channel subscribers and engagement metrics. **Transcripts and up to 100 comments per video are included in the same price.**

One Actor instead of four: YouTube search scraper, YouTube channel scraper, YouTube transcript scraper and YouTube comments scraper in a single run and a single dataset. Output ready for Google Sheets, Excel, n8n, Make, Zapier, Python, JavaScript, the Apify MCP server and AI agents.

### Why this YouTube scraper?

| | This Actor | Market leader | Typical single-purpose scrapers |
| --- | --- | --- | --- |
| Price per 1,000 videos | **$0.35 → $0.19** | $4.00 → $2.40 | $0.50 |
| Start fee per run | **none** | none | sometimes |
| Transcripts (text, timed segments, chapters) | ✅ **included** | paid add-on | separate Actor, up to $10 per 1,000 |
| Comments and replies | ✅ **100 per video included** | separate Actor, from $0.90 per 1,000 | ❌ or separate Actor |
| Videos, Shorts, live streams and community posts | ✅ one run | separate Actors for some | partial |
| Channel profile with country, join date, total views and social links | ✅ | partial | ❌ |
| Like rate, engagement rate, views per day | ✅ | ❌ | ❌ |
| Monitor: only the videos published since the last run | ✅ | ❌ | ❌ |
| Search filters: date, duration, sort order | ✅ | ✅ | partial |
| Real-time API endpoint (Server mode) | ✅ | ❌ | rare |
| Up to 1,000 keywords and links per run, single videos allowed | ✅ | ✅ | often capped |
| Documentation in English and Chinese | ✅ | ❌ | ❌ |

Prices and features read from the Apify Store listings on 11 November 2026; Free plan → highest plan.

### What can I do with it?

- **Turn YouTube videos into text for AI:** transcripts with timestamps and chapters for summaries, RAG, search, subtitles, blog posts and newsletters.
- **Brand and competitor monitoring:** schedule keywords or competitor channels with *Only new videos* and receive every new video as it is published.
- **Influencer discovery and outreach:** rank channels by subscribers, views per day and engagement rate, then reach creators through the links on their channel profile.
- **Content and SEO research:** see which titles, tags, durations and formats perform in a niche; compare videos and Shorts.
- **Audience research and sentiment analysis:** read what people write under any list of videos, with likes and replies.
- **Market and academic research:** export whole channels or playlists with dates and counts for reports and datasets.
- **A YouTube Data API alternative:** the same public data without projects, keys or daily quota.

### How to scrape YouTube

1. Type one or more **keywords**, or paste **links**: channels (`https://www.youtube.com/@mkbhd` or just `@mkbhd`), videos, Shorts, playlists or YouTube search pages. You can mix them.
2. Choose how many videos you want per keyword or link, and switch on **transcripts** or **comments** if you need them.
3. Click **Start**. Rows appear in the dataset within seconds; download them as JSON, CSV or Excel, or send them to Google Sheets.

To **monitor** channels or keywords, save the run as a task, turn on *Only new videos since the last run* and add a schedule. Each run saves and charges only the videos you have not received yet; a run with nothing new is free.

### Input

| Field | What it does |
| --- | --- |
| `searchQueries` | Keywords to search on YouTube, one per line |
| `startUrls` | Links to channels or @handles, videos, Shorts, playlists and search pages |
| `maxVideos` | Videos per keyword, playlist or channel section. `0` = all the videos YouTube lists. Default 20 |
| `channelSections` | For channels: `videos`, `shorts`, `streams`, `posts` (community posts) |
| `maxPosts` | Community posts per channel. Posts are free. Default 10 |
| `mode` | `complete` (default): full details for every video. `fast`: the data shown in result lists, for large discovery runs |
| `includeTranscripts` | Adds transcript text, timed segments and chapters to every video |
| `includeComments` | Adds comments and replies; the first 100 per video travel inside the video row |
| `maxComments`, `commentsSort`, `maxRepliesPerComment` | Comments per video, `top` or `newest` first, replies per comment |
| `sortBy`, `uploadDate`, `videoType`, `duration` | Search filters: relevance, date, views or rating; last hour, today, week, month or year; under 4, 4 to 20 or over 20 minutes; videos only |
| `publishedAfter` | Keep only videos published after a date (`2026-11-01`) or within a period (`7 days`, `2 weeks`, `3 months`) |
| `onlyNewVideos` | Monitoring: only the videos that earlier runs of the same task have not delivered |
| `country` | Two-letter country for search results, for example `US`, `GB`, `DE`, `JP` |

Every keyword and link is read on its own: one that returns nothing does not stop the others, and the summary says why.

#### Which links can I use?

| Link | Example |
| --- | --- |
| Channel | `https://www.youtube.com/@mkbhd`, `@mkbhd`, `https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ` |
| Channel tab | `https://www.youtube.com/@mkbhd/shorts`, `/videos`, `/streams` |
| Video | `https://www.youtube.com/watch?v=dQw4w9WgXcQ`, `https://youtu.be/dQw4w9WgXcQ` |
| Short | `https://www.youtube.com/shorts/kPI9Mc35mOg` |
| Playlist | `https://www.youtube.com/playlist?list=PLBCF2DAC6FFB574DE` |
| Search page | `https://www.youtube.com/results?search_query=web+scraping` |

#### Example inputs

Latest videos about a topic, with transcripts:

```json
{
  "searchQueries": ["ai agents tutorial"],
  "maxVideos": 50,
  "uploadDate": "month",
  "includeTranscripts": true
}
```

A whole channel with Shorts, community posts and comments:

```json
{
  "startUrls": ["https://www.youtube.com/@mkbhd"],
  "maxVideos": 0,
  "channelSections": ["videos", "shorts", "posts"],
  "includeComments": true,
  "maxComments": 100
}
```

Transcript of one video:

```json
{
  "startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
  "includeTranscripts": true
}
```

Daily monitor of competitor channels (save as a task and schedule it):

```json
{
  "startUrls": ["@mkbhd", "@veritasium"],
  "maxVideos": 30,
  "onlyNewVideos": true
}
```

### Output

One row per video, Short or stream. Example (shortened):

```json
{
  "type": "video",
  "id": "hHQlcnubuFI",
  "url": "https://www.youtube.com/watch?v=hHQlcnubuFI",
  "title": "Learn Web Scraping in 5 Minutes (NO PRIOR KNOWLEDGE)",
  "description": "A few days ago, I was trying to track RAM prices online...",
  "channelName": "CodeHead",
  "channelId": "UCFVteOob_YXJHPaGTqlDV2Q",
  "channelUrl": "https://www.youtube.com/@codehead01",
  "channelSubscriberCount": 128000,
  "channelIsVerified": true,
  "viewCount": 188191,
  "likeCount": 6850,
  "commentCount": 312,
  "likeRate": 3.64,
  "engagementRate": 3.81,
  "viewsPerDay": 749.8,
  "durationSeconds": 293,
  "duration": "4:53",
  "publishedAt": "2026-03-05T07:01:30-08:00",
  "category": "Education",
  "tags": ["web scraping", "programming tutorials", "learn to code"],
  "hashtags": ["coding", "programming", "webdevelopment"],
  "chapters": [
    {"title": "The problem with RAM prices", "start": 0, "startText": "0:00"},
    {"title": "Introduction to web scraping", "start": 33, "startText": "0:33"}
  ],
  "transcriptStatus": "available",
  "transcript": {
    "text": "A few days ago, I was trying to track RAM prices online because...",
    "segments": [
      {"start": 0, "startText": "0:00", "text": "A few days ago, I was trying to track RAM prices online because thanks to AI gobbling up every memory chip on the"}
    ]
  },
  "comments": [
    {"type": "comment", "id": "Ugy...", "text": "Clear and to the point, thanks!", "authorName": "@someviewer", "likeCount": 22, "replyCount": 1, "publishedAt": "2026-10-28"}
  ],
  "commentsIncluded": 58,
  "isShort": false,
  "isLive": false,
  "thumbnailUrl": "https://i.ytimg.com/vi_webp/hHQlcnubuFI/maxresdefault.webp",
  "source": "search",
  "searchQuery": "web scraping tutorial",
  "position": 1,
  "scrapedAt": "2026-11-11T08:49:07Z"
}
```

#### Video fields

| Field | Meaning |
| --- | --- |
| `type` | `video`, `short` or `stream` |
| `id`, `url`, `title`, `description` | YouTube video ID, link, title and description |
| `channelName`, `channelId`, `channelUrl`, `channelSubscriberCount`, `channelIsVerified` | Who published it and the channel's subscribers |
| `viewCount`, `likeCount`, `commentCount` | Counts shown by YouTube |
| `likeRate`, `engagementRate`, `viewsPerDay` | Likes per 100 views; likes plus comments per 100 views; average views per day since publication |
| `durationSeconds`, `duration` | Length in seconds and as `m:ss` |
| `publishedAt`, `publishedAtIsApproximate`, `publishedTimeText` | Publication date, with the time when YouTube provides it; the flag is `true` when the date comes from text such as "3 weeks ago" |
| `category`, `tags`, `hashtags` | YouTube category, creator tags, hashtags in title and description |
| `chapters` | Chapter titles with start time |
| `transcriptStatus`, `transcript`, `transcriptLength` | `available` or `unavailable`; `text` plus `segments` with `start` in seconds; number of characters. Transcripts are in the video's original language |
| `comments`, `commentsIncluded` | Up to 100 comments and replies of the video and how many there are |
| `isShort`, `isLive`, `isFamilySafe`, `thumbnailUrl`, `embedUrl` | Format flags and media links |
| `source`, `searchQuery`, `sourceUrl`, `sourceSection`, `position` | Which keyword or link found the video and at which position |

#### Comment fields

Each item of `comments`, and each extra comment row, has: `type` (`comment` or `reply`), `id`, `parentCommentId`, `videoId`, `commentUrl`, `text`, `authorName`, `authorChannelId`, `authorUrl`, `authorIsVerified`, `authorIsChannelOwner`, `likeCount`, `replyCount`, `publishedAt`, `isEdited`, `isPinned`, `hasCreatorHeart`.

Comments beyond the first 100 of a video are saved as their own rows in the same dataset, linked to the video with `videoId`.

#### Community posts

Rows with `type: "post"`: `id`, `url`, `text`, `channelName`, `likeCount`, `commentCount`, `imageUrls`, `attachedVideoUrl`, `pollChoices`, `publishedAt`.

#### Channel profiles and run summary

The run stores two records in the key-value store:

- `CHANNELS`: for every channel given as input, name, handle, description, subscribers, video count, total views, country, join date, avatar, banner and the channel's links (website, Instagram, X, Discord and more).
- `SUMMARY`: for every keyword and link, status, videos, comments and posts saved.

### Pricing

Pay only for the videos you get. No start fee, no monthly rental, platform usage included.

| Plan | Per 1,000 videos | Per 1,000 extra comments |
| --- | --- | --- |
| Free | $0.35 | $0.03 |
| Starter | $0.25 | $0.025 |
| Scale | $0.21 | $0.022 |
| Business and above | $0.19 | $0.02 |

**Included in the video price:** full details, transcript, chapters, community posts and up to 100 comments and replies per video. Extra comments are the ones beyond 100 per video.

Examples on the Free plan: 500 videos with transcripts = $0.175. 1,000 videos with 50 comments each (50,000 comments) = $0.35. All the comments of one video with 10,000 comments = 1 video + 9,900 extra comments = $0.30. A daily monitor of 20 channels that publish 2 videos a day = 40 videos = $0.014 per day.

Keywords and links that return nothing cost nothing, and a monitoring run with no new videos is free.

### Ready-to-run examples

Open an example, click **Start**, then replace the keyword or link with your own.

| Example | Who it is for | What you get |
|---|---|---|
| [YouTube transcript scraper: full text with timestamps](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-transcript-scraper) | AI builders, writers, researchers | Full transcript with timestamps and chapters for each video link |
| [YouTube comments scraper: comments and replies of any video](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-comments-scraper) | Community and insight teams | Top 100 comments of a video with authors, likes and dates |
| [YouTube channel scraper: all videos with views and likes](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-channel-scraper) | Marketers and analysts | Latest 50 videos of a channel with views, likes, dates and the channel profile |
| [YouTube Shorts scraper: Shorts of any channel with views](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-shorts-scraper) | Short-video creators and agencies | Latest 50 Shorts of a channel with views, likes and comments |
| [YouTube search scraper: videos by keyword with filters](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-search-scraper) | Content and SEO researchers | The most viewed videos of the month for a keyword |
| [YouTube channel monitor: only new videos since last run](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-new-videos-monitor) | Brand and competitor monitoring | Only the videos published since the last run, for scheduled alerts |
| [YouTube playlist scraper: every video with transcript](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-playlist-scraper) | Course, podcast and lecture archives | Every video of a playlist with its transcript |
| [YouTube video scraper: details of any list of video links](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-video-details-by-url) | Anyone with a list of video links | Views, likes, tags, chapters and engagement for each link |
| [YouTube 视频采集：字幕文本+评论，每千个视频0.19美元起](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-zimu-pinglun-caiji-zh) | 中文用户 | 按关键词采集视频，含字幕文本与评论 |

### Use it from code, Make, n8n, Zapier or an AI agent

Run it through the [Apify API](https://docs.apify.com/api/v2), the Apify Python or JavaScript client, or any tool that supports Apify (Make, n8n, Zapier).

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("monkey.d.scraping/youtube-scraper").call(run_input={
    "searchQueries": ["ai agents tutorial"],
    "maxVideos": 20,
    "includeTranscripts": True,
})
for video in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(video["title"], video["viewCount"], (video.get("transcript") or {}).get("text", "")[:80])
```

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('monkey.d.scraping/youtube-scraper').call({
    startUrls: ['https://www.youtube.com/@mkbhd'],
    maxVideos: 50,
    includeComments: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'videos');
```

#### Real-time YouTube API for apps and AI agents (Server mode)

Need YouTube data inside a single HTTP response? Use the **Server** tab. Send the same JSON input to `POST /scrape`, or call `GET /scrape` with query parameters, and videos, transcripts and comments come back in seconds.

```bash
curl "https://YOUR_SERVER_URL/scrape?query=ai+agents+tutorial&maxVideos=5&includeTranscripts=true" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN"
```

```bash
curl -X POST "https://YOUR_SERVER_URL/scrape" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"], "includeTranscripts": true, "includeComments": true}'
```

The response contains `videos` (each with its transcript and comments), `extraComments`, `posts`, `channels` and a `summary`. Copy the server URL from the Server tab. Each returned video costs the same as in a normal run; requests that return nothing are free. A request takes up to 5 keywords or links and up to 50 videos per keyword or link; for larger jobs use a normal run.

The server supports both **single-tenant** (each user gets a separate server run in their own account) and **multi-tenant** (shared server instances, with every request's results kept separate and returned only to its caller). Apify activates one mode at a time; the Server tab shows the active one. If the server is busy, retry after a few seconds.

#### Use it as a tool in Claude, ChatGPT, Cursor and other MCP clients

The Actor works with the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp). Add this URL to your MCP client and the assistant can search YouTube, read transcripts and collect comments on its own:

```
https://mcp.apify.com?tools=monkey.d.scraping/youtube-scraper
```

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=monkey.d.scraping/youtube-scraper"
    }
  }
}
```

Then ask in plain language: *"Get the transcript of this YouTube video and summarise it"*, *"Find the 20 most viewed videos about electric bikes this month"*, *"What are people saying in the comments of this video?"*.

### For AI agents and LLM tools

- **Actor:** `monkey.d.scraping/youtube-scraper`. Also known as: YouTube scraper, YouTube video scraper, YouTube transcript scraper, YouTube transcript API, YouTube subtitles downloader, YouTube comments scraper, YouTube channel scraper, YouTube Shorts scraper, YouTube search scraper, YouTube playlist scraper, YouTube Data API alternative.
- **Use it when** a user asks to search YouTube, list the videos of a channel or playlist, get the transcript or captions of a video, read or analyse YouTube comments, compare channels, or monitor new uploads.
- **Minimal input:** `{"searchQueries": ["<keyword>"]}` or `{"startUrls": ["<youtube link or @handle>"]}`. Everything else is optional.
- **Transcript of a video:** `{"startUrls": ["<video link>"], "includeTranscripts": true}` → read `transcript.text`, or `transcript.segments` for timestamps.
- **Comments of a video:** `{"startUrls": ["<video link>"], "includeComments": true, "maxComments": 100}` → read the `comments` array of the video row.
- **Keep runs small:** set `maxVideos`; use `"mode": "fast"` when only titles, channels, views and links are needed.
- **Real-time:** for an answer inside a single HTTP call, use the server endpoint `POST /scrape` with the same input (see the Server tab).
- **Output:** one row per video with a `type` field; channel profiles in the `CHANNELS` record; per-input status in `SUMMARY`. Dates are ISO 8601, counts are integers.
- **Cost:** $0.35 per 1,000 videos on the Free plan, transcripts and 100 comments per video included; nothing for inputs without results.

### FAQ

**How do I get the transcript of a YouTube video?**
Paste the video link, switch on *Include transcripts* and start. The video row contains the full text in `transcript.text` and the timed segments in `transcript.segments`. It works the same for a whole channel, a playlist or the results of a keyword.

**How much does it cost to scrape YouTube?**
From $0.19 to $0.35 per 1,000 videos depending on your Apify plan, with transcripts and up to 100 comments per video included. There is no start fee and platform usage is included. The Apify Free plan is enough to try it.

**Do I need a YouTube API key or a Google account?**
No. There is no key, no login and no daily quota.

**Can I scrape YouTube comments?**
Yes. Switch on *Include comments*. Up to 100 comments and replies per video come inside the video row at no extra cost; raise *Max comments per video* to collect more, saved one row per comment.

**Can I scrape YouTube Shorts and live streams?**
Yes. Shorts and streams appear in search results, and for channels you choose the Videos, Shorts and Live streams sections.

**Can I get all the videos of a channel?**
Yes. Paste the channel link or @handle and set *Max videos* to `0`.

**How do I get only new videos?**
Save your input as a task, turn on *Only new videos since the last run* and schedule it. Each run delivers and charges only the videos you have not received yet.

**Can I export the data to Excel, CSV or Google Sheets?**
Yes. Every dataset can be downloaded as JSON, CSV, Excel, XML or HTML, or sent to Google Sheets and other apps through Apify integrations.

**Can an AI assistant use it?**
Yes. Use the Apify MCP server URL above in Claude, ChatGPT, Cursor or any MCP client, or call the real-time endpoint from your own agent.

**Is it legal to scrape YouTube?**
The Actor reads only public data that anyone can see without logging in. Make sure your use respects the applicable laws and the rights of the people whose data you process.

### Chinese Simplified

### 中文说明：YouTube 视频、字幕、评论与频道采集工具（YouTube Scraper 爬虫 / API）

**每 1,000 个视频低至 0.19 美元，无启动费，无需登录，无需 API Key，没有配额。** 输入关键词，或粘贴频道、播放列表、视频、Shorts 的链接，即可获得每个视频的播放量、点赞数、评论数、发布时间、时长、标签、分类、章节、频道订阅数和互动指标。**字幕文本（Transcript）和每个视频最多 100 条评论已包含在同一价格内。**

一个工具即可替代四个：YouTube 搜索采集、YouTube 频道采集、YouTube 字幕采集、YouTube 评论采集，一次运行、一个数据集。

[为什么选择](#为什么选择这款-youtube-采集工具) · [适用场景](#适用场景) · [使用方法](#使用方法) · [价格](#价格) · [API 与 AI 智能体](#api实时接口与-ai-智能体mcp) · [常见问题](#常见问题)

#### 为什么选择这款 YouTube 采集工具？

| | 本工具 | 市场主流工具 | 常见单一功能工具 |
| --- | --- | --- | --- |
| 每 1,000 个视频价格 | **0.35 → 0.19 美元** | 4.00 → 2.40 美元 | 0.50 美元 |
| 启动费 | **无** | 无 | 有时有 |
| 字幕文本（全文、带时间戳的分段、章节） | ✅ **已包含** | 付费附加项 | 需另一个工具，最高每 1,000 条 10 美元 |
| 评论与回复 | ✅ **每个视频含 100 条** | 需另一个工具，每 1,000 条 0.90 美元起 | ❌ 或需另一个工具 |
| 视频、Shorts、直播、社区帖子 | ✅ 一次运行 | 部分需单独工具 | 部分支持 |
| 频道资料：国家、注册时间、总播放量、社交链接 | ✅ | 部分 | ❌ |
| 点赞率、互动率、日均播放量 | ✅ | ❌ | ❌ |
| 监控模式：只采集上次运行之后的新视频 | ✅ | ❌ | ❌ |
| 实时 API 接口（Server 模式） | ✅ | ❌ | 少见 |
| 中英文文档 | ✅ | ❌ | ❌ |

价格与功能取自 2026 年 11 月 11 日 Apify Store 的公开页面；Free 套餐 → 最高套餐。

#### 适用场景

- **把 YouTube 视频转成文本供 AI 使用：** 带时间戳和章节的字幕文本，用于摘要、RAG 知识库、搜索、字幕和内容二次创作。
- **品牌与竞品监控：** 定时运行关键词或竞品频道，开启“只采集新视频”，新视频发布后即可获得。
- **网红营销与达人筛选：** 按订阅数、日均播放量、互动率筛选频道，并通过频道资料中的链接联系创作者。
- **跨境电商选品与内容调研：** 查看某个品类中哪些标题、标签、时长和形式表现最好，对比长视频与 Shorts。
- **舆情与用户洞察：** 采集任意视频下的评论与回复，含点赞数。
- **市场与学术研究：** 导出整个频道或播放列表，含日期和各项数据。
- **YouTube Data API 的替代方案：** 同样的公开数据，无需项目、密钥和每日配额。

#### 可以获取哪些数据？

- **视频：** 标题、描述、链接、播放量、点赞数、评论数、时长、发布时间、分类、标签、话题标签、章节、缩略图、是否为 Shorts 或直播。
- **频道：** 名称、Handle、简介、订阅数、视频数、总播放量、国家、注册时间、头像、横幅、外部链接（官网、Instagram、X、Discord 等）。
- **字幕文本：** 全文 `transcript.text`，以及带起始秒数的分段 `transcript.segments`，为视频原始语言。
- **评论：** 评论与回复的文本、作者、点赞数、回复数、时间、是否置顶、是否获得作者点赞。
- **社区帖子：** 文本、点赞数、评论数、图片、附带视频、投票选项。
- **指标：** 点赞率 `likeRate`、互动率 `engagementRate`、日均播放量 `viewsPerDay`。

#### 价格

按结果付费，无启动费，无月租，平台费用已包含。

| 套餐 | 每 1,000 个视频 | 每 1,000 条额外评论 |
| --- | --- | --- |
| Free | 0.35 美元 | 0.03 美元 |
| Starter | 0.25 美元 | 0.025 美元 |
| Scale | 0.21 美元 | 0.022 美元 |
| Business 及以上 | 0.19 美元 | 0.02 美元 |

**视频价格已包含：** 完整详情、字幕文本、章节、社区帖子，以及每个视频最多 100 条评论与回复。“额外评论”指单个视频超过 100 条的部分。

示例（Free 套餐）：500 个带字幕文本的视频 = 0.175 美元；1,000 个视频、每个 50 条评论 = 0.35 美元。没有结果的关键词和链接不收费；监控模式下没有新视频的运行不收费。

#### 使用方法

1. 输入一个或多个**关键词**，或粘贴**链接**：频道（`https://www.youtube.com/@mkbhd` 或 `@mkbhd`）、视频、Shorts、播放列表、YouTube 搜索结果页，可以混合使用。
2. 设置每个关键词或链接要采集的视频数量；需要时开启**字幕文本**或**评论**。
3. 点击 **Start**。几秒内即可在数据集中看到结果，可导出为 JSON、CSV、Excel，或发送到 Google Sheets。

采集某个视频的字幕文本：

```json
{
  "startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
  "includeTranscripts": true
}
```

按关键词采集最近一个月的视频及评论：

```json
{
  "searchQueries": ["跨境电商"],
  "maxVideos": 50,
  "uploadDate": "month",
  "includeComments": true
}
```

监控竞品频道的新视频（保存为任务并设置定时）：

```json
{
  "startUrls": ["@mkbhd", "@veritasium"],
  "maxVideos": 30,
  "onlyNewVideos": true
}
```

#### 一键运行中文示例

- [YouTube 视频采集：字幕文本+评论，每千个视频0.19美元起](https://apify.com/monkey.d.scraping/youtube-scraper/examples/youtube-zimu-pinglun-caiji-zh)：按关键词采集最近一个月的视频，含字幕文本与评论。

#### API、实时接口与 AI 智能体（MCP）

- **Apify API 与客户端：** 支持 Apify API、Python 和 Node.js 客户端，以及 n8n、Make、Zapier 等自动化工具。
- **实时接口（Server 模式）：** 在 **Server** 标签页复制服务器地址，向 `POST /scrape` 发送同样的 JSON，或调用 `GET /scrape?query=关键词&maxVideos=5&includeTranscripts=true`，视频、字幕文本和评论直接在 HTTP 响应中返回。价格与普通运行相同，没有结果的请求不收费。支持单租户和多租户两种模式。
- **MCP：** 在 Claude、ChatGPT、Cursor 等 MCP 客户端中添加 `https://mcp.apify.com?tools=monkey.d.scraping/youtube-scraper`，AI 助手即可自行搜索 YouTube、读取字幕文本、采集评论。

#### 常见问题

**如何获取 YouTube 视频的字幕文本？**
粘贴视频链接，开启 *Include transcripts* 后运行。全文在 `transcript.text`，带时间戳的分段在 `transcript.segments`。对整个频道、播放列表或关键词搜索结果同样适用。

**需要 YouTube API Key 或 Google 账号吗？**
不需要。无需密钥、无需登录，也没有每日配额。

**可以采集 YouTube 评论吗？**
可以。开启 *Include comments*，每个视频最多 100 条评论与回复随视频一起返回，不另收费；调高 *Max comments per video* 可采集更多。

**可以采集一个频道的全部视频吗？**
可以。粘贴频道链接或 @handle，并把 *Max videos* 设为 `0`。

**如何只采集新视频？**
把输入保存为任务，开启 *Only new videos since the last run* 并设置定时。每次运行只返回并计费尚未获取过的视频。

**可以导出到 Excel 或 Google Sheets 吗？**
可以。数据集可下载为 JSON、CSV、Excel、XML、HTML，也可通过 Apify 集成发送到 Google Sheets。

**中文说明会翻译采集到的数据吗？**
不会。中文说明只是使用文档；标题、字幕文本和评论保持原始语言。

#### 其他社媒与营销数据工具

- [Bilibili 哔哩哔哩采集工具](https://apify.com/monkey.d.scraping/bilibili-scraper)：B站视频、UP主、评论与搜索。
- [Instagram 主页、Reels 与关键词搜索采集](https://apify.com/monkey.d.scraping/instagram-profile-scraper)：每 1,000 条 0.10 美元起。
- [TikTok 广告库采集](https://apify.com/monkey.d.scraping/tiktok-ads-library-scraper)：竞品 TikTok 广告，每 1,000 条 0.29 美元。
- [Taobao 淘宝 / Tmall 天猫商品采集](https://apify.com/monkey.d.scraping/taobao-tmall-scraper)：商品与价格。

### Chinese Traditional

### 中文說明（繁體）：YouTube 影片、字幕、留言與頻道擷取工具

**每 1,000 支影片最低 0.19 美元，無啟動費，免登入，免 API 金鑰，沒有配額。** 輸入關鍵字，或貼上頻道、播放清單、影片、Shorts 的連結，即可取得觀看次數、按讚數、留言數、發布時間、長度、標籤、章節、頻道訂閱數與互動指標。**字幕文字稿與每支影片最多 100 則留言已包含在同一價格內。**

#### 為什麼選擇這款 YouTube 爬蟲？

- **價格：** 每 1,000 支影片 0.35 → 0.19 美元；市場主流工具為 4.00 → 2.40 美元。
- **字幕文字稿免加價：** 全文、含時間戳的分段與章節；其他工具多需另購，最高每 1,000 則 10 美元。
- **留言已包含：** 每支影片 100 則留言與回覆，超過部分每 1,000 則 0.03 美元起。
- **一次執行：** 影片、Shorts、直播、社群貼文與頻道資料。
- **監控模式：** 只擷取上次執行之後的新影片；沒有新影片不收費。
- **即時 API 與 MCP：** 可供應用程式與 AI 助理直接呼叫。

#### 適用場景

- 把影片轉成文字稿，用於 AI 摘要、RAG 知識庫與內容再製。
- 品牌與競品頻道監控。
- 網紅行銷：依訂閱數、日均觀看與互動率篩選頻道，並透過頻道連結聯絡創作者。
- 內容與 SEO 研究、輿情與留言分析。

#### 使用方法

1. 輸入**關鍵字**，或貼上頻道（`@mkbhd`）、影片、Shorts、播放清單的**連結**。
2. 設定每個關鍵字或連結要擷取的影片數量；需要時開啟**字幕文字稿**或**留言**。
3. 點擊 **Start**，結果可匯出為 JSON、CSV、Excel 或傳送到 Google Sheets。

```json
{
  "startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
  "includeTranscripts": true,
  "includeComments": true
}
```

#### 價格

Free 0.35 美元、Starter 0.25 美元、Scale 0.21 美元、Business 以上 0.19 美元（每 1,000 支影片）。超過每支影片 100 則的留言：每 1,000 則 0.03 → 0.02 美元。無啟動費，平台費用已包含；沒有結果的輸入不收費。

#### 常見問題

**需要 YouTube API 金鑰或 Google 帳號嗎？** 不需要，免金鑰、免登入、無每日配額。

**如何取得影片的字幕文字稿？** 貼上影片連結並開啟 *Include transcripts*；全文在 `transcript.text`，分段在 `transcript.segments`。

**可以給 AI 助理使用嗎？** 可以。在 MCP 用戶端加入 `https://mcp.apify.com?tools=monkey.d.scraping/youtube-scraper`，或使用 Server 分頁的即時端點 `POST /scrape`。

### Related Actors by the same author

- [Bilibili Scraper 哔哩哔哩](https://apify.com/monkey.d.scraping/bilibili-scraper) — videos, creators, comments and search on Bilibili, the YouTube of China.
- [Instagram Profile, Reels & Keyword Search Scraper](https://apify.com/monkey.d.scraping/instagram-profile-scraper) — profiles, posts and Reels, from $0.10/1K.
- [Likee Scraper](https://apify.com/monkey.d.scraping/likee-creator-video-scraper) — short videos, comments and hashtags from Likee.
- [Reddit Comments Scraper](https://apify.com/monkey.d.scraping/reddit-comments-context-scraper) — Reddit threads and comments with context.

#### More tools for marketers

- [Google SERP Scraper](https://apify.com/monkey.d.scraping/google-serp-fast) — Google results with titles, snippets and thumbnails, $0.10/1K.
- [Facebook Page Posts Scraper & Monitor](https://apify.com/monkey.d.scraping/facebook-page-posts-scraper) — posts, reels and videos of any Facebook page, from $0.55/1K.
- [TikTok Ads Library Scraper](https://apify.com/monkey.d.scraping/tiktok-ads-library-scraper) — competitors' TikTok ads, $0.29/1K.
- [Telegram Keyword Search Scraper](https://apify.com/monkey.d.scraping/telegram-keyword-search-channel-scraper) — brand mentions across public Telegram channels.
- [Google News Scraper — Company News](https://apify.com/monkey.d.scraping/google-news-scraper-lite) — news articles about any company or topic.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on YouTube, one per line. Each keyword returns up to the number of videos set below.

## `startUrls` (type: `array`):

Links to channels (or @handles), videos, Shorts, playlists or YouTube search pages, one per line. You can mix them with keywords.

## `maxVideos` (type: `integer`):

How many videos to save for each keyword, playlist or channel section. 0 = all the videos YouTube lists.

## `channelSections` (type: `array`):

For channel links: which tabs to read. The video limit applies to each of Videos, Shorts and Live streams; community posts have their own limit and are free.

## `maxPosts` (type: `integer`):

How many community posts to save for each channel when Community posts is selected. Posts are free.

## `mode` (type: `string`):

Complete opens every video for exact views, likes, publication date and time, full description, tags and category. Fast keeps what the result list shows (title, channel, rounded views, duration, relative date).

## `includeTranscripts` (type: `boolean`):

Add the transcript of every video: full text, timed segments and chapters, in the video's original language. Included in the video price.

## `includeComments` (type: `boolean`):

Also collect the comments of every video. Up to 100 comments per video are included in the video price and delivered inside the video row (comments field).

## `maxComments` (type: `integer`):

How many top-level comments to collect for each video; replies are added on top. The first 100 comments and replies of a video are included in its row; any further comment is saved as its own row and charged as an extra comment. 0 = all comments.

## `commentsSort` (type: `string`):

Top comments first, or newest first.

## `maxRepliesPerComment` (type: `integer`):

How many replies to save under each comment. 0 = no replies.

## `sortBy` (type: `string`):

Applies to keywords.

## `uploadDate` (type: `string`):

Applies to keywords.

## `videoType` (type: `string`):

Applies to keywords.

## `duration` (type: `string`):

Applies to keywords.

## `publishedAfter` (type: `string`):

Keep only videos published on or after this day, for keywords, channels and playlists. Use a date (2026-11-01) or a period (7 days, 2 weeks, 3 months).

## `onlyNewVideos` (type: `boolean`):

Monitoring mode: every run saves and charges only the videos that earlier runs of the same saved task have not delivered yet. Schedule the task to get a feed of new uploads from channels, playlists or keywords.

## `country` (type: `string`):

Two-letter country code used for search results, for example US, GB, DE, IT, JP.

## `proxyConfiguration` (type: `object`):

Connection settings. The default works for most runs.

## Actor input object example

```json
{
  "searchQueries": [
    "web scraping tutorial"
  ],
  "maxVideos": 20,
  "channelSections": [
    "videos"
  ],
  "maxPosts": 10,
  "mode": "complete",
  "includeTranscripts": false,
  "includeComments": false,
  "maxComments": 20,
  "commentsSort": "top",
  "maxRepliesPerComment": 0,
  "sortBy": "relevance",
  "uploadDate": "any",
  "videoType": "any",
  "duration": "any",
  "onlyNewVideos": false,
  "country": "US",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `videos` (type: `string`):

One row per video with title, channel, views, likes, duration, publication date, tags, thumbnail and up to 100 comments.

## `comments` (type: `string`):

Comments beyond the 100 included in each video row, one row per comment (when comments are enabled).

## `channels` (type: `string`):

Name, handle, description, subscribers and video count for every channel given as input.

## `summary` (type: `string`):

For every keyword or link: status, videos and comments saved.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "web scraping tutorial"
    ],
    "maxVideos": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("monkey.d.scraping/youtube-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQueries": ["web scraping tutorial"],
    "maxVideos": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("monkey.d.scraping/youtube-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "web scraping tutorial"
  ],
  "maxVideos": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call monkey.d.scraping/youtube-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,monkey.d.scraping/youtube-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BycJTyfpLWqUzDrQd/builds/RCfvfZibKXiwdVarn/openapi.json
