Feature Extractors
After your data is connected, extractors run in parallel to pull out structured features, embeddings, entities, transcripts, and more.
12 production extractors, each with a README, a live schema, and a Studio path
Web Scraper + Multimodal Embeddings
Crawl sites (docs, job boards, news, SPAs) and extract text, code & image embeddings in one pass.
Text Embeddings (E5-Large)
Multilingual dense text embeddings with E5-Large: semantic search & RAG out of the box.
Image Embeddings (SigLIP)
Dense 768-D image embeddings with Google SigLIP: text-to-image search in one contrastive space.
Multimodal Video/Audio/Image (Vertex v1 · Gemini v2)
Unified embeddings for video, audio, image & text: FFmpeg scene/silence chunking, Whisper transcription, thumbnails.
Universal All-in-One (Gemini)
One extractor for image, video, audio & documents: auto-detects modality and applies the right pipeline.
Multi-File Object Embeddings (Gemini)
Embed ALL files of an object (images, PDFs, video, audio, text) into one 3072-D Gemini vector.
Document Layout Graph
Decompose PDFs into spatial blocks: paragraphs, tables, forms, headers: with layout classification & confidence.
Passthrough (Storage Only)
Store and canonicalize objects with zero ML: metadata-only ingestion.
Scrolling/Marquee Text OCR
Reads scrolling video text via phase-correlation band detection, panoramic stitching, and VLM OCR.
Face Identity (SCRFD + ArcFace)
Production face recognition: detect, align, and embed faces to 512-D ArcFace vectors across image, video & PDF.
Audio Fingerprinting (CLAP)
512-D audio embeddings with CLAP: content-based audio search and matching from files or video tracks.
Transcoding
Video transcoding to H.264/H.265 MP4.
What's new in extractors
Full changelog- Aug 30, 2026multimodal_extractor_v2 was skipping every image and text objectA collection built on multimodal_extractor_v2 over images produced zero documents and reported no failures, which reads as an empty source rather than a bug. The media-streaming wrapper around the extractor checked for a video segment column, found the placeholder that image and text rows carry for schema alignment in mixed batches, and treated each row as a failed video segment: it passed the row through without running the extractor, so those objects never reached the path that would have downloaded and embedded them. The wrapper now splits three ways, routing rows positively identified as image or text to the extractor directly. The same skip was behind image description and OCR going missing, so both come back with it.
- Aug 29, 2026A large batch on a Celery-native extractor is chunked instead of rejectedA scheduled sync of 1,120 objects failed on every run for three weeks. The extractor runs on Celery with no Ray fallback, and eligibility compared the batch's total object count against a per-task limit of 50, so the whole submit was rejected outright and the collection never refreshed. That per-task limit is real capacity rather than an arbitrary cap, since each object carries a model call under a time limit, so raising it would have traded a clean failure for mid-task timeouts. The batch is now chunked to fit instead.
- Aug 27, 2026The transcription_language you set now reaches WhisperBoth multimodal extractors published transcription_language in their public parameter schema with a default of "en", and neither pipeline passed it to Whisper. Setting "ru" on a Russian corpus returned a 200 and transcribed with whatever Whisper guessed from the audio. Nothing errored, because Whisper auto-detects when given no hint, which is why the parameter survived through v1 and v2 looking like it worked. Both legs now forward it. That matters more than it sounds: production runs the API leg and self-hosted tenants run the local one, so wiring either alone would have left the fix inert for real traffic. The local leg had nowhere to put a language at all and gained a config field, passing the hint only when you actually name a language so auto-detect stays the default.
- Aug 27, 2026The extractors page was quoting credit rates the platform does not chargeFour rates on the extractors pages were stale against the live catalog, and every one of them understated the real cost: multimodal video read 50 credits a minute against an actual 200, the web scraper 5 per page against 14, image 2 per image against 4, and scrolling-text OCR 30 a minute against 34. Anyone sizing a video workload off that page was budgeting a quarter of the real bill. All four now match the discovery API rate for rate. The deploy gate compared which extractors exist and never what they cost, which is why this drifted silently; it now compares the published rate against the API and fails on any mismatch, with a self-test that proves the check can still go red. The same pass added the transcoding extractor, which the API had been serving while the page listed 11 of 12.