{
  "actorSpecification": 1,
  "fields": {
    "authorId": {
      "description": "TikTok author ID",
      "title": "Author ID",
      "type": "string"
    },
    "authorVerified": {
      "description": "Whether the author is verified",
      "title": "Author Verified",
      "type": "boolean"
    },
    "availableLanguages": {
      "description": "All subtitle language codes obtained for the video",
      "title": "Available Languages",
      "type": "array"
    },
    "caption": {
      "description": "Video description or caption",
      "title": "Caption",
      "type": "string"
    },
    "collectCount": {
      "description": "Video save count",
      "title": "Saves",
      "type": "integer"
    },
    "commentCount": {
      "description": "Video comment count",
      "title": "Comments",
      "type": "integer"
    },
    "createdAt": {
      "description": "Video publish time (ISO 8601 UTC)",
      "title": "Created At",
      "type": "string"
    },
    "displayName": {
      "description": "Author's display name",
      "title": "Display Name",
      "type": "string"
    },
    "duration": {
      "description": "Video duration in seconds",
      "title": "Duration",
      "type": "integer"
    },
    "isAutoGenerated": {
      "description": "Whether the track is machine-generated",
      "title": "Automatic",
      "type": "boolean"
    },
    "isOriginalCaption": {
      "description": "Whether the track is the video's original language",
      "title": "Original Caption",
      "type": "boolean"
    },
    "isTranslation": {
      "description": "Whether the track is a machine translation",
      "title": "Translation",
      "type": "boolean"
    },
    "languageCode": {
      "description": "TikTok subtitle language code (e.g. eng-US, spa-ES)",
      "title": "Language Code",
      "type": "string"
    },
    "languageId": {
      "description": "TikTok internal language ID",
      "title": "Language ID",
      "type": "string"
    },
    "likeCount": {
      "description": "Video like count",
      "title": "Likes",
      "type": "integer"
    },
    "originalLanguageCode": {
      "description": "TikTok's original spoken-language code (e.g. en, ur, my)",
      "title": "Original Language",
      "type": "string"
    },
    "playCount": {
      "description": "Video play count",
      "title": "Plays",
      "type": "integer"
    },
    "postId": {
      "description": "Unique TikTok video ID",
      "title": "Post ID",
      "type": "string"
    },
    "postType": {
      "description": "video or slideshow",
      "title": "Post Type",
      "type": "string"
    },
    "postUrl": {
      "description": "Canonical TikTok video URL",
      "title": "Post URL",
      "type": "string"
    },
    "scrapedAt": {
      "description": "Collection time (ISO 8601 UTC)",
      "title": "Scraped At",
      "type": "string"
    },
    "segmentCount": {
      "description": "Number of subtitle segments",
      "title": "Segment Count",
      "type": "integer"
    },
    "segments": {
      "description": "Timestamped subtitle segments",
      "items": {
        "properties": {
          "end": {
            "description": "End time in seconds",
            "type": "number"
          },
          "start": {
            "description": "Start time in seconds",
            "type": "number"
          },
          "text": {
            "description": "Segment text",
            "type": "string"
          }
        },
        "type": "object"
      },
      "title": "Segments",
      "type": "array"
    },
    "shareCount": {
      "description": "Video share count",
      "title": "Shares",
      "type": "integer"
    },
    "source": {
      "description": "Raw source code: ASR, MT, LC, MU or Whisper",
      "title": "Source",
      "type": "string"
    },
    "sourceType": {
      "description": "automatic, machine_translation, creator or unknown",
      "title": "Source Type",
      "type": "string"
    },
    "srt": {
      "description": "Generated SRT subtitles (when enabled)",
      "title": "SRT",
      "type": "string"
    },
    "subtitleFormat": {
      "description": "webvtt, creator_caption, whisper_asr",
      "title": "Subtitle Format",
      "type": "string"
    },
    "subtitleUrl": {
      "description": "Direct signed subtitle file URL (expires in about 48 hours)",
      "title": "Subtitle URL",
      "type": "string"
    },
    "subtitleUrlExpiresAt": {
      "description": "Expiry of subtitleUrl (ISO 8601 UTC)",
      "title": "Subtitle URL Expires At",
      "type": "string"
    },
    "transcript": {
      "description": "Full transcript as plain text",
      "title": "Transcript",
      "type": "string"
    },
    "transcriptDuration": {
      "description": "End time of the last segment in seconds",
      "title": "Transcript Duration",
      "type": "number"
    },
    "username": {
      "description": "Author's TikTok username",
      "title": "Username",
      "type": "string"
    },
    "variant": {
      "description": "TikTok subtitle variant",
      "title": "Variant",
      "type": "string"
    },
    "version": {
      "description": "TikTok subtitle version string",
      "title": "Version",
      "type": "string"
    },
    "vtt": {
      "description": "Original or generated WebVTT (when enabled)",
      "title": "WebVTT",
      "type": "string"
    },
    "wordCount": {
      "description": "Approximate whitespace-delimited word count",
      "title": "Word Count",
      "type": "integer"
    }
  },
  "title": "TikTok Transcripts",
  "views": {
    "manualCaptions": {
      "display": {
        "component": "table",
        "properties": {
          "languageCode": {
            "format": "text",
            "label": "Language"
          },
          "postUrl": {
            "format": "link",
            "label": "Post URL"
          },
          "segmentCount": {
            "format": "number",
            "label": "Segments"
          },
          "sourceType": {
            "format": "text",
            "label": "Type"
          },
          "transcript": {
            "format": "text",
            "label": "Transcript"
          },
          "username": {
            "format": "text",
            "label": "Username"
          }
        }
      },
      "title": "Creator Captions",
      "transformation": {
        "fields": [
          "username",
          "languageCode",
          "sourceType",
          "segmentCount",
          "transcript",
          "postUrl"
        ]
      }
    },
    "overview": {
      "display": {
        "component": "table",
        "properties": {
          "duration": {
            "format": "number",
            "label": "Duration (s)"
          },
          "languageCode": {
            "format": "text",
            "label": "Language"
          },
          "postUrl": {
            "format": "link",
            "label": "Post URL"
          },
          "segmentCount": {
            "format": "number",
            "label": "Segments"
          },
          "source": {
            "format": "text",
            "label": "Source"
          },
          "transcript": {
            "format": "text",
            "label": "Transcript"
          },
          "username": {
            "format": "text",
            "label": "Username"
          }
        }
      },
      "title": "Transcripts",
      "transformation": {
        "fields": [
          "username",
          "languageCode",
          "source",
          "segmentCount",
          "duration",
          "transcript",
          "postUrl"
        ]
      }
    },
    "translated": {
      "display": {
        "component": "table",
        "properties": {
          "isTranslation": {
            "format": "text",
            "label": "Translation"
          },
          "languageCode": {
            "format": "text",
            "label": "Language"
          },
          "postUrl": {
            "format": "link",
            "label": "Post URL"
          },
          "source": {
            "format": "text",
            "label": "Source"
          },
          "transcript": {
            "format": "text",
            "label": "Transcript"
          },
          "username": {
            "format": "text",
            "label": "Username"
          }
        }
      },
      "title": "Translations",
      "transformation": {
        "fields": [
          "username",
          "languageCode",
          "source",
          "isTranslation",
          "transcript",
          "postUrl"
        ]
      }
    },
    "withFiles": {
      "display": {
        "component": "table",
        "properties": {
          "languageCode": {
            "format": "text",
            "label": "Language"
          },
          "postUrl": {
            "format": "link",
            "label": "Post URL"
          },
          "srt": {
            "format": "text",
            "label": "SRT"
          },
          "username": {
            "format": "text",
            "label": "Username"
          },
          "vtt": {
            "format": "text",
            "label": "WebVTT"
          }
        }
      },
      "title": "With VTT / SRT",
      "transformation": {
        "fields": [
          "username",
          "languageCode",
          "vtt",
          "srt",
          "postUrl"
        ]
      }
    }
  }
}
