Third-party binaries
Some component functionality can be extended using third party binaries. All binaries and their configuration options are described below. They can be configured on the Maintenance
tab of the component preferences.
All binaries used by the component are listed in Third-party Binaries
list view. Each item in the list has Source
property associated with it, which controls where to search this binary. Current source is listed in appropriate column and can be changed using the context menu.
All binaries have source called External
. Using it you can specify path where this binary can be found. If binary is placed within foobar2000 profile or program directory, component will store path relative to that directory. This can be useful for portable installations.
Source called Managed
is similar to External
except that in this case component controls binaries by itself, providing the way to download these binaries and to check for updates. Managed binaries are always stored in foobar2000 profile directory.
Switching between sources requires program restart. If you have selected Managed
item in context menu, after program restart it will be replaced by the popup menu with additional options. Using this menu you can check for updates, download binary, or delete previously downloaded version.
State of the third-party binaries is printed to console at the program start. Alternatively you can use Status
button on Maintenance
tab.
yt-dlp
yt-dlp, the way it is used by the component, is an app that can extract from the given video page various properties like title, description, and the most important — URLs to the actual media files.
Starting from the component version 3.10 yt-dlp is required for opening Youtube URLs in the component.
When System
source is selected, component searches yt-dlp.exe
in the PATH
environment variable. For other options, see the top of this page.
Official yt-dlp binaries require at least Windows 8.1. For older Windows versions you can use fork from nicolaasjan. For the info, XP-compatible build there is archived in yt-dlp_x86_Windows-XP.zip
asset.
ffmpeg
ffmpeg libraries are used to decode audio. Component has embedded ffmpeg with minimum required codecs to play audio from Youtube.
If you want to use component for something that requires broader formats support you can use external ffmpeg libraries. To do that, select External
source and specify directory where ffmpeg binaries are placed (component requires ffmpeg version 4.x, 32-bit build with shared libraries)
If ffmpeg source is set to LAV Filters
(that is so by default), component uses ffmpeg libraries from LAV Filters. They also use ffmpeg internally, and that ffmpeg has much wider set of supported formats than the one embedded in component.
If ffmpeg source is set to anything other than Internal
, and component cannot load ffmpeg from selected source, it falls back to internal ffmpeg.
LAV Filters
LAV Filters is a set of DirectShow filters based on ffmpeg. They are used for video playback.
By default LAV Filters source is set to System
. That means if they are installed in the system, component will find and load them.
Two other sources (External
and Managed
) do not require them to be installed.
In case of Managed
source LAV Filters are downloaded from original repository on GitHub. You can change repository settings using Configure
item of Managed
popup menu. Note, in case of Windows XP default version there is set to 0.70.2
which is the last version that supports Windows XP.
Option Force default settings
tells the component to make LAV Filters not to load settings from the system (i.e. use default settings) and not to save them back.
This option exists because when local filter has newer version there is no easy way not to use global settings from older filter version installed in the system. And there is no way to display settings UI for local filter. I.e. even when local filter is used, settings UI anyway comes from the filter registered in the system. To prevent possible issues because of this, option Force default settings
is enabled for local filters by default.
libcurl
Component internally uses libcurl for HTTP/HTTPS communication. It is used when foo_youtube
is selected as Audio decoder or Video downloader. Also it is always used at analysis.
In addition to internal libcurl one can select external DLL to be used by the component. This was primarily done to be able to use different SSL backend (in internal libcurl is used Windows native SSL backend).
Ready-to-use libcurl with OpenSSL is available on Download page. You may also experiment with other existing variants that are available on cURL download page.
madVR
madVR is a high quality DirectShow video renderer.
Like with other third-party DirectShow filters External
source allows to use madVR binaries without installing them in the system.
Source None
tells the component not to use madVR. When any other source is selected, component unconditionally tries madVR first when adding video renderer at DirectShow graph building.
VSFilter
This is DirectShow filter that is used to display subtitles. Available sources are the same as in LAV Filters. Managed
source uses this repository on GitHub.
Help Third-party binaries