Snapchat Spotlight Scraper (Language & Topic Filters) avatar

Snapchat Spotlight Scraper (Language & Topic Filters)

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Snapchat Spotlight Scraper (Language & Topic Filters)

Snapchat Spotlight Scraper (Language & Topic Filters)

Scrape Snapchat Spotlight videos by language and topic. Extract video details, creators, captions, hashtags, engagement metrics, timestamps, and more. Ideal for trend research, content analysis, competitor insights, and audience discovery.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

API Empire

API Empire

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

0

Monthly active users

a day ago

Last modified

Share

Snapchat Spotlight Scraper — Video, Language & Topic Data as JSON

Snapchat Spotlight Scraper (Language & Topic Filters) reads any public Snapchat Spotlight link or bare video ID and returns the video's creator, caption and engagement data together with Snapchat's own content-understanding signals — detected language with a confidence score, a scored SEO keyword list, and a one-sentence scene description. Built-in filters route videos by detected language or by topic terms found in the video's own data, and every run can end with a single summary row covering the whole batch. Every response is typed, normalized JSON — no HTML, no selectors, no parsing. Feed it a list of Spotlight links and get back which language each video is in, what it's about, and whether it matches the topics you care about.

What is Snapchat Spotlight Scraper (Language & Topic Filters)?

It is an Apify Actor that classifies Snapchat Spotlight videos by language and topic instead of just downloading them. Given a list of Spotlight URLs or video IDs, it fetches each video's public page, reads the language, keyword and scene signals Snapchat's own content-understanding pipeline already attached to it, and applies the language and topic filters you configure before saving a row. No Snapchat account or login is required — every request goes to the public Spotlight page.

  • Detect each video's language, with a confidence score and a low-confidence flag
  • Extract a scored SEO keyword list and a scene description of what the video shows
  • Route videos by detected language, or by topic terms matched against captions, hashtags, on-screen text and scene data
  • Pull creator, caption, hashtag and engagement details (views, shares, boosts, comments, recommends) alongside the content signals
  • Add one run-level row summarizing the language mix and filter outcomes across the whole batch
  • Export as JSON or CSV

What data does Snapchat Spotlight Scraper (Language & Topic Filters) collect?

The Actor returns three kinds of rows: per-video Spotlight data, the language and topic signals attached to each video, and a run-level breakdown.

Data TypeKey FieldsJSON Field Names
Spotlight video detailscreator, caption, hashtags, engagement, mediacreatorUsername, description, hashtags, viewCount, boostCount, commentCount, shareCount, recommendCount, dateUploaded, durationMs, thumbnailUrl, contentUrl
Language & content signalsdetected language, confidence, scored keywords, scene descriptiondetectedLanguage, detectedLanguageConfidence, detectedLanguageIsLowConfidence, scoredKeywords, topKeyword, sceneDescription
Run-level language & topic breakdownlanguage mix, filtered counts, top keywords for the runlanguageCounts, medianLanguageConfidence, topScoredKeywords, videosMatchingTopics, videosFilteredByLanguage, videosFilteredByTopic

Need more Snapchat data?

If you also need creator-side data, API-Empire publishes two related Snapchat scrapers: Snapchat User Spotlight Scraper: Creator Profile Stats, which walks a creator's own Spotlight videos alongside their profile and AR lenses, and Snapchat Popular Accounts Scraper By Snapcode & Bio Links, which extracts snapcode contact cards and bio links from account or keyword search pages. Both sit alongside this Actor in the API-Empire Snapchat lineup.

How does Snapchat Spotlight Scraper (Language & Topic Filters) differ from the official Snap API?

Snap's own Public Profile API returns metadata and stats for Public Profiles and their content, but as documented on that page (checked 2026-08-15) it is scoped to profiles that have opted in to data sharing or OAuth'd into a partner platform — not to arbitrary public Spotlight videos by URL. This Actor reads any public Spotlight link directly, with no creator opt-in required.

