{
  "description": "Collect YouTube's live search autocomplete for seed queries, with optional A-Z, question and modifier expansion.",
  "properties": {
    "containsKeyword": {
      "description": "Keep suggestions containing this text. Prefix with ! to exclude it instead.",
      "editor": "textfield",
      "title": "Contains keyword",
      "type": "string"
    },
    "dedupeAcrossSeeds": {
      "default": false,
      "description": "Keep one row when the same suggestion appears for more than one seed. Per-seed duplicates are always removed.",
      "prefill": false,
      "title": "Remove duplicates across seeds",
      "type": "boolean"
    },
    "excludeTerms": {
      "default": [],
      "description": "Drop suggestions containing any of these terms.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Exclude terms",
      "type": "array"
    },
    "expansionDepth": {
      "default": 0,
      "description": "0 = selected mode only. 1-2 re-query the best suggestions for deeper long-tail coverage.",
      "maximum": 2,
      "minimum": 0,
      "prefill": 0,
      "title": "Recursion depth",
      "type": "integer"
    },
    "includeEntityCards": {
      "default": true,
      "description": "Keep channel and topic suggestions, with their entity metadata, when YouTube returns them.",
      "prefill": true,
      "title": "Include channel and topic cards",
      "type": "boolean"
    },
    "includeSearchUrl": {
      "default": true,
      "description": "Add a ready-to-open YouTube or YouTube Music search URL to every row.",
      "prefill": true,
      "title": "Include search links",
      "type": "boolean"
    },
    "language": {
      "default": "en",
      "description": "Language used to localize suggestions.",
      "editor": "select",
      "enum": [
        "en",
        "es",
        "fr",
        "de",
        "it",
        "pt",
        "nl",
        "pl",
        "sv",
        "no",
        "da",
        "fi",
        "cs",
        "el",
        "hu",
        "ro",
        "bg",
        "hr",
        "sk",
        "sl",
        "et",
        "lv",
        "lt",
        "ga",
        "is",
        "mt",
        "ru",
        "uk",
        "be",
        "sr",
        "bs",
        "mk",
        "sq",
        "ar",
        "tr",
        "he",
        "fa",
        "ur",
        "ku",
        "ja",
        "ko",
        "zh-CN",
        "zh-TW",
        "hi",
        "bn",
        "ta",
        "te",
        "ml",
        "mr",
        "gu",
        "kn",
        "pa",
        "ne",
        "si",
        "my",
        "id",
        "th",
        "vi",
        "ms",
        "tl",
        "km",
        "lo",
        "sw",
        "am",
        "ha",
        "yo",
        "ig",
        "zu",
        "xh",
        "af",
        "az",
        "kk",
        "uz",
        "ky",
        "tg",
        "mn",
        "ka",
        "hy"
      ],
      "enumTitles": [
        "English",
        "Spanish",
        "French",
        "German",
        "Italian",
        "Portuguese",
        "Dutch",
        "Polish",
        "Swedish",
        "Norwegian",
        "Danish",
        "Finnish",
        "Czech",
        "Greek",
        "Hungarian",
        "Romanian",
        "Bulgarian",
        "Croatian",
        "Slovak",
        "Slovenian",
        "Estonian",
        "Latvian",
        "Lithuanian",
        "Irish",
        "Icelandic",
        "Maltese",
        "Russian",
        "Ukrainian",
        "Belarusian",
        "Serbian",
        "Bosnian",
        "Macedonian",
        "Albanian",
        "Arabic",
        "Turkish",
        "Hebrew",
        "Persian",
        "Urdu",
        "Kurdish",
        "Japanese",
        "Korean",
        "Chinese (Simplified)",
        "Chinese (Traditional)",
        "Hindi",
        "Bengali",
        "Tamil",
        "Telugu",
        "Malayalam",
        "Marathi",
        "Gujarati",
        "Kannada",
        "Punjabi",
        "Nepali",
        "Sinhala",
        "Burmese",
        "Indonesian",
        "Thai",
        "Vietnamese",
        "Malay",
        "Tagalog",
        "Khmer",
        "Lao",
        "Swahili",
        "Amharic",
        "Hausa",
        "Yoruba",
        "Igbo",
        "Zulu",
        "Xhosa",
        "Afrikaans",
        "Azerbaijani",
        "Kazakh",
        "Uzbek",
        "Kyrgyz",
        "Tajik",
        "Mongolian",
        "Georgian",
        "Armenian"
      ],
      "prefill": "en",
      "title": "Language",
      "type": "string"
    },
    "market": {
      "default": "US",
      "description": "Country or region used to localize suggestions.",
      "editor": "select",
      "enum": [
        "US",
        "GB",
        "CA",
        "AU",
        "NZ",
        "IE",
        "DE",
        "FR",
        "ES",
        "IT",
        "NL",
        "BE",
        "AT",
        "CH",
        "PT",
        "GR",
        "CZ",
        "PL",
        "SE",
        "NO",
        "DK",
        "FI",
        "HU",
        "RO",
        "BG",
        "HR",
        "SK",
        "SI",
        "EE",
        "LV",
        "LT",
        "LU",
        "MT",
        "CY",
        "IS",
        "LI",
        "MC",
        "AD",
        "SM",
        "JP",
        "KR",
        "CN",
        "TW",
        "HK",
        "MO",
        "IN",
        "PK",
        "BD",
        "LK",
        "NP",
        "AF",
        "ID",
        "TH",
        "VN",
        "PH",
        "MY",
        "SG",
        "BN",
        "MM",
        "KH",
        "LA",
        "TL",
        "BR",
        "MX",
        "AR",
        "CL",
        "CO",
        "PE",
        "VE",
        "EC",
        "BO",
        "PY",
        "UY",
        "GT",
        "CR",
        "PA",
        "DO",
        "PR",
        "CU",
        "SV",
        "HN",
        "NI",
        "JM",
        "TT",
        "BB",
        "RU",
        "TR",
        "UA",
        "BY",
        "KZ",
        "UZ",
        "AZ",
        "AM",
        "GE",
        "MD",
        "RS",
        "BA",
        "MK",
        "AL",
        "ME",
        "XK",
        "ZA",
        "NG",
        "EG",
        "MA",
        "DZ",
        "TN",
        "KE",
        "GH",
        "ET",
        "UG",
        "TZ",
        "RW",
        "ZW",
        "SN",
        "CI",
        "CM",
        "MZ",
        "AO",
        "ZM",
        "AE",
        "SA",
        "IL",
        "QA",
        "KW",
        "BH",
        "OM",
        "JO",
        "LB",
        "SY",
        "IQ",
        "IR",
        "YE",
        "PS"
      ],
      "enumTitles": [
        "United States",
        "United Kingdom",
        "Canada",
        "Australia",
        "New Zealand",
        "Ireland",
        "Germany",
        "France",
        "Spain",
        "Italy",
        "Netherlands",
        "Belgium",
        "Austria",
        "Switzerland",
        "Portugal",
        "Greece",
        "Czechia",
        "Poland",
        "Sweden",
        "Norway",
        "Denmark",
        "Finland",
        "Hungary",
        "Romania",
        "Bulgaria",
        "Croatia",
        "Slovakia",
        "Slovenia",
        "Estonia",
        "Latvia",
        "Lithuania",
        "Luxembourg",
        "Malta",
        "Cyprus",
        "Iceland",
        "Liechtenstein",
        "Monaco",
        "Andorra",
        "San Marino",
        "Japan",
        "South Korea",
        "China",
        "Taiwan",
        "Hong Kong",
        "Macao",
        "India",
        "Pakistan",
        "Bangladesh",
        "Sri Lanka",
        "Nepal",
        "Afghanistan",
        "Indonesia",
        "Thailand",
        "Vietnam",
        "Philippines",
        "Malaysia",
        "Singapore",
        "Brunei",
        "Myanmar",
        "Cambodia",
        "Laos",
        "Timor-Leste",
        "Brazil",
        "Mexico",
        "Argentina",
        "Chile",
        "Colombia",
        "Peru",
        "Venezuela",
        "Ecuador",
        "Bolivia",
        "Paraguay",
        "Uruguay",
        "Guatemala",
        "Costa Rica",
        "Panama",
        "Dominican Republic",
        "Puerto Rico",
        "Cuba",
        "El Salvador",
        "Honduras",
        "Nicaragua",
        "Jamaica",
        "Trinidad and Tobago",
        "Barbados",
        "Russia",
        "Turkey",
        "Ukraine",
        "Belarus",
        "Kazakhstan",
        "Uzbekistan",
        "Azerbaijan",
        "Armenia",
        "Georgia",
        "Moldova",
        "Serbia",
        "Bosnia and Herzegovina",
        "North Macedonia",
        "Albania",
        "Montenegro",
        "Kosovo",
        "South Africa",
        "Nigeria",
        "Egypt",
        "Morocco",
        "Algeria",
        "Tunisia",
        "Kenya",
        "Ghana",
        "Ethiopia",
        "Uganda",
        "Tanzania",
        "Rwanda",
        "Zimbabwe",
        "Senegal",
        "Cote d'Ivoire",
        "Cameroon",
        "Mozambique",
        "Angola",
        "Zambia",
        "United Arab Emirates",
        "Saudi Arabia",
        "Israel",
        "Qatar",
        "Kuwait",
        "Bahrain",
        "Oman",
        "Jordan",
        "Lebanon",
        "Syria",
        "Iraq",
        "Iran",
        "Yemen",
        "Palestine"
      ],
      "prefill": "US",
      "title": "Country or region",
      "type": "string"
    },
    "maxItems": {
      "default": 5000,
      "description": "Global cap on suggestion rows across all seeds and sources.",
      "maximum": 50000,
      "minimum": 1,
      "prefill": 3,
      "title": "Maximum rows",
      "type": "integer"
    },
    "maxLength": {
      "description": "Drop suggestions longer than this many characters.",
      "maximum": 500,
      "minimum": 1,
      "title": "Maximum length",
      "type": "integer"
    },
    "maxQueriesPerSeed": {
      "default": 300,
      "description": "Cap on autocomplete requests per seed and source. Exact stays one request.",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 300,
      "title": "Maximum queries per seed",
      "type": "integer"
    },
    "maxSuggestionsPerSeed": {
      "default": 2000,
      "description": "Cap on rows kept for each seed after the expansion plan runs.",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 3,
      "title": "Maximum suggestions per seed",
      "type": "integer"
    },
    "minLength": {
      "description": "Drop suggestions shorter than this many characters.",
      "maximum": 200,
      "minimum": 1,
      "title": "Minimum length",
      "type": "integer"
    },
    "minWordCount": {
      "default": 0,
      "description": "Drop suggestions with fewer words than this.",
      "maximum": 20,
      "minimum": 0,
      "prefill": 0,
      "title": "Minimum word count",
      "type": "integer"
    },
    "mode": {
      "default": "exact",
      "description": "How far to expand each seed. Exact is one request; All runs every working expansion axis.",
      "editor": "select",
      "enum": [
        "all",
        "exact",
        "alphabet",
        "questions",
        "modifiers",
        "prepositions",
        "comparisons",
        "related"
      ],
      "enumTitles": [
        "All expansions",
        "Exact seed",
        "Alphabet (suffix + prefix, a-z + 0-9)",
        "Questions (locale-aware, prefix + suffix)",
        "Video modifiers (shorts, video, tutorial, ...)",
        "Prepositions",
        "Comparisons",
        "Related (trailing space, wildcard, review, ...)"
      ],
      "prefill": "exact",
      "title": "Expansion mode",
      "type": "string"
    },
    "mustContainSeed": {
      "default": false,
      "description": "Keep only suggestions that contain the seed keyword.",
      "prefill": false,
      "title": "Must contain seed",
      "type": "boolean"
    },
    "onlyQuestions": {
      "default": false,
      "description": "Keep only suggestions that look like questions.",
      "prefill": false,
      "title": "Only questions",
      "type": "boolean"
    },
    "queries": {
      "default": [
        "web scraping"
      ],
      "description": "Keywords or phrases to expand with YouTube autocomplete. Short 1-3 word seeds work best.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "maxItems": 1000,
      "minItems": 1,
      "prefill": [
        "web scraping"
      ],
      "title": "Seed queries",
      "type": "array"
    },
    "source": {
      "default": "youtube",
      "description": "YouTube search, YouTube Music, or both. YouTube Music is a separate music-biased source.",
      "editor": "select",
      "enum": [
        "youtube",
        "youtubeMusic",
        "both"
      ],
      "enumTitles": [
        "YouTube search",
        "YouTube Music",
        "Both sources"
      ],
      "prefill": "youtube",
      "title": "Suggestion source",
      "type": "string"
    }
  },
  "required": [
    "queries"
  ],
  "schemaVersion": 1,
  "title": "YouTube Search Suggestions Scraper Input",
  "type": "object"
}
