> ## Documentation Index
> Fetch the complete documentation index at: https://aisa.one/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get video comments

> Get video comments

Get video comments

**Pricing** — base \$0.00145 per successful call (provider cost × 1.45; final charge scales by your plan multiplier). Charged only when the upstream response body `code` is `200`.

<Note>
  Response structure is not yet fully documented — **refer to the actual API response**.
</Note>

## Example

```bash theme={null}
curl "https://api.aisa.one/apis/v1/tikhub/youtube/web_v2/get_video_comments?video_id=LuIL5JATZsc" \
  -H "Authorization: Bearer YOUR_API_KEY"
```


## OpenAPI

````yaml openapi/tikhub.json GET /tikhub/youtube/web_v2/get_video_comments
openapi: 3.0.0
info:
  title: TikHub API
  description: >-
    Multi-platform social media data — Douyin, TikTok, Bilibili, Kuaishou,
    Weibo, Xiaohongshu, Zhihu, and commercial (Xingtu/Huahuo/Billboard)
    endpoints.
  version: 1.0.0
servers:
  - url: https://api.aisa.one/apis/v1
security:
  - bearerAuth: []
paths:
  /tikhub/youtube/web_v2/get_video_comments:
    get:
      tags:
        - TikHub - Youtube
      summary: Get video comments
      description: >-
        YouTube (web_v2).


        ### Purpose:

        - Get YouTube video first-level comments


        ### Parameters:


        #### 📌 Required:

        **video_id** (string)

        - **Purpose**: Video ID

        - **Format**: YouTube video ID string

        - **Example**: `"oaSNBz4qMQY"`

        - **How to get**: Extract from URL
        `https://www.youtube.com/watch?v=oaSNBz4qMQY`


        #### ⚙️ Optional:

        **language_code** (string, optional)

        - **Purpose**: Set language preference for comments

        - **Default**: `"zh-CN"`

        - **Values**: `"zh-CN"`, `"en-US"`, `"ja-JP"`, `"ko-KR"`, etc.


        **country_code** (string, optional)

        - **Purpose**: Set region code

        - **Default**: `"US"`

        - **Values**: `"US"`, `"JP"`, `"GB"`, etc.


        **sort_by** (string, optional)

        - **Purpose**: Comment sorting method

        - **Default**: `"top"`

        - **Values**:
          - `"top"` - Top comments (sorted by likes)
          - `"newest"` - Newest comments (sorted by time)

        **continuation_token** (string, optional)

        - **Purpose**: Pagination token for next page

        - **Default**: `null`

        - **How to get**: Extract from previous response


        **need_format** (boolean, optional)

        - **Purpose**: Whether to return cleaned simplified data

        - **Default**: `true`

        - **Values**:
          - `false` - Return raw complete data
          - `true` - Return cleaned simplified data (recommended, default)

        ### Response Structure (need_format=true):

        ```json

        {
          "comments": [
            {
              "comment_id": "UgzRDoUJAvDNn5_8i8p4AaABAg",
              "content": "Comment text content",
              "published_time": "1 day ago",
              "reply_level": 0,
              "like_count": "2",
              "like_count_a11y": "2 likes",
              "reply_count": "0",
              "reply_count_a11y": "0 replies",
              "reply_count_text": "1 reply",
              "reply_continuation_token": "...",
              "author": {
                "channel_id": "UCzRzHrLFuH0lHZYnrI84I8Q",
                "display_name": "@username",
                "channel_url": "https://www.youtube.com/@username",
                "avatar_url": "https://yt3.ggpht.com/...",
                "avatar_thumbnails": [
                  {"url": "...", "width": 88, "height": 88}
                ],
                "is_verified": false,
                "is_creator": false,
                "is_artist": false
              },
              "creator_thumbnail_url": "https://yt3.ggpht.com/..."
            }
          ],
          "continuation_token": "next page token"
        }

        ```


        ### Field Descriptions:

        - `comment_id`: Unique comment ID

        - `content`: Comment text content

        - `published_time`: Published time (relative, e.g., "1 day ago")

        - `reply_level`: Reply level (0 for first-level comments)

        - `like_count`: Number of likes

        - `reply_count`: Number of replies

        - `reply_count_text`: Reply count text (e.g., "1 reply")

        - `reply_continuation_token`: Token to get replies for this comment

        - `author`: Comment author info
          - `channel_id`: Author's channel ID
          - `display_name`: Display name
          - `channel_url`: Channel URL
          - `avatar_url`: Avatar URL
          - `is_verified`: Whether verified
          - `is_creator`: Whether video creator
          - `is_artist`: Whether artist
        - `creator_thumbnail_url`: Video creator's avatar URL
      operationId: get_tikhub_youtube_web_v2_get_video_comments
      parameters:
        - name: video_id
          in: query
          required: true
          schema:
            type: string
            minLength: 11
            maxLength: 11
            description: Video ID
            title: Video Id
          description: Video ID
          example: LuIL5JATZsc
        - name: language_code
          in: query
          required: false
          schema:
            type: string
            description: Language code
            default: zh-CN
            title: Language Code
          description: Language code
          example: zh-CN
        - name: country_code
          in: query
          required: false
          schema:
            type: string
            title: Country Code
            description: Country code
            default: US
          description: Country code
          example: US
        - name: sort_by
          in: query
          required: false
          schema:
            description: Sort by
            default: top
            allOf:
              - $ref: '#/components/schemas/CommentSortByAPI'
          description: Sort by
          examples:
            top:
              summary: See API documentation
              value: top
            newest:
              summary: See API documentation
              value: newest
        - name: continuation_token
          in: query
          required: false
          schema:
            type: string
            description: Pagination token
            title: Continuation Token
          description: Pagination token
        - name: need_format
          in: query
          required: false
          schema:
            type: boolean
            description: Whether to clean and format the data
            default: true
            title: Need Format
          description: Whether to clean and format the data
      responses:
        '200':
          description: >-
            Successful response. The outer object follows `ResponseModel`; the
            endpoint-specific payload is in `data`.


            ### Response Structure (need_format=true)

            ```json

            {
              "comments": [
                {
                  "comment_id": "UgzRDoUJAvDNn5_8i8p4AaABAg",
                  "content": "Comment text content",
                  "published_time": "1 day ago",
                  "reply_level": 0,
                  "like_count": "2",
                  "like_count_a11y": "2 likes",
                  "reply_count": "0",
                  "reply_count_a11y": "0 replies",
                  "reply_count_text": "1 reply",
                  "reply_continuation_token": "...",
                  "author": {
                    "channel_id": "UCzRzHrLFuH0lHZYnrI84I8Q",
                    "display_name": "@username",
                    "channel_url": "https://www.youtube.com/@username",
                    "avatar_url": "https://yt3.ggpht.com/...",
                    "avatar_thumbnails": [
                      {"url": "...", "width": 88, "height": 88}
                    ],
                    "is_verified": false,
                    "is_creator": false,
                    "is_artist": false
                  },
                  "creator_thumbnail_url": "https://yt3.ggpht.com/..."
                }
              ],
              "continuation_token": "next page token"
            }

            ```
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseModel'
components:
  schemas:
    CommentSortByAPI:
      type: string
      enum:
        - top
        - newest
      title: CommentSortByAPI
      description: See API documentation
    ResponseModel:
      properties:
        code:
          type: integer
          title: Code
          description: HTTP status code
          default: 200
        request_id:
          title: Request Id
          description: Unique request identifier
          nullable: true
          type: string
        message:
          type: string
          title: Message
          description: Response message (EN-US)
          default: Request successful. This request will incur a charge.
        message_zh:
          type: string
          title: Message Zh
          description: Response message (ZH-CN)
          default: 请求成功，本次请求将被计费。
        support:
          type: string
          title: Support
          description: Support message
          default: 'Discord: https://discord.gg/aMEAS8Xsvz'
        time:
          type: string
          title: Time
          description: The time the response was generated
        time_stamp:
          type: integer
          title: Time Stamp
          description: The timestamp the response was generated
        time_zone:
          type: string
          title: Time Zone
          description: The timezone of the response time
          default: America/Los_Angeles
        docs:
          title: Docs
          description: Link to the API Swagger documentation for this endpoint
          nullable: true
          type: string
        cache_message:
          title: Cache Message
          description: Cache message (EN-US)
          default: >-
            This response is cached and accessible via the URL below for 24
            hours at no extra cost. The cache is for request tracing only — it
            doesn't affect the API's data freshness and won't be returned
            through the API again.
          nullable: true
          type: string
        cache_message_zh:
          title: Cache Message Zh
          description: Cache message (ZH-CN)
          default: >-
            本次响应已缓存，可通过下方 URL 直接查看，有效期 24
            小时，访问缓存链接无额外费用。缓存仅用于请求溯源，不影响接口数据的时效性，也不会再次通过接口返回。
          nullable: true
          type: string
        cache_url:
          title: Cache Url
          description: The URL to access the cached result
          nullable: true
          type: string
        router:
          type: string
          title: Router
          description: The endpoint that generated this response
          default: ''
        params:
          title: Params
          description: The parameters used in the request
          default: {}
        data:
          title: Data
          description: >-
            Endpoint-specific response payload. The official shared model does
            not declare a fixed type or field set. Use the operation's
            documented return fields or response example; an operation-specific
            schema, when present, describes the documented fields. Undocumented
            fields must be read from the actual response rather than assumed.
          nullable: true
      type: object
      title: ResponseModel
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: AIsa API key. Get yours at https://aisa.one

````