FeatureSnap Public Profile APISnapchat Spotlight Scraper (Language & Topic Filters)
Access scopeConnected Public Profiles that opted in or OAuth'd into a partner platformAny public Spotlight video, given its URL or ID
SetupPartner/OAuth connection required (per Snap's docs)✅ Provide links, start the run
Language detectionNot documented as a feature✅ Per-video detected language + confidence
Keyword / scene extractionNot documented as a feature✅ Scored keywords, scene description
Topic filteringNot documented as a feature✅ Built-in include/exclude topic matching
Output shapeSnap's API response schemaOne stable JSON row schema per run

The Snap Public Profile API is the right tool when you manage a Public Profile yourself and want first-party analytics for content you already own. This Actor is the right tool when you need language and topic signals for public Spotlight videos you don't control, without a partner agreement.

Why do developers and teams scrape Snapchat Spotlight?

🤖 For AI engineers and agent builders

Language-tagged, topic-scored Spotlight data drops straight into a labeling pipeline: filter a batch of links down to en videos with topicMatchScore above a threshold, then feed scoredKeywords and sceneDescription into a RAG index or an agent tool without writing a separate classification model. The detectedLanguageIsLowConfidence flag lets an agent route uncertain rows to a human reviewer instead of trusting every prediction.

📣 For marketers and brand teams

Run a list of Spotlight links from a campaign or hashtag search through topicKeywords to see which videos actually talk about the product versus which just used the tag, then check languageCounts in the run breakdown to see whether the campaign is landing in the languages it targeted.

🔬 For researchers and analysts

includeLanguageBreakdown turns a batch of Spotlight links into a single summary of the language mix, median detection confidence and topic-match rate across the sample — useful for studying how content in a given language or topic performs, using only publicly accessible video data.

🛠️ For developers building data products

The row schema is stable across runs, so a moderation or localization pipeline can key off detectedLanguage, languageFilterOutcome and matchedTopicTerms directly, and use maxItems plus skipDuplicateSpotlights to control exactly how much of an input list gets processed on a schedule.

How to scrape Snapchat Spotlight (step by step)

  1. Open Snapchat Spotlight Scraper (Language & Topic Filters) on its Apify Store listing and click Try for free (or start a run from the Apify Console if you already use the Actor).
  2. Paste at least one Snapchat Spotlight URL or bare video ID into spotlightsToClassify — the run fails immediately if no usable links are given.
  3. Set your language and topic filters: languages/excludeLanguages to route by detected language, topicKeywords/excludeTopicKeywords with topicMatchFields to route by topic.
  4. Start the run.
  5. Download results as JSON or CSV from the run's dataset, or read them via the Apify API/apify_client.

What to do when Snapchat changes its structure

The Actor is maintained, and the output field names and types stay stable across updates, so downstream integrations keep working without changes on your end. No specific turnaround time is published for fixes.

⬇️ Input

All parameters are optional in the schema, but the run needs at least one usable link in spotlightsToClassify (or the legacy urls field) to do anything.

ParameterRequiredTypeDescriptionExample Value
spotlightsToClassifyNoarrayOne Snapchat Spotlight URL or bare video ID per line.["https://www.snapchat.com/spotlight/W7_..."]
urlsNoarrayLegacy input kept for compatibility. Used only when spotlightsToClassify is empty.[]
maxItemsNointegerStop after this many links from the input above have been processed. 0 processes every link. Default 0. Minimum 0.100
skipDuplicateSpotlightsNobooleanWhen two input links point at the same Spotlight video, fetch and save it only once. Default true.true
includeContentSignalsNobooleanWhen on, each row carries the detected language, confidence, scored keyword list and (unless disabled below) a scene description. Default true.true
includeSceneDescriptionNobooleanWhen on, adds a one-sentence description of what the video shows, plus its scene keywords. Requires includeContentSignals. Default true.true
minKeywordScoreNonumberDrop scored keywords below this confidence (0–1) from the returned list. Default 0 keeps every scored keyword. Min 0, max 1.0.3
lowConfidenceLanguageThresholdNonumberA video's detected language is flagged low confidence (detectedLanguageIsLowConfidence = true) when its score is below this value (0–1). Does not remove any row by itself. Default 0.6. Min 0, max 1.0.6
languagesNoarrayISO-style language codes to keep (e.g. en, es, ko). Leave empty to keep every language.["en", "es"]
excludeLanguagesNoarrayLanguage codes to drop. Leave empty to exclude none.[]
minLanguageConfidenceNonumberDrop videos whose detected-language confidence is below this value (0–1). Default 0 keeps every confidence level. Min 0, max 1.0.5
includeUnclassifiedVideosNobooleanWhen on and no language filter is set, videos Snapchat did not attach a language signal to are still returned (detectedLanguage = null). When any language filter is set, such videos cannot be evaluated against it and are dropped either way. Default true.true
topicKeywordsNoarrayKeep only videos where at least one of these terms appears in the field(s) selected by topicMatchFields. Leave empty to keep every topic. This searches data already in the payload — it is not a Snapchat search and cannot find videos outside the links you submit.["fitness", "recipe"]
excludeTopicKeywordsNoarrayDrop videos where any of these terms appears in the field(s) selected by topicMatchFields. Leave empty to exclude none.["giveaway"]
topicMatchFieldsNostringWhich field(s) topic terms are matched against. Enum: scoredKeywords (Scored SEO keywords only), sceneText (Scene description + scene keywords), captionHashtags (Caption + hashtags), onScreenText (On-screen text), all (All of them). Default "all"."all"
includeLanguageBreakdownNobooleanWhen on, one extra row is added at the end of the run summarizing the language mix, confidence and topic matches across every video submitted. Default true.true
proxyConfigurationNoobjectOptional. Leave empty to use the default connection, or choose your own proxy settings.{"useApifyProxy": true}

⚠️ topicKeywords and excludeTopicKeywords only search the language, keyword, scene and caption data already attached to the links you submit — they cannot discover new Spotlight videos on Snapchat. Give the Actor the links you want checked.

Example input:

{
"spotlightsToClassify": [
"https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYdW94bXd5dmF5AYv9OiSkAYv9OiP4AAAAAQ",
"https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYc3JvZXBkY3ZhAZ_gEb4pAZ_gEb0UAAAAAw"
],
"urls": [],
"maxItems": 100,
"skipDuplicateSpotlights": true,
"includeContentSignals": true,
"includeSceneDescription": true,
"minKeywordScore": 0.3,
"lowConfidenceLanguageThreshold": 0.6,
"languages": ["en", "es"],
"excludeLanguages": [],
"minLanguageConfidence": 0.5,
"includeUnclassifiedVideos": true,
"topicKeywords": ["fitness", "recipe"],
"excludeTopicKeywords": ["giveaway"],
"topicMatchFields": "all",
"includeLanguageBreakdown": true,
"proxyConfiguration": { "useApifyProxy": true }
}

Common pitfall: setting a languages or minLanguageConfidence filter without also checking includeUnclassifiedVideos — once any language filter is active, videos with no detected language signal are dropped regardless of that toggle, since they can't be evaluated against the filter.

⬆️ Output

Results are typed, normalized JSON — export as JSON or CSV from the Apify Console, or via the API. The dataset carries three structurally different row shapes, identified by the type field.

Scraped Spotlight video (type: "video")

{
"type": "video",
"isChild": false,
"outcome": "kept",
"spotlightId": "W7_EDlXWTBiXAEEniNoMPwAAYdW94bXd5dmF5AYv9OiSkAYv9OiP4AAAAAQ",
"spotlightUrl": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYdW94bXd5dmF5AYv9OiSkAYv9OiP4AAAAAQ",
"url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYdW94bXd5dmF5AYv9OiSkAYv9OiP4AAAAAQ?sc_referrer=web",
"creator": {
"name": "Jordan Lake",
"username": "jordanlake",
"url": "https://www.snapchat.com/add/jordanlake",
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/creator_thumb.jpg",
"snapcodeUrl": "https://app.snapchat.com/web/deeplink/snapcode?username=jordanlake"
},
"creatorUsername": "jordanlake",
"creatorDisplayName": "Jordan Lake",
"creatorProfileUrl": "https://www.snapchat.com/add/jordanlake",
"description": "5-minute stretch routine before bed #fitness #wellness",
"hashtags": ["fitness", "wellness"],
"hashtagsFromCaption": ["fitness", "wellness"],
"viewCount": 184230,
"shareCount": 512,
"boostCount": 1043,
"commentCount": 88,
"recommendCount": 2110,
"dateUploaded": "2026-07-18T09:24:11.000000Z",
"durationMs": 24500,
"width": 1080,
"height": 1920,
"thumbnailUrl": "https://cf-st.sc-cdn.net/d/spotlight_thumb.jpg",
"contentUrl": "https://cf-st.sc-cdn.net/d/spotlight_video.mp4",
"llmTitle": "Evening stretch routine",
"llmDescription": "A creator demonstrates a short stretching routine before bed.",
"llmKeywords": ["stretching", "bedtime routine"],
"textMetadataKeywords": ["stretch", "flexibility"],
"status": "OK",
"error": null,
"scrapedAt": "2026-08-15T10:03:44.128000Z",
"detectedLanguage": "en",
"detectedLanguageConfidence": 0.94,
"detectedLanguageIsLowConfidence": false,
"secondaryDetectedLanguage": null,
"secondaryDetectedLanguageConfidence": null,
"contentSignalsAvailable": ["detectedLanguage", "llmPrediction", "textMetadata"],
"contentSignalPromptName": "spotlight_keyword_v2",
"sceneDescription": "A person performs a slow stretching routine in a bedroom.",
"sceneKeywords": ["stretching", "bedroom", "nighttime"],
"scoredKeywords": [
{ "keyword": "stretching routine", "score": 0.91 },
{ "keyword": "bedtime wellness", "score": 0.62 }
],
"scoredKeywordCount": 2,
"keywordsHiddenByFlatField": 0,
"topKeyword": "stretching routine",
"topKeywordScore": 0.91,
"languageFilterOutcome": "kept",
"matchedTopicTerms": ["fitness"],
"matchedTopicFields": ["captionHashtags"],
"topicMatchScore": 0.91
}

Pushed instead of a video row when a link can't be classified — an unrecognizable link, a Spotlight that no longer resolves, or a page that stayed unreadable after retries.

{
"type": "status",
"isChild": false,
"outcome": "notFound",
"url": "https://www.snapchat.com/spotlight/deleted-video-id",
"spotlightId": "deleted-video-id",
"spotlightUrl": null,
"status": "NOT_FOUND",
"error": "This link did not resolve to an available Spotlight video.",
"scrapedAt": "2026-08-15T10:04:02.501000Z"
}

Run-level language & topic breakdown (type: "languageBreakdown")

Added once at the end of the run when includeLanguageBreakdown is on. It is also written to its own named dataset (<runId>-language-breakdown) alongside the default dataset.

{
"type": "languageBreakdown",
"isChild": true,
"videosClassified": 42,
"videosWithNoLanguageSignal": 3,
"distinctLanguages": 5,
"languageCounts": { "en": 27, "es": 8, "ko": 4 },
"medianLanguageConfidence": 0.87,
"lowConfidenceShare": 0.12,
"topScoredKeywords": { "stretching routine": 6, "bedtime wellness": 4 },
"videosMatchingTopics": 14,
"videosFilteredByLanguage": 5,
"videosFilteredByConfidence": 2,
"videosFilteredByTopic": 9,
"scrapedAt": "2026-08-15T10:05:00.019000Z"
}

How does Snapchat Spotlight Scraper (Language & Topic Filters) compare to other Snapchat scrapers?

FeatureThis ActorGeneric alternative
Output formatTyped JSON, same schema every run❌ Not documented as typed/normalized on the listings checked
Language detection✅ Per-video, with confidence score❌ Not documented (checked on two Snapchat Spotlight scrapers' Apify listings, 2026-08-15)
Scored keyword / scene extraction✅ Scored keywords + scene description❌ Not documented on the listings checked
Topic / language filtering✅ Built-in include/exclude filters❌ Not documented on the listings checked
Run-level summary row✅ Optional language & topic breakdown❌ Not documented on the listings checked

Two competing Snapchat Spotlight scrapers on the Apify Store were checked on 2026-08-15: their listings document a URL list and creator/engagement/media output, but neither mentions language detection, keyword scoring, scene description or topic filtering. If you're building an AI agent or RAG pipeline, the output format row is the decision-maker — parsing HTML inside an agent loop is a reliability failure mode, not a feature.

How many results can you scrape with Snapchat Spotlight Scraper (Language & Topic Filters)?

There is no hard cap in the Actor itself: maxItems defaults to 0, meaning every link you submit is processed. Set maxItems to a positive number to stop after that many links. This Actor classifies links you provide — it does not paginate through a Snapchat feed or search, so the practical ceiling is the size of the link list you supply, not a platform-side limit.

Integrate Snapchat Spotlight Scraper (Language & Topic Filters) and automate your workflow

Snapchat Spotlight Scraper (Language & Topic Filters) works with any language or tool that can send an HTTP request, through the Apify API and the apify_client SDKs.

REST API integration

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"spotlightsToClassify": ["https://www.snapchat.com/spotlight/W7_..."],
"languages": ["en"],
"topicKeywords": ["fitness"],
}
run = client.actor("YOUR_USERNAME/snapchat-spotlight-scraper-language-and-topic-filters").call(
run_input=run_input
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["detectedLanguage"], item["topKeyword"])

Works in Python, Node.js, Go, Ruby, cURL.

Automation platforms (n8n, Make, LangChain)

n8n: the official @apify/n8n-nodes-apify package adds Run Actor, Run Task and Get Dataset Items operations, so a workflow can trigger this Actor and pull the classified rows straight into downstream nodes.

Make: Apify's native Make module ships Run Actor, Wait, and Get Dataset Items modules, letting a scenario start a classification run and read back the language and topic rows without a custom HTTP call.

LangChain: the Apify dataset loader can load a completed run's output directly into a LangChain pipeline, so scoredKeywords and sceneDescription can be indexed or passed to an LLM without extra parsing.

Yes — Snapchat Spotlight Scraper (Language & Topic Filters) only reads publicly accessible Spotlight pages; it does not log in, does not access private accounts, and does not bypass any access control. Output rows include public creator identifiers (username, display name, profile URL), which counts as personal data under regimes like GDPR and CCPA when you store or process it, so you are responsible for having a lawful basis for your specific use. Business and engagement figures (view counts, hashtags) are not personal data on their own, but the creator fields attached to each row are. Consult legal counsel for commercial use cases involving bulk personal data.

❓ Frequently asked questions

Does Snapchat Spotlight Scraper (Language & Topic Filters) work without a Snapchat account?

Yes. Every request is a plain HTTP fetch of the public Spotlight page — no login, session, or Snapchat credentials are used or required.

How often is the scraped data updated?

Every run fetches the current public page for each link live — nothing is served from a cache. The language, keyword and scene signals reflect what Snapchat's page returns at run time.

What happens if a Spotlight video was deleted or is unavailable?

The Actor returns a type: "status" row with outcome: "notFound" and status: "NOT_FOUND" instead of a video row. If a page loads but can't be parsed after three attempts, it returns outcome: "unreadable" with status: "ERROR" instead.

Can I scrape private or restricted Snapchat content?

No. Only public Spotlight pages are fetched. There is no login step, so private accounts and content Snapchat does not serve to an unauthenticated request are simply not reachable — they resolve as notFound, not returned as data.

Does Snapchat Spotlight Scraper (Language & Topic Filters) work for AI agent workflows and LLM pipelines?

Yes. It's callable as a standard HTTP endpoint through the Apify API by any agent framework that can send a request and read JSON back. Every row is typed JSON with stable field names, so no parsing step is needed before passing scoredKeywords, sceneDescription or detectedLanguage to an LLM.

How does Snapchat Spotlight Scraper (Language & Topic Filters) handle Snapchat's anti-bot system?

Each fetch uses a browser-style User-Agent and retries up to three times with a short backoff (capped at 10 seconds) on request errors or blocked responses (HTTP 401, 403, 409, 429, 503, 509). After the first blocked or failed fetch, the run automatically switches to a residential proxy for the rest of its links if one is available. You can also supply your own proxyConfiguration.

How does Snapchat Spotlight Scraper (Language & Topic Filters) compare to other Snapchat Spotlight scrapers?

Based on two competing Snapchat Spotlight scrapers' Apify listings, checked 2026-08-15: both document link-based input and creator/engagement/media output, but neither documents language detection, keyword scoring, scene description or topic filtering — the features this Actor is built around.

Does Snapchat Spotlight Scraper (Language & Topic Filters) return data in a format LLMs can use directly?

Yes. Typed, normalized JSON with stable field names — no HTML, no selectors, no parsing. Pass rows directly into an LLM context window, index them into a vector store, or route them through an agent tool.

Can I use Snapchat Spotlight Scraper (Language & Topic Filters) without managing proxies?

Yes. The Actor uses Apify Proxy by default and automatically falls back to a residential proxy after a blocked or failed fetch; you never have to configure or rotate proxies yourself unless you want to supply your own.

What happens when Snapchat changes its structure or blocks the scraper?

The Actor is maintained, and its output schema stays stable — field names and types don't change on your end. No specific turnaround time for fixes is published.

💬 Your feedback

Found a bug or missing a field? We want to know. Open an issue through the Actor's Apify Console page or contact API-Empire through the Store listing's support channel — reports like this keep the field list and filters accurate as Snapchat's own page changes.