WikiProject remote event participation/Documentation/Wikipedia 20th Birthday Global Celebration - live translation in Italian

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
Overview of Open Broadcaster Software in action.
Schema of a professional-like low-cost remote realtime interpreter flow with PulseAudio for realtime feedback in headphones.
Title of the event
Realtime translation of the "Wikipedia's 20th birthday party" (from English to Italian)
January, 15, 2021
Wikimedia Italia and their current Tech Boost team.
More info

Format of the event[edit]

Main format
realtime translation
1 hour
Main goal
Allow the participation of a local community in an international event.
Main target audience
Italian-speaking Wikimedians.
Total number of participants
not estimated before the event but about ~100 effective.
Number of organizers
Language(s) spoken during the event
Source language: English translated in real-time in Italian.
Tools used
  • Debian GNU/Linux as operating system for the laptop but whatever GNU/Linux distribution would be fine.
  • Pulseaudio and its volume control pavucontrol (Q104876454). They are pre-installed in Debian-based distributions. This is not necessary to pipe the output of BigBlueButton as input for Open Broadcaster Software, but it's useful to reproduce a professional-like realtime feedback in headphones, which is usually done with dedicated hardware in recording studios.

Lessons learned[edit]


We were successfully able to do a live-translation using free software and with a very low budget.

  • prepared in very few time (2-3 days) (!)
  • it was free software from the point of view of the director (using OBS)
  • it was free software from the point of view of the interpreter (using BigBlueButton)
  • it was free software from the point of view of the viewers (workaroud: using Invidious)


  • video director with hear in the headphones of the exact copy of the audio that will go live (in real-time)
    → this professional feature can be covered by GNU/Linux and PulseAudio (but it's not really necessary, just a bonus point to have everything under control)
  • censor a Zoom trademark in real-time (!)
    → it was of little use to prepare OBS scenes in advance: stay ready for the last minute surprise!
  • organize in the meanwhile a foolish "outdoor cinema" for a localized Wikipedia 20!

Possible improvements[edit]

  • ask upstream (in this case, Wikimedia Foundation) to do not provide only a stream on YouTube (even if Invidious exists) - warnings on YouTube
  • ask upstream (in this case, Wikimedia Foundation) to do not adopt Zoom or other proprietary software applying weird trademarks or spamming proprietary software
    → censoring a trademark in realtime for Wikimedia Italia turned out quite daring/unprofessional (visitors noticed the video director hot-playing with OBS masks)


  • contact the official source to make sure if they will put any useful information on the video and where (like speaker name).
  • if it's an important event you can use three computers like we did:
    • one for the primary streaming
    • another as backup streaming
    • and another for monitoring
  • if you can, setup a backup video direction with another Internet source and different power supply (e.g. uninterruptible power supply)

Other comments[edit]

Also note that using Open Broadcaster Software is super-easy nowadays.


Overview of pavucontrol, with Chromium playing in a Pulseaudio NULL sink interface.
Overview of pavucontrol, with OBS recording from the Pulseaudio NULL sink monitor interface.


PulseAudio configuration:

# Create a NULL sink
# Note: this can be used to capture browser's output
# Note: this creates also an internal 'BrowserOut.monitor' for its output
# Note: as default you cannot listen to it (you need a loopback)
pactl load-module module-null-sink sink_name=BrowsersOut

# Create a loopback for the above NULL sink
# Note: this allow to listen it in your speaker/headphones
pactl load-module module-loopback  source=BrowsersOut.monitor

# Assign a nice description for my NULL sink
# Note: without this, in pavucontrol you will see weird things
pacmd update-sink-proplist   BrowsersOut         device.description=BrowsersOut
pacmd update-source-proplist BrowsersOut.monitor device.description=BrowsersOut.monitor

PulseAudio documentation:

Configuration in pavucontrol (Q104876454):

Questions & discussions[edit]

If you want to talk to the the organizers, ask further questions, feel free to use the talk page.

External links[edit]