Open-source credits and licenses
In short
B-ROLL is a free app whose own source code is not published, but it is built on open-source software. Its exe bundles Python, Tcl/Tk, Pillow, tkinterdnd2 and python-vlc; its first launch downloads yt-dlp, FFmpeg, Deno and bgutil-ytdlp-pot-provider; its preview uses the VLC media player you install.
What B-ROLL owes to open-source software
B-ROLL is a graphical app made by a video editor, and the heavy lifting inside it is open-source work by other people: yt-dlp does the downloading, ffmpeg does the converting, and Python and Tcl/Tk draw the window. Thank you to everyone who builds and maintains these projects.
The app's own source code is not published, so B-ROLL is not an open-source project. The licenses below belong to each project; B-ROLL does not relicense them. The About dialog in the app credits yt-dlp, FFmpeg, Deno, Python, Tcl/Tk and Pillow; the other components are listed here so the credit is complete.
Every component of B-ROLL at a glance
The table lists each open-source component of the app, what it does in B-ROLL, how the app gets it, and its license.
| Component | What it does in B-ROLL | How B-ROLL gets it | License |
|---|---|---|---|
| Python | The language B-ROLL is written in. | Bundled inside the B-ROLL exe | PSF License |
| Tcl/Tk | The toolkit that draws the window, controls and dialogs. | Bundled inside the B-ROLL exe | Tcl/Tk license (BSD-style) |
| Pillow | Antialiased interface graphics, logos and thumbnails. | Bundled inside the B-ROLL exe | MIT-CMU |
| tkinterdnd2 | Drag and drop of files onto the window. | Bundled inside the B-ROLL exe | MIT |
| python-vlc | Connects B-ROLL to VLC for the preview and trim player. | Bundled inside the B-ROLL exe | LGPL-2.1-or-later |
| yt-dlp | The download engine: every download, search and subtitle fetch. | Downloaded on first launch | The Unlicense |
| FFmpeg | Merges video and audio, cuts clips, converts to ProRes and DNxHR. | Downloaded on first launch | GPL-2.0-or-later (GPL build) |
| Deno | JavaScript runtime for YouTube's challenges and the token helper. | Downloaded on first launch | MIT |
| bgutil-ytdlp-pot-provider | Local token helper that keeps YouTube downloads reliable. | Downloaded on first launch | GPL-3.0-only |
| VLC media player | Plays the video in the preview and trim player. | Installed separately by you | GPL-2.0-or-later (libVLC: LGPL-2.1-or-later) |
| PyInstaller | Packages B-ROLL into a single exe. | Used to build B-ROLL | GPL-2.0-or-later with the bootloader exception |
| Inno Setup | Builds the Windows installer. | Used to build B-ROLL | Inno Setup License |
Bundled inside the B-ROLL exe
PyInstaller packages these components into the single B-ROLL exe, together with its own bootloader.
-
The language B-ROLL is written in.
The language and runtime B-ROLL is written in.
-
The toolkit that draws the window, controls and dialogs.
Draws the window, controls and dialogs, through Python's Tkinter.
-
Antialiased interface graphics, logos and thumbnails.
Draws the antialiased interface graphics, logos and thumbnails.
-
Drag and drop of files onto the window.
Lets you drop files, such as a cookies.txt, onto the window. It ships the tkdnd extension by Georgios Petasis, under a BSD-style license with the same terms as Tcl/Tk.
-
Connects B-ROLL to VLC for the preview and trim player.
The Python binding between B-ROLL and libVLC for the preview and trim player.
Downloaded on the first launch of B-ROLL
B-ROLL fetches these tools from each project's own releases into %LOCALAPPDATA%\Broll. yt-dlp updates itself at every launch; ffmpeg and Deno refresh only with Reinstall tools.
-
The download engine: every download, search and subtitle fetch.
Does every download, lookup, search and subtitle fetch, and reads the metadata for the credits files. Fetched from its GitHub releases into %LOCALAPPDATA%\Broll and updated to the latest nightly build at every launch.
-
Merges video and audio, cuts clips, converts to ProRes and DNxHR.
Merges the video and audio streams, cuts clips, converts to ProRes or DNxHR and embeds subtitles. B-ROLL fetches the win64 GPL build from yt-dlp's FFmpeg-Builds. FFmpeg is LGPL-2.1-or-later or GPL-2.0-or-later depending on the build; this one is a GPL build.
-
JavaScript runtime for YouTube's challenges and the token helper.
The JavaScript runtime yt-dlp uses for YouTube, and the runtime of the local helper. Fetched from its GitHub releases; refreshed only with Reinstall tools.
-
Local token helper that keeps YouTube downloads reliable.
A local helper, with its yt-dlp plugin, that yt-dlp uses when it talks to YouTube. Installed through Deno from GitHub and the npm registry, together with its npm dependencies under their own licenses. It listens only on 127.0.0.1.
Installed separately, next to B-ROLL
B-ROLL does not bundle VLC media player. The preview and trim player loads the 64-bit libVLC of your own VLC install through python-vlc; without VLC, the app asks for typed start and end times.
-
Plays the video in the preview and trim player.
Plays the video inside the preview and trim player, through its libVLC engine. Not bundled. Install the 64-bit VLC yourself; without it, B-ROLL asks for typed start and end times instead of showing the preview.
Used to build B-ROLL
These tools make the exe and the installer; they are not shipped as separate files.
-
Packages B-ROLL into a single exe.
Packages B-ROLL into one exe; its bootloader starts the app. The bootloader exception lets PyInstaller's bootloader sit inside the B-ROLL exe.
-
Builds the Windows installer.
License texts and source code for the B-ROLL components
Each component's license text is linked from its entry, and its source code is available from the linked project. B-ROLL fetches yt-dlp, ffmpeg, Deno and the local helper straight from each project's own releases, so the source for those builds, including the GPL ones, is the upstream project's. The local helper also installs its npm dependencies, each under its own license.
If B-ROLL is a graphical app around these tools, what do the tools do on their own? Two explainers cover them: what yt-dlp is and whether it is safe to use, and what ffmpeg is and why downloaders need it. When the preview stays blank, check VLC first: B-ROLL preview not loading.
Open-source software behind this website
This site is static HTML built with open-source tools, listed with the version installed for this build and the license read from each package. It is hosted on Cloudflare Pages, a service that is not open source.
-
Builds every page of this site as static HTML.
Installed version 7.3.4
-
Renders the articles, written in MDX.
Installed version 8.0.2
-
Writes the RSS feed.
Installed version 4.0.19
-
Installed; the sitemap itself is written by the site's own code.
Installed version 3.7.4
-
Resizes and converts images at build time.
Installed version 0.35.4
-
Lays out the social card images at build time.
Installed version 0.33.5
-
Renders the social cards to PNG at build time.
Installed version 2.6.2
-
Builds the search index; its script, on the search page, is the one piece of JavaScript this site ships.
Installed version 1.5.2
-
Reads the built pages for the quality checks.
Installed version 9.0.4
-
The body text font, self-hosted.
Installed version 5.3.0
-
The heading font, self-hosted.
Installed version 5.3.0
-
The font for labels and code, self-hosted.
Installed version 5.3.0
-
Runs the build.
The three font licenses are served with the fonts: Inter, Plus Jakarta Sans and JetBrains Mono, each under the SIL Open Font License 1.1.
More about B-ROLL
Who makes the app and why: about B-ROLL and Ema Zamboni. What gets downloaded and where: what the app downloads on first launch. What the app contacts on the network: privacy.