YouTube Video Comments
Give one YouTube video link and an expected comment count to receive public comments, authors, engagement, and publish times
Source · en-USRevenir à la traduction
Aperçu
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.
Périmètre et limites
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.
- Adapté pour
- 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
- À ne pas utiliser pour
- 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
Gestion des échecs
Comportement en cas d'échec et de nouvelle tentative déclaré par l'auteur. Nous vous recommandons de l'inclure dans votre prompt système lors de l'intégration.
- 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
Entrée
Paramètres requis pour appeler cette App, générés à partir de l'input.schema du manifest.json.
| Champ | Nom métier | Type | Requis | Défaut | Énum / Contraintes | Exemple | Description |
|---|---|---|---|---|---|---|---|
| video_url | Video link | string | Oui | — | — | 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 | Oui | — | 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. |
Sortie
Structure des champs d'un enregistrement, générée à partir de l'output.schema du manifest.json.
| Champ | Nom métier | Type | Exemple | Description |
|---|---|---|---|---|
| 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 de l'enregistrement
La sortie est renvoyée enregistrement par enregistrement. 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
}Intégration
Cette App peut être intégrée via MCP, API, SDK ou export de fichiers — tous les canaux partagent les mêmes capacités et la même tarification. Chaque requête s'authentifie avec l'en-tête Authorization: Bearer à l'aide d'une API Key (longue durée, créée dans la console Data Hub) ; les clients MCP peuvent aussi se connecter via OAuth, sans clé. D'autres options comme la CLI et Skill arrivent bientôt.
Avec MCP (Model Context Protocol), vous pouvez appeler cette App directement depuis des clients IA comme Claude et Cursor. Choisissez votre client et votre mode d'authentification, puis copiez la config ci-dessous.
Config du client
Remplacez la valeur après Bearer par votre API Key longue durée. Fonctionne dans n'importe quel client, en CI ou en environnement sans navigateur.
{
"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>" }
}
}
}Laissez l'IA tout configurer pour vous
Vous ne voulez pas modifier les configs à la main ? Copiez le prompt d'installation et collez-le dans n'importe quel client IA — il effectuera la configuration à sa manière. (Le prompt demande à l'IA de vous réclamer votre API Key, afin que les identifiants ne finissent jamais dans l'historique de conversation ni dans des configs partagées.)
detail.access.mcp.composeHint
Tarifs
Facturé selon le nombre d'enregistrements renvoyés avec succès. Les exécutions échouées ne sont pas facturées. Facturé par unités de 20 enregistrement ; toute unité incomplète est arrondie à 20 enregistrement.
Facturé une fois par exécution soumise, quel que soit le nombre d'enregistrements renvoyés.
Plusieurs événements de facturation se cumulent indépendamment. Voir chaque élément pour les détails. Les exécutions échouées ne sont pas facturées.
Voir les créditsEssayer maintenant
Renseignez les paramètres et lancez l'exécution — les résultats proviennent d'un appel réel.