Skip to main content

Big Blue Button Downloader that downloads a BBB lesson as MP4 video

Project description

Big Blue Button (BBB) Downloader

Downloads a BBB lesson as MP4 video, including presentation, audio, webcam and screenshare.

Nevertheless, I would definitely recommend you to record a BBB meeting with OBS, it's more efficient and you have more control over the outcome.

Setup

  1. Install Python >=3.7
  2. Install ffmpeg
  3. To generate the annotated images (with the --add-annotations option), you need to have at least a Chrome browser installed (or chromium).
  • To speed up annotation you can optionally install cairosvg. Cairosvg is 3 times faster than Chrome. For this do the following:
    • On windows the easiest way to install cairo is to install GTK+, just download and install the latest installer from here
    • On linux and macOS the dependencies libffi and cairo may already be installed, if not use your package manager to install them.
  1. [Windows only] You may need to install Visual C++ compiler for Python to build all the dependencies successfully (you can also do this step if step 5 fails):
  1. Run as administrator: pip install --user bbb-dl

    On Windows, you must start a CMD or Powershell as administrator to run commands as an administrator

    You can also install bbb-dl as a normal user, but then you have to care about the dependencies yourself.

  2. Run bbb-dl --help to see all options

If you ever need to update bbb-dl run as administrator: pip install -U bbb-dl

Usage

Example call:

bbb-dl --add-webcam --add-annotations https://your.bbb.org/playback/presentation/2.3/playback.html?meetingId=5d9100very_long_id70001800032c-160100033965

usage: bbb-dl [-h] [-aw] [-aa] [-ac] [-bk] [-kt] [-v] [-vc] [--chrome-executable CHROME_EXECUTABLE] [-ncc] [--version] [--encoder ENCODER] [--audiocodec AUDIOCODEC] [-f FILENAME] [-od OUTPUTDIR] URL

Big Blue Button Downloader that downloads a BBB lesson as MP4 video

positional arguments:
  URL                   URL of a BBB lesson

options:
  -h, --help            show this help message and exit
  -aw, --add-webcam     add the webcam video as an overlay to the final video
  -aa, --add-annotations
                        add the annotations of the professor to the final video
  -ac, --add-cursor     add the cursor of the professor to the final video [Experimental, very slow, untested]
  -bk, --backup         downloads all the content from the server and then stops. After using this option, you can run bbb-dl again to create the video based on the saved files
  -kt, --keep-tmp-files
                        keep the temporary files after finish. In case of an error bbb-dl will reuse the already generated files
  -v, --verbose         print more verbose debug informations
  -vc, --verbose-chrome
                        print more verbose debug informations of the chrome browser that is used to generate screenshots
  --chrome-executable CHROME_EXECUTABLE
                        Optional path to your installed Chrome executable (Use it if the path is not detected automatically)
  -ncc, --no-check-certificate
                        Suppress HTTPS certificate validation
  --version             Print program version and exit
  --encoder ENCODER     Optional encoder to pass to ffmpeg (default libx264)
  --audiocodec AUDIOCODEC
                        Optional audiocodec to pass to ffmpeg (default copy the codec from the original source)
  -f FILENAME, --filename FILENAME
                        Optional output filename
  -od OUTPUTDIR, --outputdir OUTPUTDIR
                        Optional output directory

How can I speed up the rendering process?

FFmpeg can use different hardware accelerators for encoding videos. You can find more information about this here: https://trac.ffmpeg.org/wiki/HWAccelIntro

To use such hardware for encoding you may need to install drivers as indicated on the website and then set the --encoder option to the appropriate encoder.

For example, if you have an Nvidia graphics card installed in a computer, you can use it with the NVENC encoder. For this you simply set the option --encoder h264_nvenc. You can see on the Nvidia website which graphics cards support this option. If your graphics card also supports H.265 (HEVC) you can set the option --encoder hevc_nvenc instead, which might be even faster (you have to test this yourself).

License

This project is licensed under the terms of the GNU General Public License v2.0. For further information, please look here or here(DE).

This project is based on the work of CreateWebinar.com, Stefan Wallentowitz and Olivier Berger. Parts of this code have already been published under MIT license and public domain. These parts are re-released in this project under the GPL-2.0 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bbb-dl-0.9.8.4.tar.gz (30.8 kB view hashes)

Uploaded Source

Built Distribution

bbb_dl-0.9.8.4-py3-none-any.whl (31.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page