<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.commentThreads.html">commentThreads</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#insert">insert(part, body)</a></code></p>
<p class="firstline">Creates a new top-level comment. To add a reply to an existing comment, use the comments.insert method instead.</p>
<p class="toc_element">
  <code><a href="#list">list(part, channelId=None, id=None, pageToken=None, allThreadsRelatedToChannelId=None, moderationStatus=None, videoId=None, maxResults=None, searchTerms=None, textFormat=None, order=None)</a></code></p>
<p class="firstline">Returns a list of comment threads that match the API request parameters.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#update">update(part, body)</a></code></p>
<p class="firstline">Modifies the top-level comment in a comment thread.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="insert">insert(part, body)</code>
  <pre>Creates a new top-level comment. To add a reply to an existing comment, use the comments.insert method instead.

Args:
  part: string, The part parameter identifies the properties that the API response will include. Set the parameter value to snippet. The snippet part has a quota cost of 2 units. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A comment thread represents information that applies to a top level comment and all its replies. It can also include the top level comment itself and some of the replies.
    "snippet": { # Basic details about a comment thread. # The snippet object contains basic details about the comment thread and also the top level comment.
      "isPublic": True or False, # Whether the thread (and therefore all its comments) is visible to all YouTube users.
      "channelId": "A String", # The YouTube channel the comments in the thread refer to or the channel with the video the comments refer to. If video_id isn't set the comments refer to the channel itself.
      "videoId": "A String", # The ID of the video the comments refer to, if any. No video_id implies a channel discussion comment.
      "canReply": True or False, # Whether the current viewer of the thread can reply to it. This is viewer specific - other viewers may see a different value for this field.
      "totalReplyCount": 42, # The total number of replies (not including the top level comment).
      "topLevelComment": { # A comment represents a single YouTube comment. # The top level comment of this thread.
        "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
          "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
          "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
          "authorDisplayName": "A String", # The name of the user who posted the comment.
          "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
          "videoId": "A String", # The ID of the video the comment refers to, if any.
          "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
          "likeCount": 42, # The total number of likes this comment has received.
          "authorChannelId": "", # The id of the author's YouTube channel, if any.
          "parentId": "A String", # The unique id of the parent comment, only set for replies.
          "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
          "canRate": True or False, # Whether the current viewer can rate this comment.
          "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
          "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
          "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
          "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
        },
        "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
        "etag": "A String", # Etag of this resource.
        "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
      },
    },
    "kind": "youtube#commentThread", # Identifies what kind of resource this is. Value: the fixed string "youtube#commentThread".
    "etag": "A String", # Etag of this resource.
    "id": "A String", # The ID that YouTube uses to uniquely identify the comment thread.
    "replies": { # Comments written in (direct or indirect) reply to the top level comment. # The replies object contains a limited number of replies (if any) to the top level comment found in the snippet.
      "comments": [ # A limited number of replies. Unless the number of replies returned equals total_reply_count in the snippet the returned replies are only a subset of the total number of replies.
        { # A comment represents a single YouTube comment.
          "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
            "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
            "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
            "authorDisplayName": "A String", # The name of the user who posted the comment.
            "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
            "videoId": "A String", # The ID of the video the comment refers to, if any.
            "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
            "likeCount": 42, # The total number of likes this comment has received.
            "authorChannelId": "", # The id of the author's YouTube channel, if any.
            "parentId": "A String", # The unique id of the parent comment, only set for replies.
            "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "canRate": True or False, # Whether the current viewer can rate this comment.
            "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
            "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
            "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
          },
          "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
          "etag": "A String", # Etag of this resource.
          "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
        },
      ],
    },
  }


