YouTube Search & Comments Scraper
Pricing
from $2.00 / 1,000 results
YouTube Search & Comments Scraper
Search YouTube videos and extract public comments, replies, and video metadata. Export results to CSV, Excel, or JSON.
YouTube Search & Comments Scraper
Pricing
from $2.00 / 1,000 results
Search YouTube videos and extract public comments, replies, and video metadata. Export results to CSV, Excel, or JSON.
You can access the YouTube Search & Comments Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, youβll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "b9Va3JH15PvT0QMGk" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/devcake~youtube-search-comments/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-devcake-youtube-search-comments", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/devcake~youtube-search-comments/runs": { "post": { "operationId": "runs-sync-devcake-youtube-search-comments", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/devcake~youtube-search-comments/run-sync": { "post": { "operationId": "run-sync-devcake-youtube-search-comments", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "workflow": { "title": "What do you want to collect?", "enum": [ "search", "channel", "direct_comments" ], "type": "string", "description": "Search by keyword, collect a known channel tab, or scrape comments from specific video URLs." }, "searchQueries": { "title": "Search queries", "minItems": 1, "maxItems": 20, "type": "array", "description": "Enter one or more topics, keywords, or phrases.", "items": { "type": "string" } }, "channelUrls": { "title": "Channel URLs, handles, or IDs", "minItems": 1, "maxItems": 100, "type": "array", "description": "Examples: https://www.youtube.com/@OpenAI, @OpenAI, or a UC⦠channel ID.", "items": { "type": "string" } }, "channelContentType": { "title": "Channel tab", "enum": [ "videos", "shorts", "live" ], "type": "string", "description": "Choose whether to collect the channel's Videos, Shorts, or Live tab.", "default": "videos" }, "videoUrls": { "title": "Video URLs or IDs", "minItems": 1, "maxItems": 1000, "type": "array", "description": "Supports watch, Shorts, live, youtu.be URLs, and 11-character video IDs.", "items": { "type": "string" } }, "maxVideos": { "title": "Maximum videos", "minimum": 1, "maximum": 1000, "type": "integer", "description": "Maximum unique videos collected across search queries or channels. Direct-comment runs apply this cap to supplied URLs.", "default": 20 }, "includeComments": { "title": "Include comments", "type": "boolean", "description": "Collect public top-level comments from every discovered video.", "default": false }, "maxCommentsPerVideo": { "title": "Maximum comments per video", "minimum": 1, "maximum": 2000, "type": "integer", "description": "Maximum number of public top-level comments collected from each video.", "default": 100 }, "includeReplies": { "title": "Include replies", "type": "boolean", "description": "Collect public replies and connect them to their parent comments. This also enables comments.", "default": false }, "maxRepliesPerComment": { "title": "Maximum replies per comment", "minimum": 1, "maximum": 500, "type": "integer", "description": "Maximum public replies collected from each top-level comment.", "default": 50 }, "languageCode": { "title": "Language code", "minLength": 2, "maxLength": 12, "type": "string", "description": "YouTube interface language, for example en, es, de, or fr.", "default": "en" }, "countryCode": { "title": "Country code", "pattern": "^[A-Za-z]{2}$", "type": "string", "description": "Two-letter country context, for example US, GB, DE, or BR.", "default": "US" } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for YouTube Search & Comments Scraper from the options below:
If youβd like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: