Changelog

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

Easily Transcribe Your Recordings

New

You can now transcribe your Pipe recordings with a simple push of a button.

This new feature is accessible to toggle in your account area transcoding settings. It is disabled by default.

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.

New WordPress Plugin Version 1.4.0

New

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.

New WordPress Plugin Version 1.3.0

New
  • 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.

Isolated Event API Callbacks for Recording and Uploading

Fix

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.

Build slug: 364548d04

NPM version: 2.0.5

New WordPress Plugin Version 1.2.0

Improvement Fix
  • 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.
    • More information is available in the documentation.
  • Fixed the video resolution selection resulting in only 2 resolutions being actually used (320p and 720p).
  • Fixed the default menu color, which used an invalid character.

New WordPress Plugin Version 1.1.0

Improvement
  • 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.

Improved Device-In-Use Messages and Custom Constraints Logging

Improvement

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.

Build slug: 21f8ce42c

NPM version: 2.0.4

Improved Recording Client Resource Management and Stability

Improvement

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.

Build slug: 3812cdd9e

NPM version: 2.0.3

Cloudflare R2

Improvement

We now support Cloudflare R2 custom storage endpoints through our Push to S3 feature.

Warnings for PipeSDK JS API Method Overrides

New

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.

Build slug: 7a94497a2

Direct Download Link For Unprocessed Recordings

Improvement

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.

Socket.IO Client Upgrade and New Minified CSS File

Improvement

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.css in our documentation.

Build slug: 284d83349

Audit Your Usage With Excel Exports

New

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.

2-Channel Audio Recording

Fix

The recording client now supports again 2-channel audio recording when the browser and input device support it. We’ve successfully re-tested 2 channel audio and video recordings with Chrome and Firefox using the Logitech C925e webcam and a few other devices.

Safari only supports 1 channel audio for now.

From our testing in Chrome, only some of the dual microphone devices support true stereo audio. It also requires disabling all audio processing. For more information, see our Recording True Stereo Audio Using getUserMedia article.

Build slug: 9849dc816

Fixed Recording Duration at Time Limit

Fix

We fixed an issue where recordings that stopped exactly at the configured time limit would display an inaccurate duration during playback.

Build slug: bc3ec0ca2

Recording Start Improvements

Improvement

We removed the “Waiting for data…” message that could briefly appear at the start of a recording and fixed the timer staying at 0 during that period. The recorder now silently waits for data to arrive, and the timer counts up correctly from the moment the recording starts.

Build slug: bc5a4a92f

Logging Fixes for EU Fallback and Recording Client Improvements

Improvement
  1. We fixed issues with logging during EU region fallback.
  2. We made minor adjustments to client-side variables to ensure server-side logs are recorded with more accuracy.
  3. We added an extra safeguard when sending recording chunks through the WebSocket connection to the server.

Build slug: d380e56e9

Bitrate Now Scales With Resolution Across All Browsers

Improvement

Our recording client now dynamically scales the video bitrate based on resolution on all browsers (previously, this was only done on Safari). This improves video quality, particularly when:

  1. recording at resolutions higher than 480p with capable webcams
  2. recording on mobile devices (which already ship with capable cameras)

We’ve also aligned bitrate values more closely follow YouTube’s recommendations for SDR video at 30fps.

Our documentation has been updated with the latest bitrate details used by the recording client.

Build slug: 1e2c84b63

P.S. For more details, see our in-depth blog post on MediaRecorder video bitrates.

Fixed File Order When Pushing to Our Storage

Fix

We’ve aligned the file upload order for the push to our storage mechanism with all the other push to storage mechanisms.

Previously, the raw recording, when enabled, was pushed first, rather than the processed MP4 recording.

Now the following order is respected across the line:

  1. MP4 processed recording
  2. Raw recording
  3. Snapshot
  4. Filmstrip
  5. Audio track