YouTube Video Comments
Give one YouTube video link and an expected comment count to receive public comments, authors, engagement, and publish times
Original · en-USVolver a la traducción
Descripción general
Public comments on a YouTube video show how viewers react in their own words, which remarks attract replies, and whether the creator engages back. This Data App turns the public comment area of one video into a consistent dataset with comment text, author details, reply relationships, engagement snapshots, and timestamps.
The result is suited to repeatable analysis rather than manual scrolling. It keeps the original comment wording and connects each comment to its video, author, and parent comment, making it easier to compare reactions, identify recurring themes, and inspect conversations around a video.
Data notes
The data covers comments that are publicly visible on the supplied YouTube video at collection time. Records are ordered from newest to oldest by Published at. Each normal record is identified by its Comment ID, which is used to remove duplicates. Private, deleted, members-only, and closed-comment videos are outside the coverage.
Like count, Reply count, Dislike count, Comment count, Channel owner, and Creator heart are snapshots and may change after collection. Count values and classification values such as Comment type and Raw comment type are retained as source text rather than converted into numbers. Published at, Collected at, and Cleaned at preserve the source timestamps without inferring a timezone. Relative time keeps the on-page display text, such as 1年前. Keyword, Business ID, Video URL, and Source item may repeat the submitted video link when that is what the source record carries. No data retains the collection outcome when a video has no public comment result.
What the results look like
Each normal record represents one publicly visible comment from the selected YouTube video.
| Comment ID | Comment text | Author ID | Published at | Like count | Reply count |
|---|---|---|---|---|---|
| UgwnKwe6YJKooQl-JaZ4AaABAg | 年紀漸長覺得這好像不錯 可以有大按鈕也不用佔螢幕空間 | @attacksoil | 2025-08-25T14:52:01 | 1 | 0 |
| UgwYMOjMzFk7w-8L0Fl4AaABAg | Good job DR RICK 👍 | @JoeGentry-g7k | 2025-08-27T15:03:26 | 0 | 0 |
Additional values include avatar and channel details, video identifiers, reply relationships, creator interaction flags, collection timestamps, and the no-data outcome.
Use cases
- Compare Comment text with Like count and Reply count to identify remarks that generated stronger visible engagement.
- Group Comment text by recurring phrases, then use Published at to see how the discussion changed over time.
- Reconstruct reply threads with Parent comment ID and Comment type to distinguish top-level remarks from follow-up replies.
- Review Channel owner and Creator heart together with Author ID to see how the channel participated in the discussion.
Alcance y límites
Each run collects comments from one YouTube video. The expected comment count is 1 to 10000. Results are returned in complete batches of 20, so the actual count may be rounded up. Only publicly visible comments at collection time are covered.
- Adecuada para
- When you need public comment text and engagement details from a specific YouTube video
- When you need comment authors, reply relationships, timestamps, and creator interaction signals for analysis
- No usar para
- When you need comments from more than one video in a single run — submit a separate run for each video
- When you need private, deleted, members-only, or closed-comment data — this App covers publicly visible comments only
Gestión de fallos
Comportamiento de fallos y reintentos declarado por el autor. Recomendamos incluirlo en tu prompt del sistema al integrar.
- 1If no comments are returned, verify the video link and confirm that the video and its comments are publicly visible
- 2Retry later after rate limiting, temporary service unavailability, or a timeout
- 3When the submission outcome is unknown, avoid immediate repeated submissions that could create duplicate tasks
- 4If authentication fails, verify the API Key configured for the execution environment
Entrada
Parámetros necesarios para llamar a esta App, generados a partir del input.schema del manifest.json.
| Campo | Nombre de negocio | Tipo | Obligatorio | Predeterminado | Enum / Restricciones | Ejemplo | Descripción |
|---|---|---|---|---|---|---|---|
| video_url | Video link | string | Sí | — | — | https://www.youtube.com/watch?v=mpUwmWy_tlg | The full YouTube watch URL of the public video whose comments will be collected. Enter one video link only; an invalid or inaccessible video may return no comments. |
| comment_count | Expected comment count | integer | Sí | — | 1–10000 | 20 | The expected number of comments to collect, from 1 to 10000. Results are returned and billed in complete batches of 20, so the actual count may be rounded up. |
Salida
Estructura de campos de un único registro, generada a partir del output.schema del manifest.json.
| Campo | Nombre de negocio | Tipo | Ejemplo | Descripción |
|---|---|---|---|---|
| comment_id | Comment ID | string | UgwnKwe6YJKooQl-JaZ4AaABAg | The stable unique identifier of the YouTube comment |
| content_id | Video ID | string | mpUwmWy_tlg | The identifier of the YouTube video associated with the comment |
| cur_id | Record ID | string | 6a8d3b9297884a4f18a27756 | The source record identifier returned with this comment |
| comment_type | Comment type | string | 1 | The source value identifying the comment type, retained as source text |
| parent_comment_id | Parent comment ID | string | — | The identifier of the parent comment for a reply; top-level comments are usually empty |
| comment_user_id | Author ID | string | @attacksoil | The public YouTube identifier of the comment author |
| comment_user_avatar_url | Author avatar | string | https://yt3.ggpht.com/ytc/AIdro_nx14vEi8CIGWe-1TfJUlTVRCSMosevvM0iyj2yylc=s88-c-k-c0x00ffffff-no-rj | The public avatar image URL of the comment author |
| comment_text | Comment text | string | 年紀漸長覺得這好像不錯 可以有大按鈕也不用佔螢幕空間 | The text published in the YouTube comment |
| publish_time | Published at | string | 2025-08-25T14:52:01 | The source timestamp when the comment was published, kept as returned by the data source |
| crawl_time | Collected at | string | 2026-08-25T14:52:02 | The source timestamp when the comment record was collected, kept as returned by the data source |
| like_count | Like count | string | 1 | The comment like count at collection time, retained as source text |
| reply_count | Reply count | string | 0 | The number of replies to the comment at collection time, retained as source text |
| keyword | Keyword | string | https://www.youtube.com/watch?v=mpUwmWy_tlg | The keyword or source value associated with this comment record, retained as source text |
| root_content_url | Video URL | string | https://www.youtube.com/watch?v=mpUwmWy_tlg | The full YouTube URL of the video associated with the comment |
| channel_name | Channel name | string | — | The channel name of the video associated with the comment |
| comment_time | Relative time | string | 1年前 | The relative publish-time text shown on the page, such as 1年前 |
| raw_comment_type | Raw comment type | string | 0 | The raw source value identifying the comment type, retained as source text |
| dislike_count | Dislike count | string | — | The comment dislike count at collection time, retained as source text |
| clean_update_time | Cleaned at | string | 2026-08-25T14:52:02 | The source timestamp when the comment record was cleaned or updated, kept as returned by the data source |
| author_is_channel_owner | Channel owner | boolean | false | Whether the comment author is the channel owner of the video |
| comment_count | Comment count | string | 4 | The comment count value returned with this record, retained as source text |
| has_creator_heart | Creator heart | boolean | false | Whether the comment received a heart from the video creator |
| biz_id | Business ID | string | https://www.youtube.com/watch?v=mpUwmWy_tlg | The business identifier carried by the source comment record, retained as source text |
| source_item | Source item | string | https://www.youtube.com/watch?v=mpUwmWy_tlg | The submitted YouTube video URL associated with this result record |
| no_data | No data | boolean | false | Whether no public comment data was collected for the source video |
Schema del registro
La salida se devuelve registro a registro. detail.output.idFieldHint
{
"type": "object",
"properties": {
"comment_id": {
"type": "string",
"title": "Comment ID",
"description": "The stable unique identifier of the YouTube comment",
"prefill": "UgwnKwe6YJKooQl-JaZ4AaABAg"
},
"content_id": {
"type": "string",
"title": "Video ID",
"description": "The identifier of the YouTube video associated with the comment",
"prefill": "mpUwmWy_tlg"
},
"cur_id": {
"type": "string",
"title": "Record ID",
"description": "The source record identifier returned with this comment",
"prefill": "6a8d3b9297884a4f18a27756"
},
"comment_type": {
"type": "string",
"title": "Comment type",
"description": "The source value identifying the comment type, retained as source text",
"prefill": "1"
},
"parent_comment_id": {
"type": "string",
"title": "Parent comment ID",
"description": "The identifier of the parent comment for a reply; top-level comments are usually empty"
},
"comment_user_id": {
"type": "string",
"title": "Author ID",
"description": "The public YouTube identifier of the comment author",
"prefill": "@attacksoil"
},
"comment_user_avatar_url": {
"type": "string",
"title": "Author avatar",
"description": "The public avatar image URL of the comment author",
"prefill": "https://yt3.ggpht.com/ytc/AIdro_nx14vEi8CIGWe-1TfJUlTVRCSMosevvM0iyj2yylc=s88-c-k-c0x00ffffff-no-rj"
},
"comment_text": {
"type": "string",
"title": "Comment text",
"description": "The text published in the YouTube comment",
"prefill": "年紀漸長覺得這好像不錯 可以有大按鈕也不用佔螢幕空間"
},
"publish_time": {
"type": "string",
"title": "Published at",
"description": "The source timestamp when the comment was published, kept as returned by the data source",
"prefill": "2025-08-25T14:52:01"
},
"crawl_time": {
"type": "string",
"title": "Collected at",
"description": "The source timestamp when the comment record was collected, kept as returned by the data source",
"prefill": "2026-08-25T14:52:02"
},
"like_count": {
"type": "string",
"title": "Like count",
"description": "The comment like count at collection time, retained as source text",
"prefill": "1"
},
"reply_count": {
"type": "string",
"title": "Reply count",
"description": "The number of replies to the comment at collection time, retained as source text",
"prefill": "0"
},
"keyword": {
"type": "string",
"title": "Keyword",
"description": "The keyword or source value associated with this comment record, retained as source text",
"prefill": "https://www.youtube.com/watch?v=mpUwmWy_tlg"
},
"root_content_url": {
"type": "string",
"title": "Video URL",
"description": "The full YouTube URL of the video associated with the comment",
"prefill": "https://www.youtube.com/watch?v=mpUwmWy_tlg"
},
"channel_name": {
"type": "string",
"title": "Channel name",
"description": "The channel name of the video associated with the comment"
},
"comment_time": {
"type": "string",
"title": "Relative time",
"description": "The relative publish-time text shown on the page, such as 1年前",
"prefill": "1年前"
},
"raw_comment_type": {
"type": "string",
"title": "Raw comment type",
"description": "The raw source value identifying the comment type, retained as source text",
"prefill": "0"
},
"dislike_count": {
"type": "string",
"title": "Dislike count",
"description": "The comment dislike count at collection time, retained as source text"
},
"clean_update_time": {
"type": "string",
"title": "Cleaned at",
"description": "The source timestamp when the comment record was cleaned or updated, kept as returned by the data source",
"prefill": "2026-08-25T14:52:02"
},
"author_is_channel_owner": {
"type": "boolean",
"title": "Channel owner",
"description": "Whether the comment author is the channel owner of the video",
"prefill": false
},
"comment_count": {
"type": "string",
"title": "Comment count",
"description": "The comment count value returned with this record, retained as source text",
"prefill": "4"
},
"has_creator_heart": {
"type": "boolean",
"title": "Creator heart",
"description": "Whether the comment received a heart from the video creator",
"prefill": false
},
"biz_id": {
"type": "string",
"title": "Business ID",
"description": "The business identifier carried by the source comment record, retained as source text",
"prefill": "https://www.youtube.com/watch?v=mpUwmWy_tlg"
},
"source_item": {
"type": "string",
"title": "Source item",
"description": "The submitted YouTube video URL associated with this result record",
"prefill": "https://www.youtube.com/watch?v=mpUwmWy_tlg"
},
"no_data": {
"type": "boolean",
"title": "No data",
"description": "Whether no public comment data was collected for the source video",
"prefill": false
}
},
"required": [],
"additionalProperties": false
}Integración
Esta App se puede integrar mediante MCP, API, SDK o exportación de archivos — todos los canales comparten las mismas capacidades y precios. Cada solicitud se autentica con la cabecera Authorization: Bearer usando una API Key (de larga duración, creada en la consola de Data Hub); los clientes MCP también pueden iniciar sesión con OAuth sin clave. Más opciones como CLI y Skill están en camino.
Con MCP (Model Context Protocol) puedes llamar a esta App directamente desde clientes de IA como Claude y Cursor. Elige tu cliente y el modo de autenticación, y copia la configuración de abajo.
Configuración del cliente
Sustituye el valor tras Bearer por tu API Key de larga duración. Funciona en cualquier cliente, CI o entorno sin interfaz.
{
"mcpServers": {
"hello_moto__youtube-video-comments": {
"type": "http",
"url": "https://mcp-v2.octoparse.com?pin=hello_moto/youtube-video-comments",
"headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
}
}
}Deja que la IA lo configure por ti
¿No quieres editar configuraciones a mano? Copia el prompt de instalación y pégalo en cualquier cliente de IA: completará la configuración a su manera. (El prompt le pide a la IA que te solicite tu API Key, de modo que las credenciales nunca queden en el historial de chat ni en configuraciones compartidas.)
detail.access.mcp.composeHint
Precios
Se cobra según el número de registros devueltos correctamente. Las ejecuciones fallidas no se cobran. Se factura en unidades de 20 registro; cualquier unidad parcial se redondea a 20 registro.
Se cobra una vez por cada ejecución enviada, independientemente del número de registros devueltos.
Los distintos eventos de facturación se acumulan de forma independiente. Consulta cada elemento para más detalles. Las ejecuciones fallidas no se cobran.
Ver créditosPruébalo ahora
Rellena los parámetros y ejecuta — los resultados provienen de una llamada real.