Changelog

Every update to the Pipe platform: new features, improvements and fixes.

Mobile Video Mirroring Fix and Text Styling Improvements

Fix
  • Fixed video mirroring issue on mobile: When the pipe-mv embed code option was enabled, switching to an environment-facing camera using the camera icon from the top right, and then back to a user-facing one using the device selector would stop mirroring the preview video. This has now been resolved.
  • Consistent styling: Some text elements inside the recording client are now assigned hardcoded colors, ensuring their appearance remains consistent even when external CSS libraries are present. This avoids styling conflicts and ensures the UI remains readable.

Recording Client Now Loads Resources Asynchronously

Improvement

We have updated how pipe.js loads the precheck values, the .xml video quality profile, and the .xml language file. These resources are now fetched asynchronously, resulting in performance improvements:

  • Non-blocking JavaScript execution: The web page is no longer unresponsive during resource loading, which was caused by the main JavaScript thread being blocked. This was especially noticeable over slower internet connections.
  • Faster loading for multiple recording clients: In our tests, embedding 8 recording clients on a single page loads up to 5× faster.

Minor Updates to the Powered by Pipe Link

Improvement
  1. The link now has an external link icon attached to it to make it more clear the user will be taken to an different website.
  2. Fixed the hit region as it was spanning the entire width of the recording client.

New 2x2 Grid Overlay and Permissions-Policy Updates

New Improvement
  • The recording client can now show a 2x2 grid overlay while recording. This helps with better framing during video capture, especially in research scenarios requiring consistent positioning or eye-line framing. To enable it, set the pipe-outline embed code option to 2x2grid.
  • The Permissions-Policy checks are now the first ones to be executed by pipe.js, and there’s a console log for when the page Permission-Policy denies access to the camera and microphone.

Extract Audio from Video and Screen Recordings

New

We’ve just launched a new feature that allows you to extract audio from a video or screen recording and save it as a separate file.

The feature can be enabled from the new dedicated section of the transcoding engine.

The filename will have the format STREAMNAME_audio.mp4 and be pushed to storage with all the other resulting files from a recording.

The feature is available during the trial and with all subscription plans.

For more information, please refer to the blog post.

New WordPress Plugin Version 1.0.6

Improvement

Improved security by properly escaping all dynamic attributes in the playback and recorder shortcodes, following WordPress Plugin Directory guidelines.

New WordPress Plugin Version 1.0.5

Improvement
  • Improved security by implementing signature-based authentication for webhook requests.
  • Updated the settings page to include the Pipe Webhook Key (required for webhooks).

Minor Dashboard Fix

Fix

We’ve fixed an issue where clicking on the grey background during video or audio playback inside the account dashboard’s Recordings page lead to an unusable web page.

Retry Option for Failed Initial Connection

New

In the Desktop Recording Client, if all 31 initial connection attempts fail, the message “Could not establish a secure websocket connection to the media server. Click here to retry” will now be shown. Unlike before, where a page refresh was required, you can now click the message to restore the recording client and attempt to establish a connection without reloading the page.

Improved US Region Fallback Mechanism

Improvement

The Desktop Recording Client now limits initial connection attempts to 30 when switching between US1 and US2 regions. If all attempts fail, the message “Not Connected (wss). Attempting to connect in a few seconds…” will be displayed.

This update also fixes a bug where, in some cases, the desktop recording client would remain stuck in a “connecting” state even after a successful connection after falling back to one of the two US regions after 30+ connection attempts.

Improved Disconnection Messages & Fixes to the Message UI

Improvement

We’ve updated the desktop recording client’s disconnection error messages for improved clarity. Instead of the generic “Your connection to the server has been interrupted,” there are two new separate messages now that provide more specific details:

  • Shown when all 31 initial attempts to connect to the EU2 or CA1 region fail: “Could not establish a secure websocket connection to the media server.”
  • Shown when a successful connection is lost, and all 30 re-connection attempts fail: “The secure websocket connection to the media server has been lost and a new connection could not be re-established.”

Additionally, we’ve adjusted the text’s line height for center messages inside the desktop recording client to improve readability.

Documented the Initial Connection Mechanism

Improvement

The troubleshooting connection issues documentation has been updated with information regarding the initial connection attempts made by our recording client against our eu2, ca1, us1 and us2 ingestion/media servers.

A minor update has been made to the desktop recording client to better align the message used when a connection fails.

Fixes For Recording Processing

Fix

We’ve made some updates and fixes to our recording processing pipeline, which address the following issues:

  1. iOS 18 mp4 recordings were out of sync after processing
  2. Some of the already corrupted recordings were having their duration miscalculated.

No Dead End After Uploading the Wrong File

Improvement

When using the upload existing recording option in the desktop recording client you can now re-upload a (new) recording - without refreshing the page - if you upload the wrong file (like with the wrong extension) and an error occurs.

Fixed getPlaybackTime() Method

Fix

The getPlaybackTime() JS API (v2.0) method has been updated to provide correct values when buffering or pausing occurs (during playback).