Returns:
  An object of the form:

    { # A comment thread represents information that applies to a top level comment and all its replies. It can also include the top level comment itself and some of the replies.
      "snippet": { # Basic details about a comment thread. # The snippet object contains basic details about the comment thread and also the top level comment.
        "isPublic": True or False, # Whether the thread (and therefore all its comments) is visible to all YouTube users.
        "channelId": "A String", # The YouTube channel the comments in the thread refer to or the channel with the video the comments refer to. If video_id isn't set the comments refer to the channel itself.
        "videoId": "A String", # The ID of the video the comments refer to, if any. No video_id implies a channel discussion comment.
        "canReply": True or False, # Whether the current viewer of the thread can reply to it. This is viewer specific - other viewers may see a different value for this field.
        "totalReplyCount": 42, # The total number of replies (not including the top level comment).
        "topLevelComment": { # A comment represents a single YouTube comment. # The top level comment of this thread.
          "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
            "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
            "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
            "authorDisplayName": "A String", # The name of the user who posted the comment.
            "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
            "videoId": "A String", # The ID of the video the comment refers to, if any.
            "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
            "likeCount": 42, # The total number of likes this comment has received.
            "authorChannelId": "", # The id of the author's YouTube channel, if any.
            "parentId": "A String", # The unique id of the parent comment, only set for replies.
            "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "canRate": True or False, # Whether the current viewer can rate this comment.
            "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
            "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
            "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
          },
          "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
          "etag": "A String", # Etag of this resource.
          "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
        },
      },
      "kind": "youtube#commentThread", # Identifies what kind of resource this is. Value: the fixed string "youtube#commentThread".
      "etag": "A String", # Etag of this resource.
      "id": "A String", # The ID that YouTube uses to uniquely identify the comment thread.
      "replies": { # Comments written in (direct or indirect) reply to the top level comment. # The replies object contains a limited number of replies (if any) to the top level comment found in the snippet.
        "comments": [ # A limited number of replies. Unless the number of replies returned equals total_reply_count in the snippet the returned replies are only a subset of the total number of replies.
          { # A comment represents a single YouTube comment.
            "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
              "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
              "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
              "authorDisplayName": "A String", # The name of the user who posted the comment.
              "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
              "videoId": "A String", # The ID of the video the comment refers to, if any.
              "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
              "likeCount": 42, # The total number of likes this comment has received.
              "authorChannelId": "", # The id of the author's YouTube channel, if any.
              "parentId": "A String", # The unique id of the parent comment, only set for replies.
              "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
              "canRate": True or False, # Whether the current viewer can rate this comment.
              "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
              "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
              "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
              "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
            },
            "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
            "etag": "A String", # Etag of this resource.
            "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
          },
        ],
      },
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(part, channelId=None, id=None, pageToken=None, allThreadsRelatedToChannelId=None, moderationStatus=None, videoId=None, maxResults=None, searchTerms=None, textFormat=None, order=None)</code>
  <pre>Returns a list of comment threads that match the API request parameters.

Args:
  part: string, The part parameter specifies a comma-separated list of one or more commentThread resource properties that the API response will include. (required)
  channelId: string, The channelId parameter instructs the API to return comment threads containing comments about the specified channel. (The response will not include comments left on videos that the channel uploaded.)
  id: string, The id parameter specifies a comma-separated list of comment thread IDs for the resources that should be retrieved.
  pageToken: string, The pageToken parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken property identifies the next page of the result that can be retrieved.

Note: This parameter is not supported for use in conjunction with the id parameter.
  allThreadsRelatedToChannelId: string, The allThreadsRelatedToChannelId parameter instructs the API to return all comment threads associated with the specified channel. The response can include comments about the channel or about the channel's videos.
  moderationStatus: string, Set this parameter to limit the returned comment threads to a particular moderation state.

Note: This parameter is not supported for use in conjunction with the id parameter.
    Allowed values
      heldForReview - Retrieve comment threads that are awaiting review by a moderator. A comment thread can be included in the response if the top-level comment or at least one of the replies to that comment are awaiting review.
      likelySpam - Retrieve comment threads classified as likely to be spam. A comment thread can be included in the response if the top-level comment or at least one of the replies to that comment is considered likely to be spam.
      published - Retrieve threads of published comments. This is the default value. A comment thread can be included in the response if its top-level comment has been published.
  videoId: string, The videoId parameter instructs the API to return comment threads associated with the specified video ID.
  maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.

Note: This parameter is not supported for use in conjunction with the id parameter.
  searchTerms: string, The searchTerms parameter instructs the API to limit the API response to only contain comments that contain the specified search terms.

Note: This parameter is not supported for use in conjunction with the id parameter.
  textFormat: string, Set this parameter's value to html or plainText to instruct the API to return the comments left by users in html formatted or in plain text.
    Allowed values
      html - Returns the comments in HTML format. This is the default value.
      plainText - Returns the comments in plain text format.
  order: string, The order parameter specifies the order in which the API response should list comment threads. Valid values are: 
- time - Comment threads are ordered by time. This is the default behavior.
- relevance - Comment threads are ordered by relevance.Note: This parameter is not supported for use in conjunction with the id parameter.
    Allowed values
      relevance - Order by relevance.
      time - Order by time.

