Free transcription
Free recordings are transcribed in our cloud by default. Your browser first makes a compact audio copy of the recording: the sound only, as a small MP3 at speech quality, without a video's picture. The page then sends the copy's size and type and the recording's duration to check the free cloud allowance; it sends no filename. The copy goes to StemVocal's private Cloudflare storage, where Cloudflare Workers AI transcribes it and returns a timestamped transcript without speaker labels. When Workers AI cannot finish it, our processor on Modal transcribes the same copy. When your browser cannot make the copy, the recording itself is uploaded and our processor on Modal transcribes it. Access ends after 24 hours and the files are then deleted automatically, usually within a further day. When the free cloud allowance is unavailable, transcription continues in your browser. The job record keeps the file size, requested duration, language, status, times and processing seconds, plus the daily keyed connection hash used for the shared free allowance. A separate cost record keeps the random job ID, service, day, that duration and the processing cost for about 13 months; it holds no connection hash, filename or transcript.
Saving a video with captions happens entirely in your browser: it reads your chosen video, draws the captions onto its picture and writes a new video file on this device. Neither the video nor the new file is uploaded. The new file may be kept in this site's private browser storage until you start another file or leave the transcript, and files left by a closed tab are deleted on a later visit after six hours.
Choosing a file opens a local preview. When a free transcription runs in your browser, it downloads a speech model and processes the audio on this device, without sending the recording or transcript to our servers. Video processing reads only the audio track. Short audio windows are held in memory and discarded as processing continues; we do not store a decoded copy of the recording. The model and runtime may remain in your browser cache for reuse. Canceling or closing the tab stops processing. Finished transcripts and edits are saved locally when browser storage is available. Reconnect the same file to listen after reloading. Clearing site data removes local transcripts, recovery records and cached software.
The free-allowance endpoint receives only a random job ID, tool type, status and timestamps, plus the daily rotating keyed connection hash below. For a browser job it does not receive the filename, recording, transcript, language or duration. Failed or canceled browser jobs release their reserved place. Local execution is under the visitor's control; this allowance is not a restriction on independently running the model.
Cloud recordings and transcripts
Paid transcription uploads the file in parts to private Cloudflare R2 storage; free transcription in our cloud uploads the compact audio copy described above the same way. A Modal processor reads the file through a temporary signed link, transcribes its speech, and returns a timestamped transcript. For a free job, Cloudflare Workers AI reads the copy inside Cloudflare instead and returns the transcript to the same storage; Modal takes over only when it cannot finish. Optional speaker grouping creates temporary voice embeddings to group turns; those embeddings are discarded when the processing container clears the job. We do not use recordings or transcripts to train models, identify people or publish an upload gallery. When you ask for a translation of a paid transcript, its text, including your corrections, goes to our processor on Modal, which returns a machine translation to the same private storage. A translation keeps the transcript's 24-hour access and is deleted with it; the job record keeps the target language, status, times and processing seconds.
The subtitle translator reads an SRT or VTT file in your browser and sends only its cue texts and times, the two languages you chose and a random access key. For a free translation the file's name is not sent. The cues are stored with the job in the same private storage, translated by our processor on Modal and returned there, and the translated file is rebuilt in your browser. They follow the same access and deletion times as other cloud jobs.
Access to uploaded files and transcripts expires 24 hours after a job is created. A one-day storage lifecycle rule then deletes the stored objects, normally within the following 24 hours. The editor offers an earlier delete action for the uploaded recording and transcript. Processing already in progress may finish, but a canceled job cannot deliver a new accessible result.
Information on your device
Browser and upload recovery store the job identifier, a secret access token, local filename, file size, duration, options and a partial-file fingerprint (for a free cloud job, also the compact copy’s size and fingerprint) in this browser’s local storage, for the current file and for each file in a cloud batch. The fingerprint helps match a reselected file to an interrupted upload; it is not sent to analytics. Closing a batch removes its list; its finished transcripts stay in Saved transcripts. While a subtitle translation runs, this tab's session storage keeps the job identifier, its access key, the file's name and text and the two languages, so a reload can finish it; closing the tab clears them. Finished transcript text, edits, speaker names, local filenames, last-save times, durations and partial-file fingerprints are saved in IndexedDB on this device. Saved transcripts lets you reopen or delete an individual local copy. The library does not store the original recording or add cloud access tokens. A small content-free deletion marker prevents pending saves in current editors from restoring a deleted entry. These records are separate on each site and are not synchronized to an account or another device. A downloaded document stays wherever you save it. Clear site data to remove all local records and deletion markers. On a shared device, clear site data after downloading your work.
Jobs and the free allowance
Cloud job metadata includes the job identifier, file size, requested duration, language, number of speakers, status, times, reserved credits and fixed error codes. It does not include the filename or transcript text. Metadata is scheduled for deletion within 40 days. To enforce the shared daily allowance, we store a keyed hash of the request IP that changes each UTC day, rather than the raw address in the jobs table. People sharing an internet connection can share the allowance. Audio transcription, video transcription and separation use the same counter.
Accounts and payments
You can buy packs or monthly plans without signing in first. A necessary, secure browser cookie gives you access to that purchase for up to 30 days. We receive the email used at Stripe checkout so you can restore purchases on another device with a one-time email code. Entering an email at checkout does not grant access to its existing purchases. Verifying that email combines its purchased credits and Unlimited membership and signs out older checkout-only sessions. This does not move your files between devices. A checkout reference may be kept temporarily in session storage while payment confirmation is retried.
Use the same email to access one StemVocal account and credit wallet on all three sites. Each domain uses its own host-only, HttpOnly session cookie for up to 30 days. Email-code cookies expire after 10 minutes. Codes are one-use and stored as hashes or keyed hashes. Cloudflare sends sign-in emails. Purchase, subscription, grant and credit records may remain for accounting, dispute and legal obligations after media files expire. Stripe hosts checkout and payment management; we do not store card numbers. See Stripe’s privacy policy.
Statistics and providers
Public pricing and tool offers send anonymous purchase-step counts to Cloudflare Analytics Engine: an offer becoming visible, opening plans, choosing a pack or subscription, checkout becoming ready or failing, and returning from checkout or confirming payment. These use fixed step, location and failure categories, along with the public page path, country, device class and software version. They contain no visitor identifier, account information, plan code, amount, payment reference, file data or URL parameters. Processing diagnostics distinguish allowance, credit, access and capacity refusals from failures, using fixed reasons such as connection, storage or timeout, never exception text.
Cloudflare hosts the websites, database and private file storage, and Cloudflare Workers AI transcribes free cloud recordings. Modal processes paid recordings, and free ones that Workers AI cannot finish or that are uploaded without a compact copy. Free jobs that run in your browser use neither. Routine provider logs may contain request and connection information for security and reliability. We use first-party Cloudflare Analytics Engine for page and reliability counts; when a free cloud request continues in your browser, it counts one fixed reason category (such as capacity or network), with nothing about the file. Page-speed measurements note how a page load and the slowest response divided their time (connecting, the server's reply, fetching and drawing; waiting, running and redrawing), whether the page was opened fresh, reloaded or returned to, the broad kind of control involved and, in browsers that report it, whose script ran longest during that response (this site's, a browser extension's or another site's), never an address, element or file detail. The subtitle translator counts translations started, finished, failed and downloaded, with the two languages, the download format and whether it was free, never the file's words or name. Google Analytics 4 receives page paths, titles, limited campaign tags, the referring origin, transcript-completion and download events, and ordinary browser/connection information, including your IP address and the approximate location our hosting provider works out from it (country, region, city and approximate coordinates), which our server passes on because these requests reach Google through this website. First-party events also count transcription starts and fixed error events without file details. Paid cloud transcriptions are counted with how long each processing step took (download, decoding, recognition and upload), without file details. Free cloud transcriptions on Workers AI are counted with the audio length, processing time, number of attempts and cost, also without file details. It may set first-party _ga cookies. We do not send filenames, transcript text, job IDs, account emails or signed links to analytics.
Google event retention is 14 months, advertising features are disabled, and Google Analytics is not loaded for visitors in the EEA, UK, Switzerland or Quebec, or browsers sending Global Privacy Control. Account pages remain untracked; neither account nor pricing pages load Google Analytics or send first-party page counts. See Google’s privacy policy. We do not sell uploaded recordings or transcript data.
Your choices
Download work you want to keep. Cloud access expires after 24 hours; browser storage can be cleared or evicted. Use Delete uploaded files in the cloud editor to remove cloud copies, Delete in Saved transcripts to remove an individual local copy, clear site data to remove all local records, and use the account page to sign out on one or all devices. For account access or deletion requests, contact help@acapellaextractor.com. Records required for financial or legal obligations may need to be retained.
Local subtitle timing adjustment
The timing tool on the subtitle-generator page reads your SRT or VTT in this tab and creates a local download. It does not upload or save the subtitle text, start a processing job, or send your timing values or file name to analytics. Keep your downloaded file before closing the tab.
YouTube transcript cleanup
The YouTube transcript page turns the text you paste, or the caption file you open, into clean text, a Word document or subtitles in this tab. It does not upload or save the transcript or the file's name, start a processing job, or read YouTube links. Its counts contain no text: whether a YouTube link was pasted instead of a transcript, the kind of transcript (copied from YouTube with or without times, SRT, VTT or SBV) with its number of lines, and the format you downloaded or copied.