
Instagram Reel Scraper
scrape.ly/store/echofield/instagram-reel-scraperSocial mediaVideos
1 monthly user

Transcribe audio and video files, podcast RSS feeds and Apple Podcasts episodes to text with timestamps, language detection, SRT/VTT subtitles and English translation. Pay per audio minute. No login needed.
Turn audio and video files, podcast feeds and Apple Podcasts episodes into text. Paste links and get the full transcript, timestamped segments, the detected language and ready-made SRT and VTT subtitle files. No login, no API key and no upload: the files are downloaded and transcribed on the fly with a Whisper speech model.
| Field | What it does |
|---|---|
urls | Media file URLs, podcast RSS feeds, Apple Podcasts links or web pages (one per line) |
maxEpisodesPerFeed | Newest episodes to take from each feed (default 1) |
model | tiny, base (default) or small |
language | Two-letter code such as en or de; empty = detect automatically |
translateToEnglish | Output an English translation instead of the original language |
vocabulary | Names and jargon that appear in the audio, to spell them correctly |
wordTimestamps | Add per-word start and end times |
maxMinutesPerFile | Transcribe at most this many minutes of each file (default 120, maximum 300) |
publishedAfter, episodeTitleContains | Podcast filters |
saveSubtitleFiles | Save SRT, VTT and TXT files and link them in each row (default on) |
{
"urls": [
"https://upload.wikimedia.org/wikipedia/commons/c/c4/GWBush_Oval_Office_Address_20010911-1-.ogg",
"https://feeds.npr.org/500005/podcast.xml"
],
"maxEpisodesPerFeed": 1,
"model": "base"
}
| Field | Description |
|---|---|
title | Episode title, file title tag or file name |
podcastTitle, episodeTitle, publishedAt, episodeUrl, feedUrl | Podcast metadata (feeds and Apple Podcasts) |
mediaUrl | The media file that was transcribed |
durationSeconds, transcribedSeconds, truncated | Length of the media and how much was transcribed |
language, languageProbability | Detected (or given) language |
text, wordCount | Full transcript |
segments | [{start, end, text}], plus words when word timestamps are on |
paragraphs | The transcript grouped into readable paragraphs with start and end times |
srtUrl, vttUrl, txtUrl | Subtitle and text files in the run's key-value store |
billedMinutes | Audio minutes of this file (when a run reaches its maximum charge, the last file may be billed fewer; minutesBilled in the OUTPUT record is the run total) |
status, warning | ok or no_speech, with a readable note |
[
{
"url": "https://feeds.npr.org/500005/podcast.xml",
"mediaUrl": "https://prfx.byspotify.com/e/play.podtrac.com/npr-500005/npr.simplecastaudio.com/368f8510-314e-46f1-8d26-5b87ed6ab6eb/episodes/4b3cb9fd-8490-4628-80ef-bc730abac08e/audio/128/default.mp3?awCollectionId=368f8510-314e-46f1-8d26-5b87ed6ab6eb&awEpisodeId=4b3cb9fd-8490-4628-80ef-bc730abac08e&feed=O9WlY7a5&t=podcast&e=nx-s1-20261015-2000-long&p=500005&d=280&size=4586728",
"sourceType": "feed",
"title": "8pm ET, October 15 | The latest headlines from NPR",
"podcastTitle": "NPR News Now",
"podcastAuthor": "NPR",
"feedUrl": "https://feeds.npr.org/500005/podcast.xml",
"podcastImageUrl": "https://media.npr.org/assets/img/2023/01/24/npr-news-now_tile_sq-2334a5fd44563fa94cdcdb27384b0f05987c2d15.jpg",
"episodeTitle": "8pm ET, October 15 | The latest headlines from NPR",
"episodeGuid": "09ec1a41-8f71-44e0-914a-5ed2725ca733",
"episodeUrl": null,
"publishedAt": "2026-10-16T00:09:48Z",
"feedDurationSeconds": 280,
"mediaType": "audio/mpeg",
"fileSizeBytesFeed": 4586728,
"publisherTranscriptUrl": null,
"fileName": "default.mp3",
"fileSizeBytes": 5465268,
"mediaFormat": "mp3",
"audioCodec": "mp3float",
"hasVideo": false,
"durationSeconds": 341.58,
"transcribedSeconds": 341.58,
"truncated": false,
"status": "ok",
"language": "en",
"languageProbability": 0.9948,
"task": "transcribe",
"model": "base",
"text": "This message comes from here there are blueberries, a secret album, mysterious photos, and an archivist's relentless search into the history trapped inside the lens. From the co-creators of the Laramie project, see this landmark new play strictly limited to 80 Broadway performances at the Barrymore Theatre. Previews begin November 2nd. Get tickets now at herethereourblueberries.com. Live from NPR ...",
"wordCount": 956,
"segmentCount": 70,
"segments": [
{
"start": 0,
"end": 5.2,
"text": "This message comes from here there are blueberries, a secret album, mysterious photos,"
},
{
"start": 5.2,
"end": 9.76,
"text": "and an archivist's relentless search into the history trapped inside the lens."
},
{
"start": 9.76,
"end": 14,
"text": "From the co-creators of the Laramie project, see this landmark new play"
}
],
"paragraphs": [
{
"start": 0,
"end": 23.6,
"text": "This message comes from here there are blueberries, a secret album, mysterious photos, and an archivist's relentless search into the history trapped inside the lens. From the co-creators of the Laramie project, see this landmark new play strictly limited to 80 Broadway performances at the Barrymore ..."
}
],
"billedMinutes": 6,
"processingSeconds": 143.01,
"realTimeFactor": 0.419,
"transcribedAt": "2026-10-16T01:07:00Z",
"warning": null,
"srtUrl": "https://api-staging.scrape.ly/v2/key-value-stores/<storeId>/records/8pm-ET-October-15-The-latest-headlines-from-NPR-0cd5a9ebd6fe.srt?signature=...",
"vttUrl": "https://api-staging.scrape.ly/v2/key-value-stores/<storeId>/records/8pm-ET-October-15-The-latest-headlines-from-NPR-0cd5a9ebd6fe.vtt?signature=...",
"txtUrl": "https://api-staging.scrape.ly/v2/key-value-stores/<storeId>/records/8pm-ET-October-15-The-latest-headlines-from-NPR-0cd5a9ebd6fe.txt?signature=..."
}
]
You pay $1 per 1,000 audio minutes ($0.001 per started minute of each file), plus the platform usage of the run: compute while the speech model works, and proxy traffic for the downloads. Both are shown on every run.
failedInputs in the run's OUTPUT record and counted in the status message.tiny model is about twice as cheap in compute, small about three times more expensive. Video files use more proxy traffic than audio files.Is it legal to transcribe this audio? The actor only downloads files that are publicly reachable. You are responsible for having the right to transcribe and use the content, for example your own recordings, public-domain material or content you have permission to process.
Do I need an account, API key or proxy? No. Downloads go through datacenter proxies by default. Switch to residential proxies only if a host refuses datacenter IPs.
Which model should I choose? base is fast and accurate on clear speech. small is noticeably better on noisy audio, strong accents and many non-English languages, but it takes about three times as long, so it uses more compute. tiny is the fastest and fine for quick drafts.
How long can a file be? Up to 300 minutes per file (default cap 120). Longer files are transcribed up to the cap and billed only for what was transcribed, with a warning in the row.
Why did a page not work? Many sites load their player with JavaScript or stream from a platform. In that case paste the direct file URL or the podcast's RSS feed.
Can I schedule it or use the API? Yes. Schedule a run with a podcast feed and publishedAfter: "1 day" to transcribe new episodes daily, or start runs from the API and read the dataset.
.m3u8) and DRM-protected media are not supported.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
urlsarrayRequiredMedia files, podcast feeds or pages
One per line. Direct audio or video file links (MP3, M4A, WAV, OGG, OPUS, FLAC, AAC, MP4, MOV, WEBM...), podcast RSS feeds, Apple Podcasts show or episode links, or web pages that embed an audio or video file. Google Drive and Dropbox share links work too. YouTube, TikTok, Instagram, Spotify and other streaming platforms are not supported.
maxEpisodesPerFeedintegerOptionaldefault 1Episodes per podcast feed
How many of the newest episodes to transcribe from each podcast feed or Apple Podcasts show.
Model, language and timing options.
modelenumOptionaldefault "base"Speech model
Speed vs. accuracy. 'base' is a good default for clear speech. 'small' is the most accurate (noisy audio, accents, non-English) but about 3x slower, so it uses more compute. 'tiny' is the fastest.
languagestringOptionalSpoken language
Two-letter code such as en, es, de, fr, pt or ja. Leave empty to detect the language automatically (about 99 languages).
translateToEnglishbooleanOptionaldefault falseTranslate to English
Output an English translation of the speech instead of a transcript in the original language.
vocabularystringOptionalVocabulary hint
Names, brands and jargon that appear in the audio, separated by commas (for example: Kubernetes, Nvidia, Jensen Huang). Helps the model spell them correctly.
wordTimestampsbooleanOptionaldefault falseWord timestamps
Add start and end times for every word inside each segment (slightly slower).
skipSilencebooleanOptionaldefault trueSkip silence and music
Detect speech first and skip long silences and pure music. Faster, and it prevents made-up text in silent parts.
beamSizeintegerOptionaldefault 1Beam size
1 is fastest. Higher values (up to 5) can be a little more accurate but take longer.
maxMinutesPerFileintegerOptionaldefault 120Max minutes per file
Longer files are transcribed up to this many minutes and billed only for what was transcribed. Maximum 300.
What each row and the run's storage contain.
includeSegmentsbooleanOptionaldefault trueTimestamped segments
Add the list of segments with start and end times to each row.
saveSubtitleFilesbooleanOptionaldefault trueSave SRT, VTT and TXT files
Save subtitle files (SRT, VTT) and a plain-text transcript for every file in the run's key-value store and link them in the row (srtUrl, vttUrl, txtUrl).
subtitlesInDatasetbooleanOptionaldefault falseSRT and VTT text in the row
Also put the full SRT and VTT subtitle text into each row.
Applied to podcast feeds and Apple Podcasts shows before 'Episodes per podcast feed'.
publishedAfterstringOptionalPublished after
Podcast feeds only: skip older episodes. A date such as 2026-09-01, or a window such as 30 days, 2 weeks or 12 hours.
episodeTitleContainsstringOptionalEpisode title contains
Podcast feeds only: keep episodes whose title contains this text (case-insensitive). Separate alternatives with | (for example interview|Q&A).
maxFileSizeMbintegerOptionaldefault 1024Max file size (MB)
Skip media files larger than this. Video files are much bigger than audio for the same length.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Downloads go through datacenter proxies by default. Switch to residential only if a host refuses datacenter IPs.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| title | any | Title |
| podcastTitle | any | Podcast |
| language | any | Language |
| durationSeconds | any | Duration (s) |
| billedMinutes | any | Billed min |
| wordCount | any | Words |
| text | any | Transcript |
| srtUrl | any | SRT |
| txtUrl | any | TXT |
| status | any | Status |
| url | any | Input URL |
| warning | any | Warning |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Audio minute transcribed | Charged per started minute of audio actually transcribed in each file. Failed downloads, invalid URLs and files with no speech are free. | $0.001 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/audio-transcriber').call({
"urls": [
"https://upload.wikimedia.org/wikipedia/commons/c/c4/GWBush_Oval_Office_Address_20010911-1-.ogg",
"https://feeds.npr.org/500005/podcast.xml"
],
"maxEpisodesPerFeed": 1,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/audio-transcriberPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/audio-transcriber"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Text and subtitles for the latest podcast episode.
Timed text segments and subtitles from an audio file.
Word-level timing and subtitles in the dataset.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.