{
  "description": "Collect public Snapchat Spotlight videos from topic pages, hashtag feeds and the anonymous Spotlight feed, with creator, engagement, AI keywords, hashtags and S2I content tags. Discover related topics from keyword search.",
  "properties": {
    "enrichVideos": {
      "default": false,
      "description": "Visit each video's Spotlight page to fill missing AI title, comment/recommend counts, language, S2I tags and sound, and each creator's profile once for subscriberCount. Cached and bounded; failures keep the original row.",
      "prefill": false,
      "title": "Enrich videos with detail pages",
      "type": "boolean"
    },
    "includeRelatedTags": {
      "default": true,
      "description": "Include Snapchat's scene-to-interest (S2I) tags for each video when the page provides them. Coverage is partial, so the field is omitted when unavailable.",
      "prefill": false,
      "title": "Include S2I content tags",
      "type": "boolean"
    },
    "includeRelatedTopics": {
      "default": false,
      "description": "Add one hop of related topics found on each discovered topic's topic, tag, or Explore page. This follows public page links; it does not recurse further.",
      "prefill": false,
      "title": "Expand related topics",
      "type": "boolean"
    },
    "maxItems": {
      "default": 1000,
      "description": "Maximum rows to save across the whole run.",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max items",
      "type": "integer"
    },
    "maxResultsPerTopic": {
      "default": 50,
      "description": "Maximum videos to keep for each topic after combining its topic/tag page with Explore results. Snapchat serves 19-32 videos per page and the combined pool is usually 40-54.",
      "maximum": 100,
      "minimum": 1,
      "prefill": 3,
      "title": "Max videos per topic",
      "type": "integer"
    },
    "maxTopicsPerQuery": {
      "default": 50,
      "description": "Maximum topic rows to keep for each search query, including related topics when expansion is enabled.",
      "maximum": 500,
      "minimum": 1,
      "prefill": 50,
      "title": "Max topics per query",
      "type": "integer"
    },
    "mode": {
      "default": "topicFeed",
      "description": "Choose what to collect: videos for topics/tags, topics for search keywords, or the current Spotlight feed.",
      "editor": "select",
      "enum": [
        "topicFeed",
        "topicSearch",
        "spotlightFeed"
      ],
      "enumTitles": [
        "Topic or tag videos",
        "Find topics by keyword",
        "Spotlight trending feed"
      ],
      "prefill": "topicFeed",
      "title": "Mode",
      "type": "string"
    },
    "searchQueries": {
      "default": [],
      "description": "Keywords or phrases used to discover topics, such as coffee, new york, or taylor swift.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "sectionCaption": "Topic discovery",
      "sectionDescription": "Used in Find topics by keyword mode.",
      "title": "Search keywords",
      "type": "array"
    },
    "topics": {
      "default": [],
      "description": "Topic names, hashtags, or Snapchat URLs. Examples: food, #travel, https://www.snapchat.com/tag/food, https://www.snapchat.com/topic/cappuccino-foam-technique.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [
        "food"
      ],
      "sectionCaption": "Topic videos",
      "sectionDescription": "Used in Topic or tag videos mode. Each topic is checked on its topic and tag pages, then combined with Explore Spotlight results.",
      "title": "Topics or tags",
      "type": "array"
    }
  },
  "required": [],
  "schemaVersion": 1,
  "title": "Snapchat Topic Scraper",
  "type": "object"
}