Returns:
  An object of the form:

    {
    "eventId": "A String", # Serialized EventId of the request which produced this response.
    "nextPageToken": "A String", # The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set.
    "kind": "youtube#commentThreadListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#commentThreadListResponse".
    "visitorId": "A String", # The visitorId identifies the visitor.
    "items": [ # A list of comment threads that match the request criteria.
      { # A comment thread represents information that applies to a top level comment and all its replies. It can also include the top level comment itself and some of the replies.
          "snippet": { # Basic details about a comment thread. # The snippet object contains basic details about the comment thread and also the top level comment.
            "isPublic": True or False, # Whether the thread (and therefore all its comments) is visible to all YouTube users.
            "channelId": "A String", # The YouTube channel the comments in the thread refer to or the channel with the video the comments refer to. If video_id isn't set the comments refer to the channel itself.
            "videoId": "A String", # The ID of the video the comments refer to, if any. No video_id implies a channel discussion comment.
            "canReply": True or False, # Whether the current viewer of the thread can reply to it. This is viewer specific - other viewers may see a different value for this field.
            "totalReplyCount": 42, # The total number of replies (not including the top level comment).
            "topLevelComment": { # A comment represents a single YouTube comment. # The top level comment of this thread.
              "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
                "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
                "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
                "authorDisplayName": "A String", # The name of the user who posted the comment.
                "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
                "videoId": "A String", # The ID of the video the comment refers to, if any.
                "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
                "likeCount": 42, # The total number of likes this comment has received.
                "authorChannelId": "", # The id of the author's YouTube channel, if any.
                "parentId": "A String", # The unique id of the parent comment, only set for replies.
                "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
                "canRate": True or False, # Whether the current viewer can rate this comment.
                "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
                "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
                "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
                "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
              },
              "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
              "etag": "A String", # Etag of this resource.
              "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
            },
          },
          "kind": "youtube#commentThread", # Identifies what kind of resource this is. Value: the fixed string "youtube#commentThread".
          "etag": "A String", # Etag of this resource.
          "id": "A String", # The ID that YouTube uses to uniquely identify the comment thread.
          "replies": { # Comments written in (direct or indirect) reply to the top level comment. # The replies object contains a limited number of replies (if any) to the top level comment found in the snippet.
            "comments": [ # A limited number of replies. Unless the number of replies returned equals total_reply_count in the snippet the returned replies are only a subset of the total number of replies.
              { # A comment represents a single YouTube comment.
                "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
                  "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
                  "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
                  "authorDisplayName": "A String", # The name of the user who posted the comment.
                  "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
                  "videoId": "A String", # The ID of the video the comment refers to, if any.
                  "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
                  "likeCount": 42, # The total number of likes this comment has received.
                  "authorChannelId": "", # The id of the author's YouTube channel, if any.
                  "parentId": "A String", # The unique id of the parent comment, only set for replies.
                  "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
                  "canRate": True or False, # Whether the current viewer can rate this comment.
                  "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
                  "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
                  "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
                  "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
                },
                "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
                "etag": "A String", # Etag of this resource.
                "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
              },
            ],
          },
        },
    ],
    "tokenPagination": { # Stub token pagination template to suppress results.
    },
    "etag": "A String", # Etag of this resource.
    "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page.
      "totalResults": 42, # The total number of results in the result set.
      "resultsPerPage": 42, # The number of results included in the API response.
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="update">update(part, body)</code>
  <pre>Modifies the top-level comment in a comment thread.

Args:
  part: string, The part parameter specifies a comma-separated list of commentThread resource properties that the API response will include. You must at least include the snippet part in the parameter value since that part contains all of the properties that the API request can update. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A comment thread represents information that applies to a top level comment and all its replies. It can also include the top level comment itself and some of the replies.
    "snippet": { # Basic details about a comment thread. # The snippet object contains basic details about the comment thread and also the top level comment.
      "isPublic": True or False, # Whether the thread (and therefore all its comments) is visible to all YouTube users.
      "channelId": "A String", # The YouTube channel the comments in the thread refer to or the channel with the video the comments refer to. If video_id isn't set the comments refer to the channel itself.
      "videoId": "A String", # The ID of the video the comments refer to, if any. No video_id implies a channel discussion comment.
      "canReply": True or False, # Whether the current viewer of the thread can reply to it. This is viewer specific - other viewers may see a different value for this field.
      "totalReplyCount": 42, # The total number of replies (not including the top level comment).
      "topLevelComment": { # A comment represents a single YouTube comment. # The top level comment of this thread.
        "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
          "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
          "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
          "authorDisplayName": "A String", # The name of the user who posted the comment.
          "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
          "videoId": "A String", # The ID of the video the comment refers to, if any.
          "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
          "likeCount": 42, # The total number of likes this comment has received.
          "authorChannelId": "", # The id of the author's YouTube channel, if any.
          "parentId": "A String", # The unique id of the parent comment, only set for replies.
          "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
          "canRate": True or False, # Whether the current viewer can rate this comment.
          "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
          "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
          "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
          "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
        },
        "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
        "etag": "A String", # Etag of this resource.
        "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
      },
    },
    "kind": "youtube#commentThread", # Identifies what kind of resource this is. Value: the fixed string "youtube#commentThread".
    "etag": "A String", # Etag of this resource.
    "id": "A String", # The ID that YouTube uses to uniquely identify the comment thread.
    "replies": { # Comments written in (direct or indirect) reply to the top level comment. # The replies object contains a limited number of replies (if any) to the top level comment found in the snippet.
      "comments": [ # A limited number of replies. Unless the number of replies returned equals total_reply_count in the snippet the returned replies are only a subset of the total number of replies.
        { # A comment represents a single YouTube comment.
          "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
            "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
            "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
            "authorDisplayName": "A String", # The name of the user who posted the comment.
            "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
            "videoId": "A String", # The ID of the video the comment refers to, if any.
            "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
            "likeCount": 42, # The total number of likes this comment has received.
            "authorChannelId": "", # The id of the author's YouTube channel, if any.
            "parentId": "A String", # The unique id of the parent comment, only set for replies.
            "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "canRate": True or False, # Whether the current viewer can rate this comment.
            "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
            "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
            "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
          },
          "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
          "etag": "A String", # Etag of this resource.
          "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
        },
      ],
    },
  }


