During last 3 months I am using VDO ninja for all my remote interwiev and podcast recordings. here is my article about it from the blind perspective, focused on accessibility and audio.

Have You Ever Wanted to Record an Interview or Podcast Online? You’ve probably faced a few challenges:
How to transmit audio in the highest possible quality?
How to connect in a way that doesn’t burden your guest with installing software?
And how to record everything, ideally into separate tracks?

The solution to these problems is offered by the open-source tool VDO Ninja.

What Is VDO Ninja


It’s an open-source web application that uses WebRTC technology. It allows you to create a P2P connection between participants in an audio or video call and gives you control over various transmission parameters.
You can decide whether the room will include video, what and when will be recorded, and much more.

In terms of accessibility, the interface is fairly easy to get used to — and all parameters can be adjusted directly in the URL address when joining.
All you need is a web browser, either on a computer or smartphone.

Getting Started


The basic principle is similar to using MS Teams, Google Meet, and similar services.
All participants join the same room via a link.
However, VDO Ninja distinguishes between two main types of participants: Guests and the Director.
While the guest has limited control, the director can, for example, change the guest’s input audio device (the change still must be confirmed by the guest).

A Few Words About Browsers


VDO Ninja works in most browsers, but I’ve found Google Chrome to be the most reliable.
Firefox, for some reason, doesn’t display all available audio devices, and when recording multiple tracks, it refuses to download several files simultaneously.

Let’s Record a Podcast


Let’s imagine we’re going to record our podcast, for example, Blindrevue.
We can connect using a link like this:

https://vdo.ninja/?director=Blindrevue&novideo=1&proaudio=1&label=Ondro&autostart=1&videomute=1&showdirector=1&autorecord&sm=0&beep

Looking at the URL more closely, we can see that it contains some useful instructions:
  • director – Defines that we are the director of the room, giving us more control. The value after the equals sign is the room name.
  • novideo – Prevents video from being transmitted from participants. This parameter is optional but useful when recording podcasts to save bandwidth.
  • proaudio – Disables effects like noise reduction, echo cancellation, automatic gain control, compression, etc., and enables stereo transmission.
    Be aware that with this setting, you should use headphones, as echo cancellation is disabled, and otherwise, participants will hear themselves.
  • label=Ondro – Automatically assigns me the nickname “Ondro.”
  • autostart – Starts streaming immediately after joining, skipping the initial setup dialog.
  • videomute – Automatically disables the webcam.
  • showdirector – Displays our own input control panel (useful if we want to record ourselves).
  • autorecord – Automatically starts recording for each participant as they join.
  • sm=0 – Ensures that we automatically hear every new participant without manually unmuting them.
  • beep – Plays a sound and sends system notification when new participants join (requires notification permissions).

For guests, we can send a link like this:

https://vdo.ninja/?room=Blindrevue&novideo=1&proaudio=1&label&autostart=1&videomute=1&webcam

Notice the differences:
  • We replaced director with room. The value must remain the same, otherwise the guest will end up in a different room.
  • We left label empty — this makes VDO Ninja ask the guest for a nickname upon joining.
    Alternatively, you can send personalized links, e.g., label=Peter or label=Marek.
  • The webcam parameter tells VDO Ninja to immediately stream audio from the guest’s microphone; otherwise, they’d need to click “Start streaming” or “Share screen.”


How to Join


Simply open the link in a browser.
In our case, the director automatically streams audio to everyone else.
Participants also join by opening their link in a browser.
If a nickname was predefined, they’ll only be asked for permission to access their microphone and camera.
Otherwise, they’ll also be prompted to enter their name.

Usually, the browser will display a permission warning.
Press F6 to focus on it, then Tab through available options and allow access.

Controls


The page contains several useful buttons:

  • Text chat – Toggles the text chat panel, also allows sending files.
  • Mute speaker output – Mutes local playback (others can still hear you).
  • Mute microphone – Mutes your mic.
  • Mute camera – Turns off your camera (enabled by default in our example).
  • Share screen / Share website – Allows screen or site sharing.
  • Room settings menu (director only) – Shows room configuration options.
  • Settings menu – Lets you configure input/output devices.
  • Stop publishing audio and video (director only) – Stops sending audio/video but still receives others.


Adjusting Input and Output Devices


To change your audio devices:

  1. Activate Settings menu.
  2. Press C to jump to the camera list — skip this for audio-only.
  3. Open Audio sources to pick a microphone.
  4. In Audio output destination, select your playback device. Press test button to test it.
  5. Close settings when done.


Director Options


Each guest appears as a separate landmark on the page.
You can navigate between them quickly (e.g., using D with NVDA).

Useful controls include:

  • Volume slider – Adjusts how loud each participant sounds (locally only).
  • Mute – Silences a guest for everyone.
  • Hangup – Disconnects a participant.
  • Audio settings – Adjusts their audio input/output remotely.


Adjusting Guest Audio


Under Audio settings, you can:

  • Enable/disable filters (noise gate, compressor, auto-gain, etc.).
  • View and change the guest’s input device — if you change it, a Request button appears, prompting the guest to confirm the change.
  • Change the output device, useful for switching between speaker and earpiece on mobile devices.


Recording


Our URL parameters define automatic recording for all participants.
Recordings are saved in your Downloads folder, and progress can be checked with Ctrl+J.

Each participant’s recording is a separate file.
For editing, import them into separate tracks in your DAW and synchronize them manually.
VDO Ninja doesn’t support single-track recording, but you can use Reaper or APP2Clap with a virtual audio device.

To simplify synchronization:

  1. Join as director, but remove autorecord.
  2. Wait for everyone to join and check audio.
  3. When ready, press Alt+D to edit the address bar.
  4. Add &autorecord, reload the page, and confirm rejoining.
  5. Recording now starts simultaneously for everyone.
  6. Verify this in your downloads.


Manual Recording


To start recording manually:

  1. Open Room settings menu.
  2. Go to the Room settings heading.
  3. Click Local record – start all.
  4. Check PCM recording (saves WAV uncompressed).
  5. Check Audio only (records sound without video).
  6. Click Start recording.


Important Recording Notes


  • Always verify that all guest streams are recording.
  • To end recordings safely, click Hangup for each guest or let them leave.
  • You can also toggle recording for each guest under More options → Record.
  • Files are saved as WEBM containers. If your editor doesn’t support it, you can convert them using the official converter.
  • Reaper can open WEBM files but may have editing issues — I prefer importing the OPUS audio file instead.


Recommended Reading


In this article, I’ve covered only a few features and URL parameters.
For more details, check the VDO Ninja Documentation.

reshared this