Script Var Extract

action_script_var_extract · action · Utility · Available · v1.0.0

Description

Estrattore enterprise specializzato per il pattern moderno di reverse-engineering web: parsing di variabili JavaScript inline embedded direttamente nei blocchi <script> del HTML server-rendered, senza eseguire il JS — pattern fondamentale per accedere ai dati strutturati che molte SPA, framework SSR (Next.js, Nuxt, SvelteKit, Remix), CMS embedded player (YouTube, Vimeo, Streammy, Twitch embeds), piattaforma sport (DAZN, Sky, ESPN) e similar mettono come state pre-popolato in window.X = {...} per consumo client-side, anziché esporre un'API REST/GraphQL pubblica documentata. Questi dati sono "pubblici" nel HTML response del server ma non in JSON proper, e parsarli con browser+JS execution (via Puppeteer/Playwright) sarebbe overkill e 100× più lento + più costoso. Esempio canonico di use case: pagina video player con il tag <script>window.player = { src: "https://cdn.example.com/segments/master.m3u8", expires: 1730000000, drm: false, region: "EU" }</script> → il nodo estrae programmatic src + expires + drm + region senza dover lanciare Chrome headless + parse di DOM events. Robust contro le varianti di sintassi JavaScript reale (codice JS scritto da developer veri ha format eterogenei tra publisher e a volte tra deploy del stesso publisher): quote singole o doppie intercambiabili (\"src\" vs \'src\'), chiavi object con o senza virgolette (var = { src: ... } vs var = { \"src\": ... }), valori numerici o stringa o boolean o null, trailing comma permessi (style JS modern), commenti inline ignorati safely, espressioni semplici tipo Date.now() o {a: b} nested object. Il parser è AST-style con context window per evitare false match. Critical security feature: NON esegue mai il JavaScript estratto (no eval, no Function(), no vm) — il parsing è puramente lexical/syntactic stile SAX parser, completamente safe per processing di HTML untrusted da source web arbitrari senza rischio di code injection o sandbox escape. Output: { extracted: { variableName1: { value, type (object|array|string|number|boolean|null), scriptIndex } }, totalExtracted, scriptsAnalyzed }. Use case: estrarre URL video reali da player embed di service streaming come Streammy/vixcloud/sweetpixel che mettono lo stream URL in window.config = {} prima di costruire il player visuale; ingest del state SSR (window.__INITIAL_STATE__ del Redux pre-popolato, window.__APOLLO_STATE__ di Apollo Client) di pagine React/Vue server-rendered per scraping di e-commerce moderni; recovery di dati config da landing pubbliche di company sites (es. <script>window.analyticsConfig = {apiKey:"...", endpoint:"..."}); reverse-engineering di payload Inertia.js (used dai siti Laravel modern) o Next.js __NEXT_DATA__ (il payload server-side che React idrata client-side — contiene tipicamente tutti i dati della pagina pronti per consumo); ingest dati da broadcaster sport che fanno embed di player con metadata evento/lineup/stat in window.payload.

⚙️ Configuration parameters

Fields shown in the editor when configuring the node. Generated directly from the NodeDefconfigFields.

FieldTypeRequiredDefaultDescription
htmlSource
Sorgente HTML
enum
inputexplicit
noinputinput = HTML dal nodo precedente. explicit = HTML scritto qui (testing).
htmlExplicit
HTML (esplicito)
codenoHTML statico per testing.
variables
Variabili da estrarre
codeyes
[ { "name": "window.player", "key": "src", "expect": "string" }, { "name": "window.player", "key": "expires", "expect": "number" }, { "name": "appConfig", "key": "apiKey", "expect": "string" } ]
Array di {name, key?, expect?}. name = path variabile (es. window.video, masterPlaylist, data). key = chiave da pescare dentro l'oggetto (opzionale, se vuoto ritorna l'intero blocco testuale). expect = number | string | raw (default raw). Number parsa solo digits.

⬆️ Node output

Fields available to downstream nodes via $node.<alias>.json.<field>:

  • extracted
  • matched
  • matchedCount
  • requested
  • scriptsScanned

💡 Configuration example

JSON snippet of the node as it appears in the workflow. Values are derived fromdefaultValue and from required parameters.

{
  "id": "node-action_script_var_extract-1",
  "defId": "action_script_var_extract",
  "label": "Script Var Extract",
  "config": {
    "htmlSource": "input",
    "variables": "[\n  { \"name\": \"window.player\", \"key\": \"src\", \"expect\": \"string\" },\n  { \"name\": \"window.player\", \"key\": \"expires\", \"expect\": \"number\" },\n  { \"name\": \"appConfig\", \"key\": \"apiKey\", \"expect\": \"string\" }\n]"
  }
}

🔗 Related nodes in the same category

Ready to use Script Var Extract?

Available now on all FlowForge plans. Try it free without a credit card.

Start freeBrowse all nodes