Audio & Video Transcriber: Transcription of Any URL to Text
Pricing
from $17.00 / 1,000 media transcribed (up to 2 min)s
Audio & Video Transcriber: Transcription of Any URL to Text
Rising starTranscribe any audio or video link to text: YouTube, TikTok, Instagram, Facebook, X, Reddit, Vimeo, Loom, MP3 and MP4 files, Apple Podcasts and Spotify. Audio transcription, podcast transcription and speech to text with Whisper, 99 languages, timestamps and SRT. No API key. Errors are free.
Pricing
from $17.00 / 1,000 media transcribed (up to 2 min)s
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
29
Total users
18
Monthly active users
5 hours ago
Last modified
Features
Share
Audio & Video Transcriber (Whisper)
Audio & Video Transcriber turns audio and video from any public link into text: direct files (MP3, M4A, MP4, WAV, WebM, OGG...), YouTube, TikTok, Instagram, Facebook, X (Twitter), Reddit, Vimeo, Dailymotion, SoundCloud, Loom, Twitch clips and 1,000+ other sites, and podcasts from RSS feeds, Apple Podcasts or Spotify links (the newest episodes, or the exact episode you link). You get the full transcript with timestamps, optional SRT and WebVTT subtitles and word timestamps, the detected language (99 languages), title, uploader and duration. Speech in any language can come out translated to English, and scheduled runs can transcribe only new episodes.
Transcription runs inside the Actor with OpenAI's open Whisper model, so there is no API key to bring and no third-party bill. No login, no cookies.
US$ 0.02 per file up to 2 minutes, then US$ 0.01 per extra minute. A 1-hour podcast costs about US$ 0.60. YouTube adds US$ 0.005 per minute. Files without speech and error rows are free.
Transcription pricing at a glance
- Price per file: US$ 0.02 (covers up to 2 minutes of audio), no run start fee, no monthly fee
- Longer files: US$ 0.01 per extra minute (about US$ 0.60 per hour of audio)
- YouTube links: + US$ 0.005 per minute of video, only when the audio has to be transcribed. Videos with captions in the spoken language use them instead (
preferCaptions, on by default): faster, and without this minute charge - What we charge for: Only files with a transcript delivered. No speech, errors, too-long files and duplicates are free
Example transcript output
Vimeo video transcribed on Apify on 2026-09-30 (segments cut to 3):
{"type": "transcript","url": "https://vimeo.com/86877247","platform": "Vimeo","title": "What Moves You? A film for runners by runners","uploader": "What Moves You?","durationSeconds": 127.1,"billedMinutes": 2.12,"extraMinutes": 1,"language": "en","languageProbability": 0.996,"transcript": "We're different. We see things differently. We see the world in a different way. We ignore the pain and we brave the cold. We've learned that running in circles doesn't always mean finishing where you've started. And that isolated paths aren't lonely. We are the elites and the not-so-elites. We are runners. born to it. I guess you could say we're oddballs, but we share a bond that is forged on the road from failure to triumph, and back again. And that makes us the same. These are our excuses. But what are the reasons? What really moves us? What if there is something deeper? Stronger moving us forward. What if we just think we know the reasons? And what if the real reasons are not entirely our own? The human race starts with a story. This is yours.","wordCount": 139,"segments": [{ "start": 6.86, "end": 12.29, "text": "We're different. We see things differently." },{ "start": 12.29, "end": 16.61, "text": "We see the world in a different way." },{ "start": 16.61, "end": 23.96, "text": "We ignore the pain and we brave the cold." }],"model": "whisper-base"}
Supported transcription sources
Tested on Apify on 2026-09-30 with real public links. "Handled" means a transcript, or a correct free row such as NO_SPEECH for music-only clips.
| Source | Links that work | Tested | How |
|---|---|---|---|
| YouTube | youtube.com/watch?v=, youtu.be/, /shorts/, m.youtube.com | 48 of 48 public videos handled | No login, no cookies. Public videos only; age-restricted and members-only videos are free LOGIN_REQUIRED rows |
instagram.com/reel/CODE/, /p/CODE/, /tv/CODE/ | 16 of 16 handled | The public post page and its audio-only track. For whole profiles use Instagram Reels Transcript | |
facebook.com/reel/ID, /watch/?v=ID, /PAGE/videos/ID | 36 of 36 handled | Public videos and reels of pages. Videos shared only with friends or groups are free LOGIN_REQUIRED rows | |
reddit.com/r/.../comments/ID/..., redd.it/ID, v.redd.it/ID, share links | 12 of 12 live videos handled | Reddit-hosted video from its public video server. Posts that link to YouTube or other sites are followed. Removed videos are free NOT_FOUND rows | |
| Spotify | open.spotify.com/episode/ID, /show/ID | 7 of 7 episodes found | Spotify audio is DRM, so it is never downloaded from Spotify. The Actor finds the same show's public RSS feed (most shows have one) and transcribes that episode file. Spotify-only shows are a free SPOTIFY_EXCLUSIVE row |
| Apple Podcasts, RSS | show or episode links, any podcast feed | yes | The episode file from the public feed |
| TikTok, X (Twitter), Vimeo, Dailymotion, SoundCloud, Loom, Twitch clips | video or track page | yes | Public video or track page |
| Direct files | .mp3, .m4a, .mp4, .wav, .webm, .ogg, .opus, .flac... | yes | Downloaded as is, up to 1.5 GB |
Transcribe video to text: YouTube, TikTok, Instagram, Facebook, X (Twitter)
Paste the post or video link. The Actor transcribes its audio. On YouTube it transcribes the audio itself, so it works on videos without captions; if you only need existing captions, YouTube Transcript is cheaper.
Transcribe audio to text: MP3, WAV, M4A files
Any public file link works, including signed or tracking links (podtrac, simplecast, S3, Google Cloud Storage, Dropbox direct links). Files up to 1.5 GB.
Podcast transcription from an RSS feed, Apple Podcasts or Spotify
Paste the podcast RSS feed, an Apple Podcasts show or episode link, or a Spotify show or episode link, and set maxEpisodesPerFeed. The Actor transcribes the newest episodes and adds the episode title, podcast name and publish date to each row. Turn on onlyNewEpisodes and schedule it daily: each run transcribes and charges only the episodes it has not done before, and a day with nothing new returns one free NO_NEW_MEDIA row.
Video guides from Apify: how to schedule an Actor and how to connect it to other apps.
Loom transcript: screen recordings and video messages to text
Paste loom.com/share/... or loom.com/embed/... links of public Loom videos, one per line. The Actor reads the audio of the recording and returns the full transcript with timestamps, the video title and duration, without a Loom account. Useful for turning walkthroughs, bug reports, sales demos and async updates into searchable text or feeding them to an AI agent. Private or password-protected videos and videos with no speech come back as free rows with an error code.
What you can do with the transcripts
- Content repurposing: turn videos and podcasts into blog posts, newsletters, show notes and subtitles.
- Research and monitoring: search what was said in podcasts, news clips and social videos.
- AI pipelines: clean text with timestamps for RAG, summarisation, translation or training data.
- Accessibility: SRT or WebVTT subtitles for your own videos, with word timestamps for karaoke-style captions.
- Translation: English text from interviews, news and podcasts in any of the 99 languages.
Transcriber input
| Field | What it does |
|---|---|
urls | Links: audio or video files, video and post pages (YouTube, Instagram, Facebook, Reddit...), podcast RSS feeds, Apple Podcasts and Spotify links |
maxEpisodesPerFeed | Default 3. Newest episodes per feed, Apple Podcasts show or playlist |
language | auto (default) detects per file. Or force a 2-letter code (en, pt, es, de, ja...) |
model | tiny (fastest), base (default), small (most accurate, best for non-English and noisy audio; each minute counts twice) |
includeSegments | Default true: phrase-level start and end in seconds |
includeSrt | Default false: adds a ready .srt subtitle text |
includeVtt | Default false: adds WebVTT subtitles (vtt) |
includeWords | Default false: adds words (start, end, confidence of each word) to every segment |
task | transcribe (default, same language as the audio) or translate (English text from any language) |
vocabulary | Names, brands and terms in the audio, one per line, so they are spelled right |
preferCaptions | Default true: YouTube videos with captions in the spoken language use them (faster, no YouTube minute charge); transcriptSource says captions or speech-to-text |
onlyNewEpisodes | Default false: skips media this input already transcribed (free); for scheduled podcast and channel runs |
memoryName | Optional name of that memory, to share it between inputs |
maxDurationMinutes | Default 120. Longer files get a free MEDIA_TOO_LONG row. Caps your cost |
{"urls": ["https://www.tiktok.com/@bbcnews/video/7652791912868482326","https://feeds.npr.org/500005/podcast.xml","https://example.com/interview.mp3"],"maxEpisodesPerFeed": 2,"model": "base","includeSrt": true}
Daily watch of a podcast, always as English text, only new episodes:
{"urls": ["https://feeds.npr.org/500005/podcast.xml"],"maxEpisodesPerFeed": 5,"task": "translate","onlyNewEpisodes": true}
Transcript output fields
url, mediaUrl (the audio file, for direct files and podcast episodes), platform, title, uploader, podcast, publishedAt, durationSeconds, billedMinutes, extraMinutes, youtubeMinutes, language, languageProbability, transcript, wordCount, segments (start, end, text, and words with includeWords), srt, vtt, task, translatedTo (en when translated), transcriptSource (captions or speech-to-text), model, source (the link you gave, for example the feed), scrapedAt.
Error codes (never charged)
| errorCode | Meaning |
|---|---|
NO_SPEECH | Music, sound effects or silence only |
NO_AUDIO | The video has no audio track |
MEDIA_TOO_LONG, MEDIA_TOO_LARGE | Above maxDurationMinutes, or a file above 1.5 GB |
YOUTUBE_BLOCKED | YouTube refused every server we tried for this video (rare). Run again later, or use YouTube Transcript for captions |
USE_INSTAGRAM_ACTOR | An Instagram profile link: use Instagram Reels Transcript for profiles |
NOT_A_VIDEO | An Instagram photo or carousel, or a Reddit text or image post |
BLOCKED | Instagram did not answer after retries; run again later |
LOGIN_REQUIRED | The site only shows this media to logged-in users (private posts, friends-only Facebook videos, age-restricted YouTube) |
SPOTIFY_EXCLUSIVE | The show (or that episode) exists only on Spotify, with no public RSS feed. Spotify audio is DRM-protected and never downloaded |
DRM_PROTECTED | DRM-protected media on other sites |
NOT_FOUND, NO_EPISODES, NOT_A_FEED | Deleted, private, wrong link, or a feed without audio |
UNSUPPORTED_URL, INVALID_URL, INVALID_INPUT | A link or value the Actor does not understand |
DOWNLOAD_FAILED, TRANSCRIPTION_FAILED | The site or the file did not cooperate after retries; run again |
NO_NEW_MEDIA | With onlyNewEpisodes: everything in this run was already transcribed before |
NOT_REACHED, UNEXPECTED | The run timeout or spending limit arrived, or something unforeseen broke; only that file is lost |
Audio and video transcription pricing
| Event | Price |
|---|---|
| Media transcribed (up to 2 minutes of audio) | US$ 0.02 |
| Extra minute, per started minute after the first 2 | US$ 0.01 |
| YouTube minute, per started minute of a YouTube video (YouTube links only) | US$ 0.005 |
- 1,000 short clips (under 2 minutes) cost US$ 20.
- A 5-minute file costs US$ 0.02 + 3 x US$ 0.01 = US$ 0.05.
- A 60-minute podcast costs US$ 0.02 + 58 x US$ 0.01 = US$ 0.60.
- With
model: small, minutes count twice (it uses about 3 times the compute): a 5-minute file costs US$ 0.02 + 8 x US$ 0.01 = US$ 0.10. - A 10-minute YouTube video costs US$ 0.02 + 8 x US$ 0.01 + 10 x US$ 0.005 = US$ 0.15. YouTube videos have a small extra fee per minute.
No speech, errors and duplicates are free, and there is no Apify compute bill on top. billedMinutes, extraMinutes and youtubeMinutes on each row show the minutes used for the price.
Audio and video transcriber FAQ
Does it work with YouTube? Yes, for public videos (48 of 48 in our 2026-09-30 tests), with no login or cookies. It adds US$ 0.005 per minute. If the video already has captions and you only need them, YouTube Transcript is cheaper.
Why not OpenAI's Whisper API or the official YouTube API? OpenAI's hosted Whisper API needs your own API key, bills you separately and accepts files up to 25 MB, so you still have to download and split the media yourself. The official YouTube Data API only downloads caption tracks with the video owner's permission. This Actor takes the link, fetches the audio and transcribes it in one run, with no key and no second bill.
Does it download from Spotify? No. Spotify audio is DRM-protected. For a Spotify episode link, the Actor finds the same episode in the show's public RSS feed (Apple Podcasts directory) and transcribes that file. Shows that exist only on Spotify come back as a free SPOTIFY_EXCLUSIVE row.
Which languages? The 99 languages Whisper knows, detected automatically. Forcing language helps on short clips.
Can it translate? Yes, to English: set task to translate and the transcript comes out in English, whatever the spoken language. Translation to other languages is not offered.
Speaker names? No. The transcript is one text with timestamps; it does not tell who is speaking.
How fast? About 6 to 10 seconds of processing per minute of audio with base, plus the download. A 30-minute episode takes around 4 minutes.
Transcriber limitations
- Public media only. Private posts, paid content, DRM streams and pages that need login are out of reach. The Actor reads public pages and files only.
- Machine transcription. Whisper is strong on clear speech; music, crowds and heavy slang lower accuracy. Use
smallfor non-English speech. - Some sites refuse cloud servers. YouTube and Instagram are handled with retries through other IPs; a link that still fails comes back as a free row.
- Runs with 2 GB of memory by default. More memory makes long files finish sooner.
Related scrapers
- YouTube Transcript Scraper: YouTube captions, SRT and AI transcription per video.
- YouTube Channel Transcripts Scraper: bulk transcripts of whole channels, SRT and VTT.
- TikTok Transcript Scraper: TikTok captions with views and likes.
- Instagram Reels Transcript Scraper: reel and video to text, whole profiles included.
Changelog
-
2026-10-26: podcast feeds on Art19, Acast, Podbean and similar hosts are read as feeds (they returned no episodes before). A file that cannot be transcribed returns a free error row and the run continues with the next files.
-
2026-10-22 (evening): YouTube videos with captions in the spoken language use them (
preferCaptions, on by default): faster and without the YouTube minute charge. -
2026-10-22: translation to English (
task), WebVTT subtitles (includeVtt), word timestamps (includeWords), custom vocabulary (vocabulary) and only new episodes for scheduled runs (onlyNewEpisodes, freeNO_NEW_MEDIArow when nothing is new). -
2026-09-30, 0.2: YouTube audio (public videos, no login), Instagram reels and video posts, Reddit videos (including posts that link elsewhere), Spotify episode and show links (transcribed from the show's public RSS feed, never from Spotify), long episodes no longer fail (1-hour podcasts work). New
youtubeMinutesfield and YouTube minute event. -
2026-09-30, 0.1: first release. Files, 1,000+ video sites, podcast RSS and Apple Podcasts, Whisper tiny, base or small, auto language, timestamps, SRT, free rows for no speech and errors.