Snapchat Spotlight Video Transcript Extractor
Pricing
from $0.49 / 1,000 results
Snapchat Spotlight Video Transcript Extractor
Turn Snapchat Spotlight video URLs into timestamped transcripts, using native captions when Snapchat provides them and AI speech recognition otherwise, plus duration, caption and upload metadata.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
Xyrelith Data
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 hours ago
Last modified
Categories
Features
Share
Public 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.
You 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.
What you get
- Published captions when available. Snapchat exposes a WebVTT caption file for many videos. The actor downloads it, parses the cue timings, and returns both
segmentsand the concatenatedfullText. - Speech recognition as a fallback. For videos without published captions,
automode transcribes the audio with Whisper. Three model sizes trade speed for accuracy. - Four ways to choose videos. Paste links, pull a creator's pinned Spotlight highlights, browse a hashtag, or page through a country feed.
- 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.
- Smaller datasets on demand. Turn off timed segments to keep
fullText,wordCountandsegmentCountwithout the per-cue array. - Clean rows. Empty values are omitted instead of written as
null, and each row carriesrecordType,sourceUrlandscrapedAt.
Modes
| Mode | What it reads | Typical input |
|---|---|---|
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 |
byUsername | A public creator's pinned Spotlight highlights | brentrivera, @brentrivera, https://www.snapchat.com/@brentrivera |
byTopic | Videos listed on a hashtag page | comedy, #comedy, https://www.snapchat.com/tag/comedy |
byFeed | A country's trending Spotlight feed, 25 videos per page | US, GB, PK |
Discovery modes stop after maxVideosPerSource videos per handle, hashtag or feed. maxItems caps the total number of rows in the run.
Output fields
| Field | Description |
|---|---|
recordType | Always spotlightTranscript |
snapId | Spotlight snap ID |
sourceUrl | Canonical Snapchat page for the video |
mode | bySpotlightUrls, byUsername, byTopic or byFeed |
inputUrl | The link you supplied (paste-URL mode only) |
discoveredVia | Handle, hashtag or country that surfaced the video (discovery modes only) |
title | Snapchat's generated title, when present |
description | Snapchat's generated description, when present |
caption | Caption embedded in the video |
username | Creator's Snapchat handle |
creatorName | Creator's display name |
creatorUrl | Creator profile link |
creatorAvatarUrl | Creator avatar image link |
videoUrl | Direct CDN video link (may expire) |
thumbnailUrl | Thumbnail image link |
durationSeconds | Video length in seconds |
uploadedAt | Upload time, ISO 8601 UTC |
width, height | Video dimensions in pixels |
keywords | Keywords Snapchat associates with the video |
hashtags | Hashtag entries from the keyword list |
viewCount, shareCount, commentCount, likeCount | Public engagement counts at scrape time |
transcriptSource | native for published captions, whisper for generated text |
transcriptAvailable | Whether a usable transcript was produced |
transcriptUrl | WebVTT caption file link, when one exists |
language | en for published captions; detected or hinted code for generated transcripts |
languageProbability | Language-detection confidence (0-1) for generated transcripts |
whisperModel | Model size used for generated transcripts |
segments | Timed cues: [{startTime, endTime, text}] |
segmentCount | Number of cues |
fullText | Whole transcript as one string |
wordCount | Word count of fullText |
scrapedAt | When the row was produced, ISO 8601 UTC |
error | Explanation when fetching or transcription failed for that row |
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | bySpotlightUrls | Which discovery path to use. |
spotlightUrls | array | – | Links or IDs; required when mode is bySpotlightUrls. |
usernames | array | – | Creator handles; used when mode is byUsername. |
topics | array | – | Hashtags or topics; used when mode is byTopic. |
country | string | US | Two-letter feed country; used when mode is byFeed. |
transcriptionMethod | string | auto | auto, native or whisper. |
whisperModel | string | base | tiny, base or small. |
language | string | auto | Optional language hint for speech recognition. |
includeSegments | boolean | true | Include the timed segments array. |
maxItems | integer | 100000 | Maximum rows to push, including error rows. |
maxVideosPerSource | integer | 20 | Videos collected per handle, hashtag or feed. |
Legacy 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.
Paste a handful of links
{"mode": "bySpotlightUrls","spotlightUrls": ["https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYYmViYXF5amNyAZXOAULlAZXOAOzLAAAAAQ","https://t.snapchat.com/example"],"maxItems": 5}
Transcribe a creator's pinned Spotlight videos
{"mode": "byUsername","usernames": ["brentrivera"],"maxVideosPerSource": 10,"transcriptionMethod": "auto"}
Browse a hashtag with a fixed transcript style
{"mode": "byTopic","topics": ["comedy"],"maxVideosPerSource": 20,"transcriptionMethod": "whisper","whisperModel": "small","language": "en"}
Page a country feed
{"mode": "byFeed","country": "GB","maxVideosPerSource": 50,"includeSegments": false}
How it reads Snapchat
All 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.
Limits and notes
- Published captions exist only for some videos. In a mixed 34-video probe, 8 had native captions; the rest need
autoorwhisperif you want text. - Native captions are returned with
language: en, matching Snapchat's published caption behaviour. - Creator mode uses pinned Spotlight highlights (usually around 16 videos), not a creator's complete posting history.
- Tag pages usually list 20-35 videos; feed pages return 25 videos per page and are paged until
maxVideosPerSourceis reached. - CDN video and thumbnail links can expire. Re-run the actor or copy the files if you need durable media.
- A video with no speech, only music, or very low confidence returns
transcriptAvailable: falseplus anerrorinstead of invented text. - A removed, expired or region-blocked clip returns a row with
transcriptAvailable: falseand an explanatoryerror. - Follower counts, sound/lens names and recommendation counts are not published on the clip page, so they are not returned.
- Comments, downloads, private profiles and login-gated content are outside this actor's scope.
FAQ
Do I need a Snapchat account?
No. The actor only reads public pages and public caption files.
What happens when a video has no published captions?
With auto, the actor downloads the video and runs speech recognition. With native, it returns transcriptAvailable: false and explains why.
Which Whisper model should I pick?
base is the usual choice. tiny is faster and cheaper for clear speech. small helps with accents and non-English audio.
Can I request transcripts in a particular language?
Set language to an ISO 639-1 code for speech recognition. Published captions are returned as Snapchat provides them.
Why is a transcript missing segments?
The video may have text but no caption file, or you may have turned off includeSegments. fullText, wordCount and segmentCount remain available.
Are results identical on every run?
Transcript 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.