Returns:
  An object of the form:

    { # A comment thread represents information that applies to a top level comment and all its replies. It can also include the top level comment itself and some of the replies.
      "snippet": { # Basic details about a comment thread. # The snippet object contains basic details about the comment thread and also the top level comment.
        "isPublic": True or False, # Whether the thread (and therefore all its comments) is visible to all YouTube users.
        "channelId": "A String", # The YouTube channel the comments in the thread refer to or the channel with the video the comments refer to. If video_id isn't set the comments refer to the channel itself.
        "videoId": "A String", # The ID of the video the comments refer to, if any. No video_id implies a channel discussion comment.
        "canReply": True or False, # Whether the current viewer of the thread can reply to it. This is viewer specific - other viewers may see a different value for this field.
        "totalReplyCount": 42, # The total number of replies (not including the top level comment).
        "topLevelComment": { # A comment represents a single YouTube comment. # The top level comment of this thread.
          "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
            "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
            "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
            "authorDisplayName": "A String", # The name of the user who posted the comment.
            "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
            "videoId": "A String", # The ID of the video the comment refers to, if any.
            "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
            "likeCount": 42, # The total number of likes this comment has received.
            "authorChannelId": "", # The id of the author's YouTube channel, if any.
            "parentId": "A String", # The unique id of the parent comment, only set for replies.
            "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "canRate": True or False, # Whether the current viewer can rate this comment.
            "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
            "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
            "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
          },
          "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
          "etag": "A String", # Etag of this resource.
          "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
        },
      },
      "kind": "youtube#commentThread", # Identifies what kind of resource this is. Value: the fixed string "youtube#commentThread".
      "etag": "A String", # Etag of this resource.
      "id": "A String", # The ID that YouTube uses to uniquely identify the comment thread.
      "replies": { # Comments written in (direct or indirect) reply to the top level comment. # The replies object contains a limited number of replies (if any) to the top level comment found in the snippet.
        "comments": [ # A limited number of replies. Unless the number of replies returned equals total_reply_count in the snippet the returned replies are only a subset of the total number of replies.
          { # A comment represents a single YouTube comment.
            "snippet": { # Basic details about a comment, such as its author and text. # The snippet object contains basic details about the comment.
              "authorChannelUrl": "A String", # Link to the author's YouTube channel, if any.
              "viewerRating": "A String", # The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.
              "authorDisplayName": "A String", # The name of the user who posted the comment.
              "channelId": "A String", # The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel.
              "videoId": "A String", # The ID of the video the comment refers to, if any.
              "moderationStatus": "A String", # The comment's moderation status. Will not be set if the comments were requested through the id filter.
              "likeCount": 42, # The total number of likes this comment has received.
              "authorChannelId": "", # The id of the author's YouTube channel, if any.
              "parentId": "A String", # The unique id of the parent comment, only set for replies.
              "publishedAt": "A String", # The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
              "canRate": True or False, # Whether the current viewer can rate this comment.
              "textOriginal": "A String", # The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author.
              "updatedAt": "A String", # The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
              "authorProfileImageUrl": "A String", # The URL for the avatar of the user who posted the comment.
              "textDisplay": "A String", # The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc.
            },
            "kind": "youtube#comment", # Identifies what kind of resource this is. Value: the fixed string "youtube#comment".
            "etag": "A String", # Etag of this resource.
            "id": "A String", # The ID that YouTube uses to uniquely identify the comment.
          },
        ],
      },
    }</pre>
</div>

</body></html>