Audio & Video Transcriber: Transcription of Any URL to Text avatar

Audio & Video Transcriber: Transcription of Any URL to Text

Pricing

from $17.00 / 1,000 media transcribed (up to 2 min)s

Go to Apify Store
Audio & Video Transcriber: Transcription of Any URL to Text

Audio & Video Transcriber: Transcription of Any URL to Text

Rising star

Transcribe 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

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

29

Total users

18

Monthly active users

5 hours ago

Last modified

Categories

Features

Limited permissions

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.

SourceLinks that workTestedHow
YouTubeyoutube.com/watch?v=, youtu.be/, /shorts/, m.youtube.com48 of 48 public videos handledNo login, no cookies. Public videos only; age-restricted and members-only videos are free LOGIN_REQUIRED rows
Instagraminstagram.com/reel/CODE/, /p/CODE/, /tv/CODE/16 of 16 handledThe public post page and its audio-only track. For whole profiles use Instagram Reels Transcript
Facebookfacebook.com/reel/ID, /watch/?v=ID, /PAGE/videos/ID36 of 36 handledPublic videos and reels of pages. Videos shared only with friends or groups are free LOGIN_REQUIRED rows
Redditreddit.com/r/.../comments/ID/..., redd.it/ID, v.redd.it/ID, share links12 of 12 live videos handledReddit-hosted video from its public video server. Posts that link to YouTube or other sites are followed. Removed videos are free NOT_FOUND rows
Spotifyopen.spotify.com/episode/ID, /show/ID7 of 7 episodes foundSpotify 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, RSSshow or episode links, any podcast feedyesThe episode file from the public feed
TikTok, X (Twitter), Vimeo, Dailymotion, SoundCloud, Loom, Twitch clipsvideo or track pageyesPublic video or track page
Direct files.mp3, .m4a, .mp4, .wav, .webm, .ogg, .opus, .flac...yesDownloaded 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

FieldWhat it does
urlsLinks: audio or video files, video and post pages (YouTube, Instagram, Facebook, Reddit...), podcast RSS feeds, Apple Podcasts and Spotify links
maxEpisodesPerFeedDefault 3. Newest episodes per feed, Apple Podcasts show or playlist
languageauto (default) detects per file. Or force a 2-letter code (en, pt, es, de, ja...)
modeltiny (fastest), base (default), small (most accurate, best for non-English and noisy audio; each minute counts twice)
includeSegmentsDefault true: phrase-level start and end in seconds
includeSrtDefault false: adds a ready .srt subtitle text
includeVttDefault false: adds WebVTT subtitles (vtt)
includeWordsDefault false: adds words (start, end, confidence of each word) to every segment
tasktranscribe (default, same language as the audio) or translate (English text from any language)
vocabularyNames, brands and terms in the audio, one per line, so they are spelled right
preferCaptionsDefault true: YouTube videos with captions in the spoken language use them (faster, no YouTube minute charge); transcriptSource says captions or speech-to-text
onlyNewEpisodesDefault false: skips media this input already transcribed (free); for scheduled podcast and channel runs
memoryNameOptional name of that memory, to share it between inputs
maxDurationMinutesDefault 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)

errorCodeMeaning
NO_SPEECHMusic, sound effects or silence only
NO_AUDIOThe video has no audio track
MEDIA_TOO_LONG, MEDIA_TOO_LARGEAbove maxDurationMinutes, or a file above 1.5 GB
YOUTUBE_BLOCKEDYouTube refused every server we tried for this video (rare). Run again later, or use YouTube Transcript for captions
USE_INSTAGRAM_ACTORAn Instagram profile link: use Instagram Reels Transcript for profiles
NOT_A_VIDEOAn Instagram photo or carousel, or a Reddit text or image post
BLOCKEDInstagram did not answer after retries; run again later
LOGIN_REQUIREDThe site only shows this media to logged-in users (private posts, friends-only Facebook videos, age-restricted YouTube)
SPOTIFY_EXCLUSIVEThe show (or that episode) exists only on Spotify, with no public RSS feed. Spotify audio is DRM-protected and never downloaded
DRM_PROTECTEDDRM-protected media on other sites
NOT_FOUND, NO_EPISODES, NOT_A_FEEDDeleted, private, wrong link, or a feed without audio
UNSUPPORTED_URL, INVALID_URL, INVALID_INPUTA link or value the Actor does not understand
DOWNLOAD_FAILED, TRANSCRIPTION_FAILEDThe site or the file did not cooperate after retries; run again
NO_NEW_MEDIAWith onlyNewEpisodes: everything in this run was already transcribed before
NOT_REACHED, UNEXPECTEDThe run timeout or spending limit arrived, or something unforeseen broke; only that file is lost

Audio and video transcription pricing

EventPrice
Media transcribed (up to 2 minutes of audio)US$ 0.02
Extra minute, per started minute after the first 2US$ 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 small for 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.

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, free NO_NEW_MEDIA row 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 youtubeMinutes field 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.