YouTube CommentTrigger

YouTube CommentTrigger

Certified

Trigger flow on new YouTube comments

Polls one or more video IDs for comments newer than the last interval (default PT30M). Uses an OAuth2 bearer token, honors YouTube's 1–100 maxResults limit (default 20), and fetches comments ordered by time or relevance.

yaml
type: io.kestra.plugin.youtube.CommentTrigger

Monitor video for new comments

yaml
id: youtube_comment_monitor
namespace: company.team

tasks:
  - id: notify_slack
    type: io.kestra.plugin.slack.notifications.SlackIncomingWebhook
    url: "{{ secret('SLACK_WEBHOOK_URL') }}"
    messageText: "New comment from {{ trigger.authorDisplayName }}: {{ trigger.textDisplay }}"

triggers:
  - id: new_comment_trigger
    type: io.kestra.plugin.youtube.CommentTrigger
    accessToken: "{{ secret('YOUTUBE_ACCESS_TOKEN') }}"
    videoIds:
      - "dQw4w9WgXcQ"
    interval: PT30M
    maxResults: 20

Monitor multiple videos for comments

yaml
id: youtube_multi_video_comments
namespace: company.team

triggers:
  - id: multi_video_comments
    type: io.kestra.plugin.youtube.CommentTrigger
    accessToken: "{{ secret('YOUTUBE_ACCESS_TOKEN') }}"
    videoIds:
      - "dQw4w9WgXcQ"
      - "9bZkp7q19f0"
    interval: PT15M
Properties

Access token

OAuth2 bearer token used to call the YouTube Data API

SubTypestring

Video IDs

YouTube video IDs to monitor for new comments

Defaultfalse

Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.

Defaultkestra-yt-plugin

Application name

Application name sent to YouTube API; defaults to kestra-yt-plugin

DefaultPT30M
Formatduration

Polling interval

How often to check for new comments; defaults to PT30M

Default20

Maximum results per video

How many recent comments to fetch per video (1-100, default 20)

Defaulttime

Order

Order of comments to retrieve: time or relevance; defaults to time

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

List of execution states after which a trigger should be stopped (a.k.a. disabled).

Defaulttrue

A condition that determines whether the trigger should run.

A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.

All new comments detected

Definitions
authorDisplayNamestring
commentIdstring
publishedAtstring
Formatdate-time
textDisplaystring
videoIdstring

Display name of the comment author

Comment ID

Number of new comments detected

Formatdate-time

Time the comment was published

Comment text

ID of the video the comment belongs to