The 2.0 recording client can now transcribe speech right in the browser. While recording, the words show up as live captions over the video. During playback, the same text comes back as subtitles, timed to the audio.
To turn it on, set the new pipe-livecaptionslanguageembed code option to the language people will speak, like en-US. Set it to undefined to use the visitor’s browser language instead. It is off by default.
Fixed an issue introduced with the latest build (f2fb1f4e1), where the 2.0 recording client would not use the default language of the web page it was embedded in, if no custom language file was provided.
Fixed issue with the daily limit of recordings being verified against the UTC day instead of the RO day.
Fixed issue with language detection mechanism selecting the 2nd language in the list of languages in the Accept-Language HTTP header when more than one language was configured in the browser.
The 2.0 recording client now fully meets the WCAG 2.2 A & AA requirements that apply for it.
Every control is now exposed as a proper button, and screen readers now hear the state of menus, effects and color selections. Upload status is announced, the Record button reads “Stop” while recording, the BETA badge has better contrast, and decorative icons stay out of the way of assistive tech.
Status messages shown in the 2.0 recording client, such as connection status, upload progress, save confirmations, reconnection notices, and camera or microphone errors, are now announced by screen readers through an ARIA live region.
Our WordPress plugin now also handles the integration with Contact Form 7 and WPForms.
You can add a recorder to any contact form, so visitors can send you a video, audio, or screen recording together with their message. Read more about it in our documentation for Contact Form 7 and WPForms.
Transcription generally takes a few seconds to a few minutes depending on the length of the recording.
Each successful transcription will result in a JSON file named STREAMNAME_transcript.json. This new file will be stored alongside all other recording-related files across all enabled storage destinations.
Currently, the feature is in beta, and we may still calibrate some specifics of the integration.
Our WordPress plugin now also handles the integration with LearnDash.
You can create Essay (Open Answer) quiz questions that let students answer using video, audio, or screen recordings. Simply add the recorder shortcode to the question text, and students can record and submit their response directly. The recording is shown as a playback on the Submitted Essays screen when you grade it. Read more about it in the documentation.
Our WordPress plugin now also handles the integration with Tutor LMS 4+. You can add a recorder shortcode to the description of an Open Ended quiz question and students answer that question by recording video, audio, or their screen. The recording is submitted as the answer and plays back when the attempt is reviewed by the instructor. Works with both the free and the pro version of Tutor LMS. For more info, check out the documentation and blog post.
New addpipe_recorder_config filter and addpipe:recorder-ready JavaScript event, which allow the same shortcode to be used several times on one page and let other code attach to a recorder once it is ready.
onRecordingStarted and onUploadProgress now run isolated from the recording and upload pipeline. If your custom implementation throws an error, we catch it instead of letting it interrupt our recording client’s recording or upload process.
The description in readme.txt has been updated to better reflect the plugin’s capabilities
New developer hooks for extending the plugin’s integration capabilities:
A filter lets you add your own values to the recorder payload programmatically (for example, to associate a recording with a specific LearnDash quiz question),
An action lets you run custom code right after a webhook is processed, so integrations can be built in other WordPress code locations.
Fixed an issue where only the last recorder on a page or post worked reliably when multiple recorders were present.
New option to lazy load recorders. The option is present in the shortcode generator/editor. When enabled, a recorder initializes only once it is scrolled into view, which avoids opening every camera/microphone at once on pages with many recorders (e.g. LearnDash quizzes). A recorder that has already started stays active even if scrolled out of view.
New ability to edit existing shortcodes. You don’t have to create a new shortcode every time you need to make a small config change.
We improved the accuracy of the “The camera is already used by another app” and “The mic is already used by another app” messages in the recording client, so the correct one is now shown depending on whether the camera or the microphone is the device in use.
We also added clearer console logging when custom constraints are in use, including a warning when potentially disruptive constraints are set, to make troubleshooting easier.
Improved resource usage and cleanup throughout the recording client, particularly for pages that frequently add, remove, or re-insert recording client instances, resulting in better long-running stability.
Fixed a rare issue where, in the event of a disconnect, a stale acknowledgement could cause a future recording slice to not be sent to our ingestion servers.
Our 2.0 recording client can now be installed directly via NPM with npm install @addpipe/pipe-recording-client, instead of being added via <script> and <link> tags. It works out of the box with modern bundlers (Vite, webpack, Rollup, Next.js, and more).
Our official React hook, @addpipe/react-pipe-media-recorder, now loads the recording client through this NPM package too, starting with version 1.3.0.
The recording client now displays a clear error message in the UI if the initial check (precheck) request is interrupted, instead of just a log in the console.
We introduced console warnings when PipeSDK JS API methods are overridden in custom integrations. This is informational only and does not affect any functionality or existing integrations.
We fixed an issue introduced after the upgrade to Socket.IO 4.8.3 that could affect the recording client’s fallback reconnection mechanism between regions. The problem occurred only in rare cases where an initial connection was successfully established, but a subsequent fallback connection failed almost immediately.
The recordings list in the account dashboard now includes a direct download button for recordings that could not be processed. The original filename is now also preserved.
This button replaces the exiting link which opened thee files in the browser. It made on sense since these mostly corrupt files will not play in the browser.
The recording client has been upgraded to Socket.IO Client 4.8.3.
We also added a new pipe.min.css file alongside the existing pipe.css. The new file is a minified version of the stylesheet, resulting in a smaller download size (~20% smaller). You can read more about using the minified versions of pipe.js and pipe.cssin our documentation.
We’ve added Excel export to the recording usage page, covering both current and previous billing periods. The spreadsheet includes formulas so you can independently verify how your cost is calculated — something the existing CSV export doesn’t support.