{
  "data": {
    "id": "fEBA5L0ln2HYivGyi",
    "actId": "DqbsMlefjDv9CrR46",
    "userId": "tnBVjt3CXmcUrEE3L",
    "startedAt": "2026-11-12T19:24:39.197Z",
    "finishedAt": "2026-11-12T19:24:52.566Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 13298,
      "runTimeSecs": 13.298,
      "computeUnits": 0.014775555555555556,
      "imageSizeBytes": 1406458880
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "F2Aeb3gE2syjqz9xC",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Snapchat Spotlight Transcript Extractor\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"What to transcribe\",\n      \"type\": \"string\",\n      \"description\": \"Choose how to find Spotlight videos. Paste links, pull a creator's pinned Spotlight videos, browse a hashtag, or page through a country's trending Spotlight feed.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"bySpotlightUrls\",\n        \"byUsername\",\n        \"byTopic\",\n        \"byFeed\"\n      ],\n      \"enumTitles\": [\n        \"Spotlight URLs or IDs — transcribe the exact videos you paste\",\n        \"Creator handle — pinned Spotlight videos on a public profile\",\n        \"Hashtag — Spotlight videos shown on a tag page\",\n        \"Trending feed — Spotlight videos from one country\"\n      ],\n      \"default\": \"bySpotlightUrls\",\n      \"prefill\": \"bySpotlightUrls\",\n      \"sectionCaption\": \"What to transcribe\"\n    },\n    \"spotlightUrls\": {\n      \"title\": \"Spotlight URLs or Snap IDs\",\n      \"type\": \"array\",\n      \"description\": \"Required when mode is 'Spotlight URLs or IDs'. Accepts snapchat.com/spotlight/... links, profile-scoped @user/spotlight links, t.snapchat.com short links, and bare snap IDs.\",\n      \"editor\": \"stringList\",\n      \"prefill\": [\n        \"https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYYmViYXF5amNyAZXOAULlAZXOAOzLAAAAAQ\"\n      ]\n    },\n    \"usernames\": {\n      \"title\": \"Creator handles\",\n      \"type\": \"array\",\n      \"description\": \"Used when mode is 'Creator handle'. One or more public Snapchat handles, with or without '@'. The actor reads the creator's pinned Spotlight videos.\",\n      \"editor\": \"stringList\"\n    },\n    \"topics\": {\n      \"title\": \"Hashtags or topics\",\n      \"type\": \"array\",\n      \"description\": \"Used when mode is 'Hashtag'. One or more hashtags, with or without '#', or /tag/ and /explore/ links.\",\n      \"editor\": \"stringList\"\n    },\n    \"country\": {\n      \"title\": \"Trending-feed country\",\n      \"type\": \"string\",\n      \"description\": \"Used when mode is 'Trending feed'. Two-letter country code that selects the regional Spotlight feed.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"AD\",\n        \"AE\",\n        \"AF\",\n        \"AG\",\n        \"AI\",\n        \"AL\",\n        \"AM\",\n        \"AO\",\n        \"AQ\",\n        \"AR\",\n        \"AS\",\n        \"AT\",\n        \"AU\",\n        \"AW\",\n        \"AX\",\n        \"AZ\",\n        \"BA\",\n        \"BB\",\n        \"BD\",\n        \"BE\",\n        \"BF\",\n        \"BG\",\n        \"BH\",\n        \"BI\",\n        \"BJ\",\n        \"BL\",\n        \"BM\",\n        \"BN\",\n        \"BO\",\n        \"BQ\",\n        \"BR\",\n        \"BS\",\n        \"BT\",\n        \"BV\",\n        \"BW\",\n        \"BY\",\n        \"BZ\",\n        \"CA\",\n        \"CC\",\n        \"CD\",\n        \"CF\",\n        \"CG\",\n        \"CH\",\n        \"CI\",\n        \"CK\",\n        \"CL\",\n        \"CM\",\n        \"CN\",\n        \"CO\",\n        \"CR\",\n        \"CU\",\n        \"CV\",\n        \"CW\",\n        \"CX\",\n        \"CY\",\n        \"CZ\",\n        \"DE\",\n        \"DJ\",\n        \"DK\",\n        \"DM\",\n        \"DO\",\n        \"DZ\",\n        \"EC\",\n        \"EE\",\n        \"EG\",\n        \"EH\",\n        \"ER\",\n        \"ES\",\n        \"ET\",\n        \"FI\",\n        \"FJ\",\n        \"FK\",\n        \"FM\",\n        \"FO\",\n        \"FR\",\n        \"GA\",\n        \"GB\",\n        \"GD\",\n        \"GE\",\n        \"GF\",\n        \"GG\",\n        \"GH\",\n        \"GI\",\n        \"GL\",\n        \"GM\",\n        \"GN\",\n        \"GP\",\n        \"GQ\",\n        \"GR\",\n        \"GS\",\n        \"GT\",\n        \"GU\",\n        \"GW\",\n        \"GY\",\n        \"HK\",\n        \"HM\",\n        \"HN\",\n        \"HR\",\n        \"HT\",\n        \"HU\",\n        \"ID\",\n        \"IE\",\n        \"IL\",\n        \"IM\",\n        \"IN\",\n        \"IO\",\n        \"IQ\",\n        \"IR\",\n        \"IS\",\n        \"IT\",\n        \"JE\",\n        \"JM\",\n        \"JO\",\n        \"JP\",\n        \"KE\",\n        \"KG\",\n        \"KH\",\n        \"KI\",\n        \"KM\",\n        \"KN\",\n        \"KP\",\n        \"KR\",\n        \"KW\",\n        \"KY\",\n        \"KZ\",\n        \"LA\",\n        \"LB\",\n        \"LC\",\n        \"LI\",\n        \"LK\",\n        \"LR\",\n        \"LS\",\n        \"LT\",\n        \"LU\",\n        \"LV\",\n        \"LY\",\n        \"MA\",\n        \"MC\",\n        \"MD\",\n        \"ME\",\n        \"MF\",\n        \"MG\",\n        \"MH\",\n        \"MK\",\n        \"ML\",\n        \"MM\",\n        \"MN\",\n        \"MO\",\n        \"MP\",\n        \"MQ\",\n        \"MR\",\n        \"MS\",\n        \"MT\",\n        \"MU\",\n        \"MV\",\n        \"MW\",\n        \"MX\",\n        \"MY\",\n        \"MZ\",\n        \"NA\",\n        \"NC\",\n        \"NE\",\n        \"NF\",\n        \"NG\",\n        \"NI\",\n        \"NL\",\n        \"NO\",\n        \"NP\",\n        \"NR\",\n        \"NU\",\n        \"NZ\",\n        \"OM\",\n        \"PA\",\n        \"PE\",\n        \"PF\",\n        \"PG\",\n        \"PH\",\n        \"PK\",\n        \"PL\",\n        \"PM\",\n        \"PN\",\n        \"PR\",\n        \"PS\",\n        \"PT\",\n        \"PW\",\n        \"PY\",\n        \"QA\",\n        \"RE\",\n        \"RO\",\n        \"RS\",\n        \"RU\",\n        \"RW\",\n        \"SA\",\n        \"SB\",\n        \"SC\",\n        \"SD\",\n        \"SE\",\n        \"SG\",\n        \"SH\",\n        \"SI\",\n        \"SJ\",\n        \"SK\",\n        \"SL\",\n        \"SM\",\n        \"SN\",\n        \"SO\",\n        \"SR\",\n        \"SS\",\n        \"ST\",\n        \"SV\",\n        \"SX\",\n        \"SY\",\n        \"SZ\",\n        \"TC\",\n        \"TD\",\n        \"TF\",\n        \"TG\",\n        \"TH\",\n        \"TJ\",\n        \"TK\",\n        \"TL\",\n        \"TM\",\n        \"TN\",\n        \"TO\",\n        \"TR\",\n        \"TT\",\n        \"TV\",\n        \"TW\",\n        \"TZ\",\n        \"UA\",\n        \"UG\",\n        \"UM\",\n        \"US\",\n        \"UY\",\n        \"UZ\",\n        \"VA\",\n        \"VC\",\n        \"VE\",\n        \"VG\",\n        \"VI\",\n        \"VN\",\n        \"VU\",\n        \"WF\",\n        \"WS\",\n        \"YE\",\n        \"YT\",\n        \"ZA\",\n        \"ZM\",\n        \"ZW\"\n      ],\n      \"enumTitles\": [\n        \"Andorra\",\n        \"United Arab Emirates\",\n        \"Afghanistan\",\n        \"Antigua and Barbuda\",\n        \"Anguilla\",\n        \"Albania\",\n        \"Armenia\",\n        \"Angola\",\n        \"Antarctica\",\n        \"Argentina\",\n        \"American Samoa\",\n        \"Austria\",\n        \"Australia\",\n        \"Aruba\",\n        \"Åland Islands\",\n        \"Azerbaijan\",\n        \"Bosnia and Herzegovina\",\n        \"Barbados\",\n        \"Bangladesh\",\n        \"Belgium\",\n        \"Burkina Faso\",\n        \"Bulgaria\",\n        \"Bahrain\",\n        \"Burundi\",\n        \"Benin\",\n        \"Saint Barthélemy\",\n        \"Bermuda\",\n        \"Brunei Darussalam\",\n        \"Bolivia, Plurinational State of\",\n        \"Bonaire, Sint Eustatius and Saba\",\n        \"Brazil\",\n        \"Bahamas\",\n        \"Bhutan\",\n        \"Bouvet Island\",\n        \"Botswana\",\n        \"Belarus\",\n        \"Belize\",\n        \"Canada\",\n        \"Cocos (Keeling) Islands\",\n        \"Congo, The Democratic Republic of the\",\n        \"Central African Republic\",\n        \"Congo\",\n        \"Switzerland\",\n        \"Côte d'Ivoire\",\n        \"Cook Islands\",\n        \"Chile\",\n        \"Cameroon\",\n        \"China\",\n        \"Colombia\",\n        \"Costa Rica\",\n        \"Cuba\",\n        \"Cabo Verde\",\n        \"Curaçao\",\n        \"Christmas Island\",\n        \"Cyprus\",\n        \"Czechia\",\n        \"Germany\",\n        \"Djibouti\",\n        \"Denmark\",\n        \"Dominica\",\n        \"Dominican Republic\",\n        \"Algeria\",\n        \"Ecuador\",\n        \"Estonia\",\n        \"Egypt\",\n        \"Western Sahara\",\n        \"Eritrea\",\n        \"Spain\",\n        \"Ethiopia\",\n        \"Finland\",\n        \"Fiji\",\n        \"Falkland Islands (Malvinas)\",\n        \"Micronesia, Federated States of\",\n        \"Faroe Islands\",\n        \"France\",\n        \"Gabon\",\n        \"United Kingdom\",\n        \"Grenada\",\n        \"Georgia\",\n        \"French Guiana\",\n        \"Guernsey\",\n        \"Ghana\",\n        \"Gibraltar\",\n        \"Greenland\",\n        \"Gambia\",\n        \"Guinea\",\n        \"Guadeloupe\",\n        \"Equatorial Guinea\",\n        \"Greece\",\n        \"South Georgia and the South Sandwich Islands\",\n        \"Guatemala\",\n        \"Guam\",\n        \"Guinea-Bissau\",\n        \"Guyana\",\n        \"Hong Kong\",\n        \"Heard Island and McDonald Islands\",\n        \"Honduras\",\n        \"Croatia\",\n        \"Haiti\",\n        \"Hungary\",\n        \"Indonesia\",\n        \"Ireland\",\n        \"Israel\",\n        \"Isle of Man\",\n        \"India\",\n        \"British Indian Ocean Territory\",\n        \"Iraq\",\n        \"Iran, Islamic Republic of\",\n        \"Iceland\",\n        \"Italy\",\n        \"Jersey\",\n        \"Jamaica\",\n        \"Jordan\",\n        \"Japan\",\n        \"Kenya\",\n        \"Kyrgyzstan\",\n        \"Cambodia\",\n        \"Kiribati\",\n        \"Comoros\",\n        \"Saint Kitts and Nevis\",\n        \"Korea, Democratic People's Republic of\",\n        \"Korea, Republic of\",\n        \"Kuwait\",\n        \"Cayman Islands\",\n        \"Kazakhstan\",\n        \"Lao People's Democratic Republic\",\n        \"Lebanon\",\n        \"Saint Lucia\",\n        \"Liechtenstein\",\n        \"Sri Lanka\",\n        \"Liberia\",\n        \"Lesotho\",\n        \"Lithuania\",\n        \"Luxembourg\",\n        \"Latvia\",\n        \"Libya\",\n        \"Morocco\",\n        \"Monaco\",\n        \"Moldova, Republic of\",\n        \"Montenegro\",\n        \"Saint Martin (French part)\",\n        \"Madagascar\",\n        \"Marshall Islands\",\n        \"North Macedonia\",\n        \"Mali\",\n        \"Myanmar\",\n        \"Mongolia\",\n        \"Macao\",\n        \"Northern Mariana Islands\",\n        \"Martinique\",\n        \"Mauritania\",\n        \"Montserrat\",\n        \"Malta\",\n        \"Mauritius\",\n        \"Maldives\",\n        \"Malawi\",\n        \"Mexico\",\n        \"Malaysia\",\n        \"Mozambique\",\n        \"Namibia\",\n        \"New Caledonia\",\n        \"Niger\",\n        \"Norfolk Island\",\n        \"Nigeria\",\n        \"Nicaragua\",\n        \"Netherlands\",\n        \"Norway\",\n        \"Nepal\",\n        \"Nauru\",\n        \"Niue\",\n        \"New Zealand\",\n        \"Oman\",\n        \"Panama\",\n        \"Peru\",\n        \"French Polynesia\",\n        \"Papua New Guinea\",\n        \"Philippines\",\n        \"Pakistan\",\n        \"Poland\",\n        \"Saint Pierre and Miquelon\",\n        \"Pitcairn\",\n        \"Puerto Rico\",\n        \"Palestine, State of\",\n        \"Portugal\",\n        \"Palau\",\n        \"Paraguay\",\n        \"Qatar\",\n        \"Réunion\",\n        \"Romania\",\n        \"Serbia\",\n        \"Russian Federation\",\n        \"Rwanda\",\n        \"Saudi Arabia\",\n        \"Solomon Islands\",\n        \"Seychelles\",\n        \"Sudan\",\n        \"Sweden\",\n        \"Singapore\",\n        \"Saint Helena, Ascension and Tristan da Cunha\",\n        \"Slovenia\",\n        \"Svalbard and Jan Mayen\",\n        \"Slovakia\",\n        \"Sierra Leone\",\n        \"San Marino\",\n        \"Senegal\",\n        \"Somalia\",\n        \"Suriname\",\n        \"South Sudan\",\n        \"Sao Tome and Principe\",\n        \"El Salvador\",\n        \"Sint Maarten (Dutch part)\",\n        \"Syrian Arab Republic\",\n        \"Eswatini\",\n        \"Turks and Caicos Islands\",\n        \"Chad\",\n        \"French Southern Territories\",\n        \"Togo\",\n        \"Thailand\",\n        \"Tajikistan\",\n        \"Tokelau\",\n        \"Timor-Leste\",\n        \"Turkmenistan\",\n        \"Tunisia\",\n        \"Tonga\",\n        \"Türkiye\",\n        \"Trinidad and Tobago\",\n        \"Tuvalu\",\n        \"Taiwan, Province of China\",\n        \"Tanzania, United Republic of\",\n        \"Ukraine\",\n        \"Uganda\",\n        \"United States Minor Outlying Islands\",\n        \"United States\",\n        \"Uruguay\",\n        \"Uzbekistan\",\n        \"Holy See (Vatican City State)\",\n        \"Saint Vincent and the Grenadines\",\n        \"Venezuela, Bolivarian Republic of\",\n        \"Virgin Islands, British\",\n        \"Virgin Islands, U.S.\",\n        \"Viet Nam\",\n        \"Vanuatu\",\n        \"Wallis and Futuna\",\n        \"Samoa\",\n        \"Yemen\",\n        \"Mayotte\",\n        \"South Africa\",\n        \"Zambia\",\n        \"Zimbabwe\"\n      ],\n      \"default\": \"US\",\n      \"prefill\": \"US\"\n    },\n    \"transcriptionMethod\": {\n      \"title\": \"Transcription method\",\n      \"type\": \"string\",\n      \"description\": \"'Auto' uses Snapchat's published captions first and falls back to speech recognition. 'Native only' never runs AI. 'Whisper only' ignores published captions.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"auto\",\n        \"native\",\n        \"whisper\"\n      ],\n      \"enumTitles\": [\n        \"Auto — captions first, AI fallback (recommended)\",\n        \"Native only — Snapchat captions, no AI\",\n        \"Whisper only — AI speech recognition\"\n      ],\n      \"default\": \"auto\",\n      \"prefill\": \"auto\",\n      \"sectionCaption\": \"Transcription\"\n    },\n    \"whisperModel\": {\n      \"title\": \"Speech-recognition model\",\n      \"type\": \"string\",\n      \"description\": \"AI model size used when speech recognition runs. Larger models are slower but better with accents and non-English speech.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"tiny\",\n        \"base\",\n        \"small\"\n      ],\n      \"enumTitles\": [\n        \"Tiny — fastest, lower accuracy\",\n        \"Base — recommended balance\",\n        \"Small — slower, better for non-English\"\n      ],\n      \"default\": \"base\",\n      \"prefill\": \"base\"\n    },\n    \"language\": {\n      \"title\": \"Language hint\",\n      \"type\": \"string\",\n      \"description\": \"Optional language for speech recognition. 'Auto-detect' is best for most runs; pick a language when the audio is clearly non-English.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"auto\",\n        \"aa\",\n        \"ab\",\n        \"ae\",\n        \"af\",\n        \"ak\",\n        \"am\",\n        \"an\",\n        \"ar\",\n        \"as\",\n        \"av\",\n        \"ay\",\n        \"az\",\n        \"ba\",\n        \"be\",\n        \"bg\",\n        \"bi\",\n        \"bm\",\n        \"bn\",\n        \"bo\",\n        \"br\",\n        \"bs\",\n        \"ca\",\n        \"ce\",\n        \"ch\",\n        \"co\",\n        \"cr\",\n        \"cs\",\n        \"cu\",\n        \"cv\",\n        \"cy\",\n        \"da\",\n        \"de\",\n        \"dv\",\n        \"dz\",\n        \"ee\",\n        \"el\",\n        \"en\",\n        \"eo\",\n        \"es\",\n        \"et\",\n        \"eu\",\n        \"fa\",\n        \"ff\",\n        \"fi\",\n        \"fj\",\n        \"fo\",\n        \"fr\",\n        \"fy\",\n        \"ga\",\n        \"gd\",\n        \"gl\",\n        \"gn\",\n        \"gu\",\n        \"gv\",\n        \"ha\",\n        \"he\",\n        \"hi\",\n        \"ho\",\n        \"hr\",\n        \"ht\",\n        \"hu\",\n        \"hy\",\n        \"hz\",\n        \"ia\",\n        \"id\",\n        \"ie\",\n        \"ig\",\n        \"ii\",\n        \"ik\",\n        \"io\",\n        \"is\",\n        \"it\",\n        \"iu\",\n        \"ja\",\n        \"jv\",\n        \"ka\",\n        \"kg\",\n        \"ki\",\n        \"kj\",\n        \"kk\",\n        \"kl\",\n        \"km\",\n        \"kn\",\n        \"ko\",\n        \"kr\",\n        \"ks\",\n        \"ku\",\n        \"kv\",\n        \"kw\",\n        \"ky\",\n        \"la\",\n        \"lb\",\n        \"lg\",\n        \"li\",\n        \"ln\",\n        \"lo\",\n        \"lt\",\n        \"lu\",\n        \"lv\",\n        \"mg\",\n        \"mh\",\n        \"mi\",\n        \"mk\",\n        \"ml\",\n        \"mn\",\n        \"mr\",\n        \"ms\",\n        \"mt\",\n        \"my\",\n        \"na\",\n        \"nb\",\n        \"nd\",\n        \"ne\",\n        \"ng\",\n        \"nl\",\n        \"nn\",\n        \"no\",\n        \"nr\",\n        \"nv\",\n        \"ny\",\n        \"oc\",\n        \"oj\",\n        \"om\",\n        \"or\",\n        \"os\",\n        \"pa\",\n        \"pi\",\n        \"pl\",\n        \"ps\",\n        \"pt\",\n        \"qu\",\n        \"rm\",\n        \"rn\",\n        \"ro\",\n        \"ru\",\n        \"rw\",\n        \"sa\",\n        \"sc\",\n        \"sd\",\n        \"se\",\n        \"sg\",\n        \"sh\",\n        \"si\",\n        \"sk\",\n        \"sl\",\n        \"sm\",\n        \"sn\",\n        \"so\",\n        \"sq\",\n        \"sr\",\n        \"ss\",\n        \"st\",\n        \"su\",\n        \"sv\",\n        \"sw\",\n        \"ta\",\n        \"te\",\n        \"tg\",\n        \"th\",\n        \"ti\",\n        \"tk\",\n        \"tl\",\n        \"tn\",\n        \"to\",\n        \"tr\",\n        \"ts\",\n        \"tt\",\n        \"tw\",\n        \"ty\",\n        \"ug\",\n        \"uk\",\n        \"ur\",\n        \"uz\",\n        \"ve\",\n        \"vi\",\n        \"vo\",\n        \"wa\",\n        \"wo\",\n        \"xh\",\n        \"yi\",\n        \"yo\",\n        \"za\",\n        \"zh\",\n        \"zu\"\n      ],\n      \"enumTitles\": [\n        \"Auto-detect\",\n        \"Afar\",\n        \"Abkhazian\",\n        \"Avestan\",\n        \"Afrikaans\",\n        \"Akan\",\n        \"Amharic\",\n        \"Aragonese\",\n        \"Arabic\",\n        \"Assamese\",\n        \"Avaric\",\n        \"Aymara\",\n        \"Azerbaijani\",\n        \"Bashkir\",\n        \"Belarusian\",\n        \"Bulgarian\",\n        \"Bislama\",\n        \"Bambara\",\n        \"Bengali\",\n        \"Tibetan\",\n        \"Breton\",\n        \"Bosnian\",\n        \"Catalan\",\n        \"Chechen\",\n        \"Chamorro\",\n        \"Corsican\",\n        \"Cree\",\n        \"Czech\",\n        \"Church Slavic\",\n        \"Chuvash\",\n        \"Welsh\",\n        \"Danish\",\n        \"German\",\n        \"Divehi\",\n        \"Dzongkha\",\n        \"Ewe\",\n        \"Modern Greek (1453-)\",\n        \"English\",\n        \"Esperanto\",\n        \"Spanish\",\n        \"Estonian\",\n        \"Basque\",\n        \"Persian\",\n        \"Fulah\",\n        \"Finnish\",\n        \"Fijian\",\n        \"Faroese\",\n        \"French\",\n        \"Western Frisian\",\n        \"Irish\",\n        \"Scottish Gaelic\",\n        \"Galician\",\n        \"Guarani\",\n        \"Gujarati\",\n        \"Manx\",\n        \"Hausa\",\n        \"Hebrew\",\n        \"Hindi\",\n        \"Hiri Motu\",\n        \"Croatian\",\n        \"Haitian\",\n        \"Hungarian\",\n        \"Armenian\",\n        \"Herero\",\n        \"Interlingua (International Auxiliary Language Association)\",\n        \"Indonesian\",\n        \"Interlingue\",\n        \"Igbo\",\n        \"Sichuan Yi\",\n        \"Inupiaq\",\n        \"Ido\",\n        \"Icelandic\",\n        \"Italian\",\n        \"Inuktitut\",\n        \"Japanese\",\n        \"Javanese\",\n        \"Georgian\",\n        \"Kongo\",\n        \"Kikuyu\",\n        \"Kuanyama\",\n        \"Kazakh\",\n        \"Kalaallisut\",\n        \"Khmer\",\n        \"Kannada\",\n        \"Korean\",\n        \"Kanuri\",\n        \"Kashmiri\",\n        \"Kurdish\",\n        \"Komi\",\n        \"Cornish\",\n        \"Kirghiz\",\n        \"Latin\",\n        \"Luxembourgish\",\n        \"Ganda\",\n        \"Limburgan\",\n        \"Lingala\",\n        \"Lao\",\n        \"Lithuanian\",\n        \"Luba-Katanga\",\n        \"Latvian\",\n        \"Malagasy\",\n        \"Marshallese\",\n        \"Maori\",\n        \"Macedonian\",\n        \"Malayalam\",\n        \"Mongolian\",\n        \"Marathi\",\n        \"Malay (macrolanguage)\",\n        \"Maltese\",\n        \"Burmese\",\n        \"Nauru\",\n        \"Norwegian Bokmål\",\n        \"North Ndebele\",\n        \"Nepali (macrolanguage)\",\n        \"Ndonga\",\n        \"Dutch\",\n        \"Norwegian Nynorsk\",\n        \"Norwegian\",\n        \"South Ndebele\",\n        \"Navajo\",\n        \"Chichewa\",\n        \"Occitan (post 1500)\",\n        \"Ojibwa\",\n        \"Oromo\",\n        \"Oriya (macrolanguage)\",\n        \"Ossetian\",\n        \"Panjabi\",\n        \"Pali\",\n        \"Polish\",\n        \"Pushto\",\n        \"Portuguese\",\n        \"Quechua\",\n        \"Romansh\",\n        \"Rundi\",\n        \"Romanian\",\n        \"Russian\",\n        \"Kinyarwanda\",\n        \"Sanskrit\",\n        \"Sardinian\",\n        \"Sindhi\",\n        \"Northern Sami\",\n        \"Sango\",\n        \"Serbo-Croatian\",\n        \"Sinhala\",\n        \"Slovak\",\n        \"Slovenian\",\n        \"Samoan\",\n        \"Shona\",\n        \"Somali\",\n        \"Albanian\",\n        \"Serbian\",\n        \"Swati\",\n        \"Southern Sotho\",\n        \"Sundanese\",\n        \"Swedish\",\n        \"Swahili (macrolanguage)\",\n        \"Tamil\",\n        \"Telugu\",\n        \"Tajik\",\n        \"Thai\",\n        \"Tigrinya\",\n        \"Turkmen\",\n        \"Tagalog\",\n        \"Tswana\",\n        \"Tonga (Tonga Islands)\",\n        \"Turkish\",\n        \"Tsonga\",\n        \"Tatar\",\n        \"Twi\",\n        \"Tahitian\",\n        \"Uighur\",\n        \"Ukrainian\",\n        \"Urdu\",\n        \"Uzbek\",\n        \"Venda\",\n        \"Vietnamese\",\n        \"Volapük\",\n        \"Walloon\",\n        \"Wolof\",\n        \"Xhosa\",\n        \"Yiddish\",\n        \"Yoruba\",\n        \"Zhuang\",\n        \"Chinese\",\n        \"Zulu\"\n      ],\n      \"default\": \"auto\",\n      \"prefill\": \"auto\"\n    },\n    \"includeSegments\": {\n      \"title\": \"Include timed segments\",\n      \"type\": \"boolean\",\n      \"description\": \"When on, each record includes the timestamped 'segments' array. Turn it off for a smaller dataset; 'fullText', 'wordCount' and 'segmentCount' are still returned.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum records\",\n      \"type\": \"integer\",\n      \"description\": \"Stop after this many transcript records. The limit counts pushed rows, including failed-input rows.\",\n      \"minimum\": 1,\n      \"maximum\": 1000000,\n      \"default\": 100000,\n      \"prefill\": 1,\n      \"sectionCaption\": \"Limits\"\n    },\n    \"maxVideosPerSource\": {\n      \"title\": \"Videos per creator, hashtag or feed\",\n      \"type\": \"integer\",\n      \"description\": \"How many videos to collect from each handle, hashtag or trending feed before moving on. Paste-URL mode is not affected by this cap.\",\n      \"minimum\": 1,\n      \"maximum\": 100,\n      \"default\": 20,\n      \"prefill\": 1\n    }\n  }\n}",
    "readme": "# Snapchat Spotlight Video Transcript Extractor\n\nPublic Snapchat Spotlight clips carry spoken words that Snapchat does not always show as text in a reusable form. This actor returns a clean transcript for each clip — first trying the caption track Snapchat already published, then, when asked, generating one from the audio with speech recognition.\n\nYou can feed it exact Spotlight links, a creator's pinned Spotlight videos, a hashtag page, or a country's trending Spotlight feed. Every row also includes the creator, engagement counts, video timing and thumbnail so the transcript can be joined to the rest of your data.\n\n## What you get\n\n- **Published captions when available.** Snapchat exposes a WebVTT caption file for many videos. The actor downloads it, parses the cue timings, and returns both `segments` and the concatenated `fullText`.\n- **Speech recognition as a fallback.** For videos without published captions, `auto` mode transcribes the audio with Whisper. Three model sizes trade speed for accuracy.\n- **Four ways to choose videos.** Paste links, pull a creator's pinned Spotlight highlights, browse a hashtag, or page through a country feed.\n- **Metadata alongside text.** Creator handle and display name, avatar, title, description, embedded caption, keywords, hashtags, duration, upload date, resolution, and view/share/comment/like counts.\n- **Smaller datasets on demand.** Turn off timed segments to keep `fullText`, `wordCount` and `segmentCount` without the per-cue array.\n- **Clean rows.** Empty values are omitted instead of written as `null`, and each row carries `recordType`, `sourceUrl` and `scrapedAt`.\n\n## Modes\n\n| Mode | What it reads | Typical input |\n|---|---|---|\n| `bySpotlightUrls` | The exact videos you paste | `https://www.snapchat.com/spotlight/<id>`, `https://www.snapchat.com/@user/spotlight/<id>`, `https://t.snapchat.com/<code>`, or a bare snap ID |\n| `byUsername` | A public creator's pinned Spotlight highlights | `brentrivera`, `@brentrivera`, `https://www.snapchat.com/@brentrivera` |\n| `byTopic` | Videos listed on a hashtag page | `comedy`, `#comedy`, `https://www.snapchat.com/tag/comedy` |\n| `byFeed` | A country's trending Spotlight feed, 25 videos per page | `US`, `GB`, `PK` |\n\nDiscovery modes stop after `maxVideosPerSource` videos per handle, hashtag or feed. `maxItems` caps the total number of rows in the run.\n\n## Output fields\n\n| Field | Description |\n|---|---|\n| `recordType` | Always `spotlightTranscript` |\n| `snapId` | Spotlight snap ID |\n| `sourceUrl` | Canonical Snapchat page for the video |\n| `mode` | `bySpotlightUrls`, `byUsername`, `byTopic` or `byFeed` |\n| `inputUrl` | The link you supplied (paste-URL mode only) |\n| `discoveredVia` | Handle, hashtag or country that surfaced the video (discovery modes only) |\n| `title` | Snapchat's generated title, when present |\n| `description` | Snapchat's generated description, when present |\n| `caption` | Caption embedded in the video |\n| `username` | Creator's Snapchat handle |\n| `creatorName` | Creator's display name |\n| `creatorUrl` | Creator profile link |\n| `creatorAvatarUrl` | Creator avatar image link |\n| `videoUrl` | Direct CDN video link (may expire) |\n| `thumbnailUrl` | Thumbnail image link |\n| `durationSeconds` | Video length in seconds |\n| `uploadedAt` | Upload time, ISO 8601 UTC |\n| `width`, `height` | Video dimensions in pixels |\n| `keywords` | Keywords Snapchat associates with the video |\n| `hashtags` | Hashtag entries from the keyword list |\n| `viewCount`, `shareCount`, `commentCount`, `likeCount` | Public engagement counts at scrape time |\n| `transcriptSource` | `native` for published captions, `whisper` for generated text |\n| `transcriptAvailable` | Whether a usable transcript was produced |\n| `transcriptUrl` | WebVTT caption file link, when one exists |\n| `language` | `en` for published captions; detected or hinted code for generated transcripts |\n| `languageProbability` | Language-detection confidence (0-1) for generated transcripts |\n| `whisperModel` | Model size used for generated transcripts |\n| `segments` | Timed cues: `[{startTime, endTime, text}]` |\n| `segmentCount` | Number of cues |\n| `fullText` | Whole transcript as one string |\n| `wordCount` | Word count of `fullText` |\n| `scrapedAt` | When the row was produced, ISO 8601 UTC |\n| `error` | Explanation when fetching or transcription failed for that row |\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `bySpotlightUrls` | Which discovery path to use. |\n| `spotlightUrls` | array | – | Links or IDs; required when `mode` is `bySpotlightUrls`. |\n| `usernames` | array | – | Creator handles; used when `mode` is `byUsername`. |\n| `topics` | array | – | Hashtags or topics; used when `mode` is `byTopic`. |\n| `country` | string | `US` | Two-letter feed country; used when `mode` is `byFeed`. |\n| `transcriptionMethod` | string | `auto` | `auto`, `native` or `whisper`. |\n| `whisperModel` | string | `base` | `tiny`, `base` or `small`. |\n| `language` | string | `auto` | Optional language hint for speech recognition. |\n| `includeSegments` | boolean | `true` | Include the timed `segments` array. |\n| `maxItems` | integer | `100000` | Maximum rows to push, including error rows. |\n| `maxVideosPerSource` | integer | `20` | Videos collected per handle, hashtag or feed. |\n\nLegacy keys from the previous version (`spotlightUrl`, `urls`, `startUrls`, `maxResults`, `method`, `model`) are still accepted and mapped to the current fields when the new key is absent.\n\n### Paste a handful of links\n\n```json\n{\n  \"mode\": \"bySpotlightUrls\",\n  \"spotlightUrls\": [\n    \"https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYYmViYXF5amNyAZXOAULlAZXOAOzLAAAAAQ\",\n    \"https://t.snapchat.com/example\"\n  ],\n  \"maxItems\": 5\n}\n```\n\n### Transcribe a creator's pinned Spotlight videos\n\n```json\n{\n  \"mode\": \"byUsername\",\n  \"usernames\": [\"brentrivera\"],\n  \"maxVideosPerSource\": 10,\n  \"transcriptionMethod\": \"auto\"\n}\n```\n\n### Browse a hashtag with a fixed transcript style\n\n```json\n{\n  \"mode\": \"byTopic\",\n  \"topics\": [\"comedy\"],\n  \"maxVideosPerSource\": 20,\n  \"transcriptionMethod\": \"whisper\",\n  \"whisperModel\": \"small\",\n  \"language\": \"en\"\n}\n```\n\n### Page a country feed\n\n```json\n{\n  \"mode\": \"byFeed\",\n  \"country\": \"GB\",\n  \"maxVideosPerSource\": 50,\n  \"includeSegments\": false\n}\n```\n\n## How it reads Snapchat\n\nAll requests are anonymous: no login, cookie, API key or proxy account is needed. The actor reads the public video page, its embedded Schema.org `VideoObject` data, the published WebVTT caption file, and the public Spotlight discovery surfaces (profile highlights, tag pages and the feed's public GraphQL query). When a page is unavailable, the transcript endpoint for that snap ID is used as a fallback.\n\n## Limits and notes\n\n- Published captions exist only for some videos. In a mixed 34-video probe, 8 had native captions; the rest need `auto` or `whisper` if you want text.\n- Native captions are returned with `language: en`, matching Snapchat's published caption behaviour.\n- Creator mode uses pinned Spotlight highlights (usually around 16 videos), not a creator's complete posting history.\n- Tag pages usually list 20-35 videos; feed pages return 25 videos per page and are paged until `maxVideosPerSource` is reached.\n- CDN video and thumbnail links can expire. Re-run the actor or copy the files if you need durable media.\n- A video with no speech, only music, or very low confidence returns `transcriptAvailable: false` plus an `error` instead of invented text.\n- A removed, expired or region-blocked clip returns a row with `transcriptAvailable: false` and an explanatory `error`.\n- Follower counts, sound/lens names and recommendation counts are not published on the clip page, so they are not returned.\n- Comments, downloads, private profiles and login-gated content are outside this actor's scope.\n\n## FAQ\n\n### Do I need a Snapchat account?\nNo. The actor only reads public pages and public caption files.\n\n### What happens when a video has no published captions?\nWith `auto`, the actor downloads the video and runs speech recognition. With `native`, it returns `transcriptAvailable: false` and explains why.\n\n### Which Whisper model should I pick?\n`base` is the usual choice. `tiny` is faster and cheaper for clear speech. `small` helps with accents and non-English audio.\n\n### Can I request transcripts in a particular language?\nSet `language` to an ISO 639-1 code for speech recognition. Published captions are returned as Snapchat provides them.\n\n### Why is a transcript missing segments?\nThe video may have text but no caption file, or you may have turned off `includeSegments`. `fullText`, `wordCount` and `segmentCount` remain available.\n\n### Are results identical on every run?\nTranscript text and metadata are stable, but engagement counters and CDN links change over time, and discovery modes can surface a slightly different set as feeds rotate.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "snapchat-spotlight-video-transcript-extractor",
      "title": "Snapchat Spotlight Video Transcript Extractor",
      "description": "Transcribe public Snapchat Spotlight videos from links, creator profiles, hashtag pages or a country feed. Uses Snapchat's published captions first, then AI speech recognition, with creator, engagement and timing metadata.",
      "version": "2.0",
      "meta": {
        "templateId": "python3"
      },
      "input": {
        "title": "Snapchat Spotlight Transcript Extractor",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "What to transcribe",
            "type": "string",
            "description": "Choose how to find Spotlight videos. Paste links, pull a creator's pinned Spotlight videos, browse a hashtag, or page through a country's trending Spotlight feed.",
            "editor": "select",
            "enum": [
              "bySpotlightUrls",
              "byUsername",
              "byTopic",
              "byFeed"
            ],
            "enumTitles": [
              "Spotlight URLs or IDs — transcribe the exact videos you paste",
              "Creator handle — pinned Spotlight videos on a public profile",
              "Hashtag — Spotlight videos shown on a tag page",
              "Trending feed — Spotlight videos from one country"
            ],
            "default": "bySpotlightUrls",
            "prefill": "bySpotlightUrls",
            "sectionCaption": "What to transcribe"
          },
          "spotlightUrls": {
            "title": "Spotlight URLs or Snap IDs",
            "type": "array",
            "description": "Required when mode is 'Spotlight URLs or IDs'. Accepts snapchat.com/spotlight/... links, profile-scoped @user/spotlight links, t.snapchat.com short links, and bare snap IDs.",
            "editor": "stringList",
            "prefill": [
              "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYYmViYXF5amNyAZXOAULlAZXOAOzLAAAAAQ"
            ]
          },
          "usernames": {
            "title": "Creator handles",
            "type": "array",
            "description": "Used when mode is 'Creator handle'. One or more public Snapchat handles, with or without '@'. The actor reads the creator's pinned Spotlight videos.",
            "editor": "stringList"
          },
          "topics": {
            "title": "Hashtags or topics",
            "type": "array",
            "description": "Used when mode is 'Hashtag'. One or more hashtags, with or without '#', or /tag/ and /explore/ links.",
            "editor": "stringList"
          },
          "country": {
            "title": "Trending-feed country",
            "type": "string",
            "description": "Used when mode is 'Trending feed'. Two-letter country code that selects the regional Spotlight feed.",
            "editor": "select",
            "enum": [
              "AD",
              "AE",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "AO",
              "AQ",
              "AR",
              "AS",
              "AT",
              "AU",
              "AW",
              "AX",
              "AZ",
              "BA",
              "BB",
              "BD",
              "BE",
              "BF",
              "BG",
              "BH",
              "BI",
              "BJ",
              "BL",
              "BM",
              "BN",
              "BO",
              "BQ",
              "BR",
              "BS",
              "BT",
              "BV",
              "BW",
              "BY",
              "BZ",
              "CA",
              "CC",
              "CD",
              "CF",
              "CG",
              "CH",
              "CI",
              "CK",
              "CL",
              "CM",
              "CN",
              "CO",
              "CR",
              "CU",
              "CV",
              "CW",
              "CX",
              "CY",
              "CZ",
              "DE",
              "DJ",
              "DK",
              "DM",
              "DO",
              "DZ",
              "EC",
              "EE",
              "EG",
              "EH",
              "ER",
              "ES",
              "ET",
              "FI",
              "FJ",
              "FK",
              "FM",
              "FO",
              "FR",
              "GA",
              "GB",
              "GD",
              "GE",
              "GF",
              "GG",
              "GH",
              "GI",
              "GL",
              "GM",
              "GN",
              "GP",
              "GQ",
              "GR",
              "GS",
              "GT",
              "GU",
              "GW",
              "GY",
              "HK",
              "HM",
              "HN",
              "HR",
              "HT",
              "HU",
              "ID",
              "IE",
              "IL",
              "IM",
              "IN",
              "IO",
              "IQ",
              "IR",
              "IS",
              "IT",
              "JE",
              "JM",
              "JO",
              "JP",
              "KE",
              "KG",
              "KH",
              "KI",
              "KM",
              "KN",
              "KP",
              "KR",
              "KW",
              "KY",
              "KZ",
              "LA",
              "LB",
              "LC",
              "LI",
              "LK",
              "LR",
              "LS",
              "LT",
              "LU",
              "LV",
              "LY",
              "MA",
              "MC",
              "MD",
              "ME",
              "MF",
              "MG",
              "MH",
              "MK",
              "ML",
              "MM",
              "MN",
              "MO",
              "MP",
              "MQ",
              "MR",
              "MS",
              "MT",
              "MU",
              "MV",
              "MW",
              "MX",
              "MY",
              "MZ",
              "NA",
              "NC",
              "NE",
              "NF",
              "NG",
              "NI",
              "NL",
              "NO",
              "NP",
              "NR",
              "NU",
              "NZ",
              "OM",
              "PA",
              "PE",
              "PF",
              "PG",
              "PH",
              "PK",
              "PL",
              "PM",
              "PN",
              "PR",
              "PS",
              "PT",
              "PW",
              "PY",
              "QA",
              "RE",
              "RO",
              "RS",
              "RU",
              "RW",
              "SA",
              "SB",
              "SC",
              "SD",
              "SE",
              "SG",
              "SH",
              "SI",
              "SJ",
              "SK",
              "SL",
              "SM",
              "SN",
              "SO",
              "SR",
              "SS",
              "ST",
              "SV",
              "SX",
              "SY",
              "SZ",
              "TC",
              "TD",
              "TF",
              "TG",
              "TH",
              "TJ",
              "TK",
              "TL",
              "TM",
              "TN",
              "TO",
              "TR",
              "TT",
              "TV",
              "TW",
              "TZ",
              "UA",
              "UG",
              "UM",
              "US",
              "UY",
              "UZ",
              "VA",
              "VC",
              "VE",
              "VG",
              "VI",
              "VN",
              "VU",
              "WF",
              "WS",
              "YE",
              "YT",
              "ZA",
              "ZM",
              "ZW"
            ],
            "enumTitles": [
              "Andorra",
              "United Arab Emirates",
              "Afghanistan",
              "Antigua and Barbuda",
              "Anguilla",
              "Albania",
              "Armenia",
              "Angola",
              "Antarctica",
              "Argentina",
              "American Samoa",
              "Austria",
              "Australia",
              "Aruba",
              "Åland Islands",
              "Azerbaijan",
              "Bosnia and Herzegovina",
              "Barbados",
              "Bangladesh",
              "Belgium",
              "Burkina Faso",
              "Bulgaria",
              "Bahrain",
              "Burundi",
              "Benin",
              "Saint Barthélemy",
              "Bermuda",
              "Brunei Darussalam",
              "Bolivia, Plurinational State of",
              "Bonaire, Sint Eustatius and Saba",
              "Brazil",
              "Bahamas",
              "Bhutan",
              "Bouvet Island",
              "Botswana",
              "Belarus",
              "Belize",
              "Canada",
              "Cocos (Keeling) Islands",
              "Congo, The Democratic Republic of the",
              "Central African Republic",
              "Congo",
              "Switzerland",
              "Côte d'Ivoire",
              "Cook Islands",
              "Chile",
              "Cameroon",
              "China",
              "Colombia",
              "Costa Rica",
              "Cuba",
              "Cabo Verde",
              "Curaçao",
              "Christmas Island",
              "Cyprus",
              "Czechia",
              "Germany",
              "Djibouti",
              "Denmark",
              "Dominica",
              "Dominican Republic",
              "Algeria",
              "Ecuador",
              "Estonia",
              "Egypt",
              "Western Sahara",
              "Eritrea",
              "Spain",
              "Ethiopia",
              "Finland",
              "Fiji",
              "Falkland Islands (Malvinas)",
              "Micronesia, Federated States of",
              "Faroe Islands",
              "France",
              "Gabon",
              "United Kingdom",
              "Grenada",
              "Georgia",
              "French Guiana",
              "Guernsey",
              "Ghana",
              "Gibraltar",
              "Greenland",
              "Gambia",
              "Guinea",
              "Guadeloupe",
              "Equatorial Guinea",
              "Greece",
              "South Georgia and the South Sandwich Islands",
              "Guatemala",
              "Guam",
              "Guinea-Bissau",
              "Guyana",
              "Hong Kong",
              "Heard Island and McDonald Islands",
              "Honduras",
              "Croatia",
              "Haiti",
              "Hungary",
              "Indonesia",
              "Ireland",
              "Israel",
              "Isle of Man",
              "India",
              "British Indian Ocean Territory",
              "Iraq",
              "Iran, Islamic Republic of",
              "Iceland",
              "Italy",
              "Jersey",
              "Jamaica",
              "Jordan",
              "Japan",
              "Kenya",
              "Kyrgyzstan",
              "Cambodia",
              "Kiribati",
              "Comoros",
              "Saint Kitts and Nevis",
              "Korea, Democratic People's Republic of",
              "Korea, Republic of",
              "Kuwait",
              "Cayman Islands",
              "Kazakhstan",
              "Lao People's Democratic Republic",
              "Lebanon",
              "Saint Lucia",
              "Liechtenstein",
              "Sri Lanka",
              "Liberia",
              "Lesotho",
              "Lithuania",
              "Luxembourg",
              "Latvia",
              "Libya",
              "Morocco",
              "Monaco",
              "Moldova, Republic of",
              "Montenegro",
              "Saint Martin (French part)",
              "Madagascar",
              "Marshall Islands",
              "North Macedonia",
              "Mali",
              "Myanmar",
              "Mongolia",
              "Macao",
              "Northern Mariana Islands",
              "Martinique",
              "Mauritania",
              "Montserrat",
              "Malta",
              "Mauritius",
              "Maldives",
              "Malawi",
              "Mexico",
              "Malaysia",
              "Mozambique",
              "Namibia",
              "New Caledonia",
              "Niger",
              "Norfolk Island",
              "Nigeria",
              "Nicaragua",
              "Netherlands",
              "Norway",
              "Nepal",
              "Nauru",
              "Niue",
              "New Zealand",
              "Oman",
              "Panama",
              "Peru",
              "French Polynesia",
              "Papua New Guinea",
              "Philippines",
              "Pakistan",
              "Poland",
              "Saint Pierre and Miquelon",
              "Pitcairn",
              "Puerto Rico",
              "Palestine, State of",
              "Portugal",
              "Palau",
              "Paraguay",
              "Qatar",
              "Réunion",
              "Romania",
              "Serbia",
              "Russian Federation",
              "Rwanda",
              "Saudi Arabia",
              "Solomon Islands",
              "Seychelles",
              "Sudan",
              "Sweden",
              "Singapore",
              "Saint Helena, Ascension and Tristan da Cunha",
              "Slovenia",
              "Svalbard and Jan Mayen",
              "Slovakia",
              "Sierra Leone",
              "San Marino",
              "Senegal",
              "Somalia",
              "Suriname",
              "South Sudan",
              "Sao Tome and Principe",
              "El Salvador",
              "Sint Maarten (Dutch part)",
              "Syrian Arab Republic",
              "Eswatini",
              "Turks and Caicos Islands",
              "Chad",
              "French Southern Territories",
              "Togo",
              "Thailand",
              "Tajikistan",
              "Tokelau",
              "Timor-Leste",
              "Turkmenistan",
              "Tunisia",
              "Tonga",
              "Türkiye",
              "Trinidad and Tobago",
              "Tuvalu",
              "Taiwan, Province of China",
              "Tanzania, United Republic of",
              "Ukraine",
              "Uganda",
              "United States Minor Outlying Islands",
              "United States",
              "Uruguay",
              "Uzbekistan",
              "Holy See (Vatican City State)",
              "Saint Vincent and the Grenadines",
              "Venezuela, Bolivarian Republic of",
              "Virgin Islands, British",
              "Virgin Islands, U.S.",
              "Viet Nam",
              "Vanuatu",
              "Wallis and Futuna",
              "Samoa",
              "Yemen",
              "Mayotte",
              "South Africa",
              "Zambia",
              "Zimbabwe"
            ],
            "default": "US",
            "prefill": "US"
          },
          "transcriptionMethod": {
            "title": "Transcription method",
            "type": "string",
            "description": "'Auto' uses Snapchat's published captions first and falls back to speech recognition. 'Native only' never runs AI. 'Whisper only' ignores published captions.",
            "editor": "select",
            "enum": [
              "auto",
              "native",
              "whisper"
            ],
            "enumTitles": [
              "Auto — captions first, AI fallback (recommended)",
              "Native only — Snapchat captions, no AI",
              "Whisper only — AI speech recognition"
            ],
            "default": "auto",
            "prefill": "auto",
            "sectionCaption": "Transcription"
          },
          "whisperModel": {
            "title": "Speech-recognition model",
            "type": "string",
            "description": "AI model size used when speech recognition runs. Larger models are slower but better with accents and non-English speech.",
            "editor": "select",
            "enum": [
              "tiny",
              "base",
              "small"
            ],
            "enumTitles": [
              "Tiny — fastest, lower accuracy",
              "Base — recommended balance",
              "Small — slower, better for non-English"
            ],
            "default": "base",
            "prefill": "base"
          },
          "language": {
            "title": "Language hint",
            "type": "string",
            "description": "Optional language for speech recognition. 'Auto-detect' is best for most runs; pick a language when the audio is clearly non-English.",
            "editor": "select",
            "enum": [
              "auto",
              "aa",
              "ab",
              "ae",
              "af",
              "ak",
              "am",
              "an",
              "ar",
              "as",
              "av",
              "ay",
              "az",
              "ba",
              "be",
              "bg",
              "bi",
              "bm",
              "bn",
              "bo",
              "br",
              "bs",
              "ca",
              "ce",
              "ch",
              "co",
              "cr",
              "cs",
              "cu",
              "cv",
              "cy",
              "da",
              "de",
              "dv",
              "dz",
              "ee",
              "el",
              "en",
              "eo",
              "es",
              "et",
              "eu",
              "fa",
              "ff",
              "fi",
              "fj",
              "fo",
              "fr",
              "fy",
              "ga",
              "gd",
              "gl",
              "gn",
              "gu",
              "gv",
              "ha",
              "he",
              "hi",
              "ho",
              "hr",
              "ht",
              "hu",
              "hy",
              "hz",
              "ia",
              "id",
              "ie",
              "ig",
              "ii",
              "ik",
              "io",
              "is",
              "it",
              "iu",
              "ja",
              "jv",
              "ka",
              "kg",
              "ki",
              "kj",
              "kk",
              "kl",
              "km",
              "kn",
              "ko",
              "kr",
              "ks",
              "ku",
              "kv",
              "kw",
              "ky",
              "la",
              "lb",
              "lg",
              "li",
              "ln",
              "lo",
              "lt",
              "lu",
              "lv",
              "mg",
              "mh",
              "mi",
              "mk",
              "ml",
              "mn",
              "mr",
              "ms",
              "mt",
              "my",
              "na",
              "nb",
              "nd",
              "ne",
              "ng",
              "nl",
              "nn",
              "no",
              "nr",
              "nv",
              "ny",
              "oc",
              "oj",
              "om",
              "or",
              "os",
              "pa",
              "pi",
              "pl",
              "ps",
              "pt",
              "qu",
              "rm",
              "rn",
              "ro",
              "ru",
              "rw",
              "sa",
              "sc",
              "sd",
              "se",
              "sg",
              "sh",
              "si",
              "sk",
              "sl",
              "sm",
              "sn",
              "so",
              "sq",
              "sr",
              "ss",
              "st",
              "su",
              "sv",
              "sw",
              "ta",
              "te",
              "tg",
              "th",
              "ti",
              "tk",
              "tl",
              "tn",
              "to",
              "tr",
              "ts",
              "tt",
              "tw",
              "ty",
              "ug",
              "uk",
              "ur",
              "uz",
              "ve",
              "vi",
              "vo",
              "wa",
              "wo",
              "xh",
              "yi",
              "yo",
              "za",
              "zh",
              "zu"
            ],
            "enumTitles": [
              "Auto-detect",
              "Afar",
              "Abkhazian",
              "Avestan",
              "Afrikaans",
              "Akan",
              "Amharic",
              "Aragonese",
              "Arabic",
              "Assamese",
              "Avaric",
              "Aymara",
              "Azerbaijani",
              "Bashkir",
              "Belarusian",
              "Bulgarian",
              "Bislama",
              "Bambara",
              "Bengali",
              "Tibetan",
              "Breton",
              "Bosnian",
              "Catalan",
              "Chechen",
              "Chamorro",
              "Corsican",
              "Cree",
              "Czech",
              "Church Slavic",
              "Chuvash",
              "Welsh",
              "Danish",
              "German",
              "Divehi",
              "Dzongkha",
              "Ewe",
              "Modern Greek (1453-)",
              "English",
              "Esperanto",
              "Spanish",
              "Estonian",
              "Basque",
              "Persian",
              "Fulah",
              "Finnish",
              "Fijian",
              "Faroese",
              "French",
              "Western Frisian",
              "Irish",
              "Scottish Gaelic",
              "Galician",
              "Guarani",
              "Gujarati",
              "Manx",
              "Hausa",
              "Hebrew",
              "Hindi",
              "Hiri Motu",
              "Croatian",
              "Haitian",
              "Hungarian",
              "Armenian",
              "Herero",
              "Interlingua (International Auxiliary Language Association)",
              "Indonesian",
              "Interlingue",
              "Igbo",
              "Sichuan Yi",
              "Inupiaq",
              "Ido",
              "Icelandic",
              "Italian",
              "Inuktitut",
              "Japanese",
              "Javanese",
              "Georgian",
              "Kongo",
              "Kikuyu",
              "Kuanyama",
              "Kazakh",
              "Kalaallisut",
              "Khmer",
              "Kannada",
              "Korean",
              "Kanuri",
              "Kashmiri",
              "Kurdish",
              "Komi",
              "Cornish",
              "Kirghiz",
              "Latin",
              "Luxembourgish",
              "Ganda",
              "Limburgan",
              "Lingala",
              "Lao",
              "Lithuanian",
              "Luba-Katanga",
              "Latvian",
              "Malagasy",
              "Marshallese",
              "Maori",
              "Macedonian",
              "Malayalam",
              "Mongolian",
              "Marathi",
              "Malay (macrolanguage)",
              "Maltese",
              "Burmese",
              "Nauru",
              "Norwegian Bokmål",
              "North Ndebele",
              "Nepali (macrolanguage)",
              "Ndonga",
              "Dutch",
              "Norwegian Nynorsk",
              "Norwegian",
              "South Ndebele",
              "Navajo",
              "Chichewa",
              "Occitan (post 1500)",
              "Ojibwa",
              "Oromo",
              "Oriya (macrolanguage)",
              "Ossetian",
              "Panjabi",
              "Pali",
              "Polish",
              "Pushto",
              "Portuguese",
              "Quechua",
              "Romansh",
              "Rundi",
              "Romanian",
              "Russian",
              "Kinyarwanda",
              "Sanskrit",
              "Sardinian",
              "Sindhi",
              "Northern Sami",
              "Sango",
              "Serbo-Croatian",
              "Sinhala",
              "Slovak",
              "Slovenian",
              "Samoan",
              "Shona",
              "Somali",
              "Albanian",
              "Serbian",
              "Swati",
              "Southern Sotho",
              "Sundanese",
              "Swedish",
              "Swahili (macrolanguage)",
              "Tamil",
              "Telugu",
              "Tajik",
              "Thai",
              "Tigrinya",
              "Turkmen",
              "Tagalog",
              "Tswana",
              "Tonga (Tonga Islands)",
              "Turkish",
              "Tsonga",
              "Tatar",
              "Twi",
              "Tahitian",
              "Uighur",
              "Ukrainian",
              "Urdu",
              "Uzbek",
              "Venda",
              "Vietnamese",
              "Volapük",
              "Walloon",
              "Wolof",
              "Xhosa",
              "Yiddish",
              "Yoruba",
              "Zhuang",
              "Chinese",
              "Zulu"
            ],
            "default": "auto",
            "prefill": "auto"
          },
          "includeSegments": {
            "title": "Include timed segments",
            "type": "boolean",
            "description": "When on, each record includes the timestamped 'segments' array. Turn it off for a smaller dataset; 'fullText', 'wordCount' and 'segmentCount' are still returned.",
            "default": true,
            "prefill": true
          },
          "maxItems": {
            "title": "Maximum records",
            "type": "integer",
            "description": "Stop after this many transcript records. The limit counts pushed rows, including failed-input rows.",
            "minimum": 1,
            "maximum": 1000000,
            "default": 100000,
            "prefill": 1,
            "sectionCaption": "Limits"
          },
          "maxVideosPerSource": {
            "title": "Videos per creator, hashtag or feed",
            "type": "integer",
            "description": "How many videos to collect from each handle, hashtag or trending feed before moving on. Paste-URL mode is not affected by this cap.",
            "minimum": 1,
            "maximum": 100,
            "default": 20,
            "prefill": 1
          }
        }
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Snapchat Spotlight Transcript Extractor Output",
        "type": "object",
        "description": "One record per Spotlight video with the transcript, timed segments, creator and engagement metadata.",
        "properties": {
          "results": {
            "type": "string",
            "description": "Dataset containing transcript records",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        },
        "fields": {
          "recordType": {
            "type": "string",
            "description": "Always 'spotlightTranscript'"
          },
          "snapId": {
            "type": "string",
            "description": "Spotlight snap ID"
          },
          "sourceUrl": {
            "type": "string",
            "description": "Canonical Snapchat URL of the video"
          },
          "mode": {
            "type": "string",
            "description": "Discovery mode used for this record: bySpotlightUrls, byUsername, byTopic or byFeed"
          },
          "inputUrl": {
            "type": "string",
            "description": "URL supplied in 'spotlightUrls' (paste-URL mode only)"
          },
          "discoveredVia": {
            "type": "string",
            "description": "Handle, hashtag or country that surfaced the video in a discovery mode"
          },
          "title": {
            "type": "string",
            "description": "AI-generated video title when Snapchat publishes one"
          },
          "description": {
            "type": "string",
            "description": "AI-generated video description"
          },
          "caption": {
            "type": "string",
            "description": "Caption text embedded in the video"
          },
          "username": {
            "type": "string",
            "description": "Creator Snapchat username"
          },
          "creatorName": {
            "type": "string",
            "description": "Creator display name"
          },
          "creatorUrl": {
            "type": "string",
            "description": "Creator profile URL"
          },
          "creatorAvatarUrl": {
            "type": "string",
            "description": "Creator avatar image URL"
          },
          "videoUrl": {
            "type": "string",
            "description": "Direct CDN video URL (may expire)"
          },
          "thumbnailUrl": {
            "type": "string",
            "description": "Thumbnail image URL"
          },
          "durationSeconds": {
            "type": "number",
            "description": "Video duration in seconds"
          },
          "uploadedAt": {
            "type": "string",
            "description": "Upload timestamp in ISO 8601 UTC"
          },
          "width": {
            "type": "integer",
            "description": "Video width in pixels"
          },
          "height": {
            "type": "integer",
            "description": "Video height in pixels"
          },
          "keywords": {
            "type": "array",
            "description": "Keywords Snapchat associates with the video"
          },
          "hashtags": {
            "type": "array",
            "description": "Hashtags from the video's keyword list"
          },
          "viewCount": {
            "type": "integer",
            "description": "View count at scrape time"
          },
          "shareCount": {
            "type": "integer",
            "description": "Share count at scrape time"
          },
          "commentCount": {
            "type": "integer",
            "description": "Comment count at scrape time"
          },
          "likeCount": {
            "type": "integer",
            "description": "Like count at scrape time"
          },
          "transcriptSource": {
            "type": "string",
            "description": "'native' for Snapchat's published captions, 'whisper' for AI speech recognition"
          },
          "transcriptAvailable": {
            "type": "boolean",
            "description": "Whether a usable transcript was produced"
          },
          "transcriptUrl": {
            "type": "string",
            "description": "WebVTT caption file URL when Snapchat publishes one"
          },
          "language": {
            "type": "string",
            "description": "Language code: 'en' for native captions, or the language detected/hinted for AI transcripts"
          },
          "languageProbability": {
            "type": "number",
            "description": "Speech-recognition language confidence (0-1); AI transcripts only"
          },
          "whisperModel": {
            "type": "string",
            "description": "Speech-recognition model size used (tiny, base or small)"
          },
          "segments": {
            "type": "array",
            "description": "Timed transcript segments: [{startTime, endTime, text}]"
          },
          "segmentCount": {
            "type": "integer",
            "description": "Number of timed transcript segments"
          },
          "fullText": {
            "type": "string",
            "description": "Transcript as one plain-text string"
          },
          "wordCount": {
            "type": "integer",
            "description": "Number of words in the transcript"
          },
          "scrapedAt": {
            "type": "string",
            "description": "ISO 8601 UTC timestamp when the record was scraped"
          },
          "error": {
            "type": "string",
            "description": "Why transcription or fetching failed for this row"
          }
        }
      },
      "dockerfile": "./Dockerfile",
      "readme": "# Snapchat Spotlight Video Transcript Extractor\n\nPublic Snapchat Spotlight clips carry spoken words that Snapchat does not always show as text in a reusable form. This actor returns a clean transcript for each clip — first trying the caption track Snapchat already published, then, when asked, generating one from the audio with speech recognition.\n\nYou can feed it exact Spotlight links, a creator's pinned Spotlight videos, a hashtag page, or a country's trending Spotlight feed. Every row also includes the creator, engagement counts, video timing and thumbnail so the transcript can be joined to the rest of your data.\n\n## What you get\n\n- **Published captions when available.** Snapchat exposes a WebVTT caption file for many videos. The actor downloads it, parses the cue timings, and returns both `segments` and the concatenated `fullText`.\n- **Speech recognition as a fallback.** For videos without published captions, `auto` mode transcribes the audio with Whisper. Three model sizes trade speed for accuracy.\n- **Four ways to choose videos.** Paste links, pull a creator's pinned Spotlight highlights, browse a hashtag, or page through a country feed.\n- **Metadata alongside text.** Creator handle and display name, avatar, title, description, embedded caption, keywords, hashtags, duration, upload date, resolution, and view/share/comment/like counts.\n- **Smaller datasets on demand.** Turn off timed segments to keep `fullText`, `wordCount` and `segmentCount` without the per-cue array.\n- **Clean rows.** Empty values are omitted instead of written as `null`, and each row carries `recordType`, `sourceUrl` and `scrapedAt`.\n\n## Modes\n\n| Mode | What it reads | Typical input |\n|---|---|---|\n| `bySpotlightUrls` | The exact videos you paste | `https://www.snapchat.com/spotlight/<id>`, `https://www.snapchat.com/@user/spotlight/<id>`, `https://t.snapchat.com/<code>`, or a bare snap ID |\n| `byUsername` | A public creator's pinned Spotlight highlights | `brentrivera`, `@brentrivera`, `https://www.snapchat.com/@brentrivera` |\n| `byTopic` | Videos listed on a hashtag page | `comedy`, `#comedy`, `https://www.snapchat.com/tag/comedy` |\n| `byFeed` | A country's trending Spotlight feed, 25 videos per page | `US`, `GB`, `PK` |\n\nDiscovery modes stop after `maxVideosPerSource` videos per handle, hashtag or feed. `maxItems` caps the total number of rows in the run.\n\n## Output fields\n\n| Field | Description |\n|---|---|\n| `recordType` | Always `spotlightTranscript` |\n| `snapId` | Spotlight snap ID |\n| `sourceUrl` | Canonical Snapchat page for the video |\n| `mode` | `bySpotlightUrls`, `byUsername`, `byTopic` or `byFeed` |\n| `inputUrl` | The link you supplied (paste-URL mode only) |\n| `discoveredVia` | Handle, hashtag or country that surfaced the video (discovery modes only) |\n| `title` | Snapchat's generated title, when present |\n| `description` | Snapchat's generated description, when present |\n| `caption` | Caption embedded in the video |\n| `username` | Creator's Snapchat handle |\n| `creatorName` | Creator's display name |\n| `creatorUrl` | Creator profile link |\n| `creatorAvatarUrl` | Creator avatar image link |\n| `videoUrl` | Direct CDN video link (may expire) |\n| `thumbnailUrl` | Thumbnail image link |\n| `durationSeconds` | Video length in seconds |\n| `uploadedAt` | Upload time, ISO 8601 UTC |\n| `width`, `height` | Video dimensions in pixels |\n| `keywords` | Keywords Snapchat associates with the video |\n| `hashtags` | Hashtag entries from the keyword list |\n| `viewCount`, `shareCount`, `commentCount`, `likeCount` | Public engagement counts at scrape time |\n| `transcriptSource` | `native` for published captions, `whisper` for generated text |\n| `transcriptAvailable` | Whether a usable transcript was produced |\n| `transcriptUrl` | WebVTT caption file link, when one exists |\n| `language` | `en` for published captions; detected or hinted code for generated transcripts |\n| `languageProbability` | Language-detection confidence (0-1) for generated transcripts |\n| `whisperModel` | Model size used for generated transcripts |\n| `segments` | Timed cues: `[{startTime, endTime, text}]` |\n| `segmentCount` | Number of cues |\n| `fullText` | Whole transcript as one string |\n| `wordCount` | Word count of `fullText` |\n| `scrapedAt` | When the row was produced, ISO 8601 UTC |\n| `error` | Explanation when fetching or transcription failed for that row |\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `bySpotlightUrls` | Which discovery path to use. |\n| `spotlightUrls` | array | – | Links or IDs; required when `mode` is `bySpotlightUrls`. |\n| `usernames` | array | – | Creator handles; used when `mode` is `byUsername`. |\n| `topics` | array | – | Hashtags or topics; used when `mode` is `byTopic`. |\n| `country` | string | `US` | Two-letter feed country; used when `mode` is `byFeed`. |\n| `transcriptionMethod` | string | `auto` | `auto`, `native` or `whisper`. |\n| `whisperModel` | string | `base` | `tiny`, `base` or `small`. |\n| `language` | string | `auto` | Optional language hint for speech recognition. |\n| `includeSegments` | boolean | `true` | Include the timed `segments` array. |\n| `maxItems` | integer | `100000` | Maximum rows to push, including error rows. |\n| `maxVideosPerSource` | integer | `20` | Videos collected per handle, hashtag or feed. |\n\nLegacy keys from the previous version (`spotlightUrl`, `urls`, `startUrls`, `maxResults`, `method`, `model`) are still accepted and mapped to the current fields when the new key is absent.\n\n### Paste a handful of links\n\n```json\n{\n  \"mode\": \"bySpotlightUrls\",\n  \"spotlightUrls\": [\n    \"https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYYmViYXF5amNyAZXOAULlAZXOAOzLAAAAAQ\",\n    \"https://t.snapchat.com/example\"\n  ],\n  \"maxItems\": 5\n}\n```\n\n### Transcribe a creator's pinned Spotlight videos\n\n```json\n{\n  \"mode\": \"byUsername\",\n  \"usernames\": [\"brentrivera\"],\n  \"maxVideosPerSource\": 10,\n  \"transcriptionMethod\": \"auto\"\n}\n```\n\n### Browse a hashtag with a fixed transcript style\n\n```json\n{\n  \"mode\": \"byTopic\",\n  \"topics\": [\"comedy\"],\n  \"maxVideosPerSource\": 20,\n  \"transcriptionMethod\": \"whisper\",\n  \"whisperModel\": \"small\",\n  \"language\": \"en\"\n}\n```\n\n### Page a country feed\n\n```json\n{\n  \"mode\": \"byFeed\",\n  \"country\": \"GB\",\n  \"maxVideosPerSource\": 50,\n  \"includeSegments\": false\n}\n```\n\n## How it reads Snapchat\n\nAll requests are anonymous: no login, cookie, API key or proxy account is needed. The actor reads the public video page, its embedded Schema.org `VideoObject` data, the published WebVTT caption file, and the public Spotlight discovery surfaces (profile highlights, tag pages and the feed's public GraphQL query). When a page is unavailable, the transcript endpoint for that snap ID is used as a fallback.\n\n## Limits and notes\n\n- Published captions exist only for some videos. In a mixed 34-video probe, 8 had native captions; the rest need `auto` or `whisper` if you want text.\n- Native captions are returned with `language: en`, matching Snapchat's published caption behaviour.\n- Creator mode uses pinned Spotlight highlights (usually around 16 videos), not a creator's complete posting history.\n- Tag pages usually list 20-35 videos; feed pages return 25 videos per page and are paged until `maxVideosPerSource` is reached.\n- CDN video and thumbnail links can expire. Re-run the actor or copy the files if you need durable media.\n- A video with no speech, only music, or very low confidence returns `transcriptAvailable: false` plus an `error` instead of invented text.\n- A removed, expired or region-blocked clip returns a row with `transcriptAvailable: false` and an explanatory `error`.\n- Follower counts, sound/lens names and recommendation counts are not published on the clip page, so they are not returned.\n- Comments, downloads, private profiles and login-gated content are outside this actor's scope.\n\n## FAQ\n\n### Do I need a Snapchat account?\nNo. The actor only reads public pages and public caption files.\n\n### What happens when a video has no published captions?\nWith `auto`, the actor downloads the video and runs speech recognition. With `native`, it returns `transcriptAvailable: false` and explains why.\n\n### Which Whisper model should I pick?\n`base` is the usual choice. `tiny` is faster and cheaper for clear speech. `small` helps with accents and non-English audio.\n\n### Can I request transcripts in a particular language?\nSet `language` to an ISO 639-1 code for speech recognition. Published captions are returned as Snapchat provides them.\n\n### Why is a transcript missing segments?\nThe video may have text but no caption file, or you may have turned off `includeSegments`. `fullText`, `wordCount` and `segmentCount` remain available.\n\n### Are results identical on every run?\nTranscript text and metadata are stable, but engagement counters and CDN links change over time, and discovery modes can surface a slightly different set as feeds rotate.\n",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "Transcript records",
          "views": {
            "overview": {
              "title": "Transcript Records",
              "transformation": {
                "fields": [
                  "snapId",
                  "mode",
                  "username",
                  "durationSeconds",
                  "transcriptSource",
                  "language",
                  "segmentCount",
                  "transcriptAvailable",
                  "error",
                  "scrapedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "snapId": {
                    "label": "Snap ID",
                    "format": "text"
                  },
                  "mode": {
                    "label": "Mode",
                    "format": "text"
                  },
                  "username": {
                    "label": "Username",
                    "format": "text"
                  },
                  "durationSeconds": {
                    "label": "Duration (s)",
                    "format": "number"
                  },
                  "transcriptSource": {
                    "label": "Source",
                    "format": "text"
                  },
                  "language": {
                    "label": "Language",
                    "format": "text"
                  },
                  "segmentCount": {
                    "label": "Segments",
                    "format": "number"
                  },
                  "transcriptAvailable": {
                    "label": "Available",
                    "format": "boolean"
                  },
                  "error": {
                    "label": "Error",
                    "format": "text"
                  },
                  "scrapedAt": {
                    "label": "Scraped At",
                    "format": "datetime"
                  }
                }
              }
            }
          }
        }
      }
    },
    "buildNumber": "2.0.1",
    "imageDigest": "5f2002d830db00fc71bc09d27da1970cdc204a9058a3d59f2be2f09df87f56a3",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "2.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.014775555555555556
    }
  }
}